こちらの仕様「Simple Data Format (SDF) — Open Data Protocols - Simple Open Standards for Open Data」をまとめると・・・
- SDFは表形式のデータを表すフォーマット
- CSVをデータに使い、JSONをデータの定義に使う
と、非常にシンプルです。
また、データの定義方法も下記のようになかなか分かりやすいです(一部ちゃんと見てないので?付きですが)
- string: 文字列
- number: 数値(少数含む)
- integer: 整数
- date: 日付(時間含まず)ISO6801フォーマット(YYYY-MM-DD)
- time: 時間
- datetime: 日時、UTCで記述、ISO8601フォーマット(YYYY-MM-DDThh:mm:ssZ)
- boolean: 二値 (1/0 または true/false)
- binary: バイナリデータ(base64)
- object: JSONエンコードしたオブジェクト
- geopoint: 緯度経度({ lon: ..., lat: ... } / [lon,lat] / "lon, lat" のいずれかを使う
- geojson:
- array: 配列(JSON?)
- any: その他の形式(?)
(JSON Table Schema — Open Data Protocols - Simple Open Standards for Open Dataより)
今後、いろいろと使われていく中で、スキーマにURLを書いてよりデ���タ形式をはっきりさせたり、言語設定ができて、国際対応できたりするようになっていくことでしょう。
ひとまず、CSVにこのように日が当たったのは非常に良いことです。Excelなどの表計算ソフトからも簡単に書きだし、読み込みができ、大量のデータもコンパクトに転送することができます。
世界標準にしようとしているこのSDFに合わせるために下記をちょっとだけ気にして作成すると、より多くの人に使ってもらえると思います。
- ファイル名はアルファベットを使い、拡張子は小文字で".csv"とする
- 文字コードを"UTF-8"として保存する(SJISは日本語圏以外では化けてしまいます)
- ヘッダの項目名を重複させない
- ヘッダの項目名はアルファベットを使いスペースではなく . - _ で区切る
- 項目内に改行を含めない
- 改行は\r\nを使う(\nだけでもいいことにはなってますが、Windowsでも扱いやすいように)
試しに、今週末福井で開催される青空マーケットイベント「マルシェワンダーランド」のデータをSDFにしてみました。
- https://fukuno.jig.jp/2013/data/fukui-marche2013/datapackage.json
- https://fukuno.jig.jp/2013/data/fukui-marche2013/fukui-marche2013.csv
CSVファイル+ちょっと説明を書くだけなので簡単です。
(SDF対応にする前のバージョンですが、データを使った表示例、マルシェワンダーランドマップ)
手軽なCSVによるオープンデータはオススメです!