2022-05-03
信頼できるつながりが、人もデータも強くします。

各国で進むベース・レジストリ整備、日本政府もアドレス、イベント、公共施設からベース・レジストリの公開がスタート。これらを活用するフェーズへと進めましょう。鍵は、データの相互運用性。デジタル庁から「政府相互運用性フレームワーク(GIF)」も発表されました。

つなぐために必要なのは文脈。日本語を使って食べ物の話をしているという文脈があるからこそ「その"はし"取って」が通じるように、異なる人が作ったデータ同士をつなぐためは共通の前提知識(文脈、context)が必要です。


様々なプラットフォームで共通で使えるデータ形式JSON(ジェイソン)にも、文脈(@context)を加えたJSON-LD(ジェイソン・エルディー)があります。(前回、JSON-LD化したデータで開催予定イベントアプリを作ってみました)


ベース・レジストリ データカタログで公開されているデータはすべてCSVです。1行ずつコンマ区切りになっているCSVファイルは、ExcelやNumbersなどの表計算ソフトやさまざまなデータ解析ソフトで使えるオープンな形式です。これに文脈を加えたLinkedCSVを定義しました。文脈(@context)にはJSON-LDと同じファイルを使います。


「code4fukui/LinkedCSV: A schema of Linked CSV Dataset extends schema:Dataset」

GIFでも参照されている、Googleなどが推進するデータ標準「schema.org」にてデータセットの表現として定義されている Dataset を、文脈(contextUrl)を持つ、LinkedCSV として拡張しました。schema.orgの定義「schemaorg-current-https.jsonld」を参考に、JSONLDで記述しています。(LinkedCSV.jsonld src on GitHub)


「開催予定イベント情報(ベース・レジストリ データカタログサイト活用アプリ)」
(src on GitHub)
見た目は変わっていませんが、使っているデータをJSON-LDからLinkedCSVに変更しています。データの取得部分、JSON-LDとLinkedCSVの違いを見てみましょう。(今回はイベントの文脈「event-schema.jsonld」自体の活用はしていません) const fetchJSONLD = async () => { const url = "https://code4fukui.github.io/event-japan/data-latest/event-latest.jsonld"; const datald = await (await fetch(url)).json(); const data = jsonld2json(datald); return data; }; const fetchLinkedCSV = async () => { const baseurl = "https://code4fukui.github.io/event-japan/data-latest/"; const url = baseurl + "event-latest.csv.jsonld"; const datald = await (await fetch(url)).json(); console.log("skip contextUrl: " + baseurl + datald["LinkedCSV:contextUrl"]); const url2 = datald["schema:distribution"]["schema:url"]; const { CSV } = await import("https://js.sabae.cc/CSV.js"); const data = CSV.toJSON(await CSV.fetch(baseurl + url2)); return data; };

文脈を使うとデータの型を厳格化できるので、データがより見やすくなり、バグの少ないデータづくりや開発がサポートされたり、いろいろと便利になりそうです。

LinkedCSVで従来のCSVデータを一切変更することなく、文脈を加えられるようになりました。 データをどんどんつないでいきましょう!

links
- 日本中のイベントが集まる!? ベース・レジストリ データカタログサイト活用「開催予定イベント情報アプリ」
- デジタル庁から公開された基本データ、アドレス・ベース・レジストリを使った日本の市区町村一覧
- 都道府県が再編されても大丈夫なアドレス・ベース・レジストリを使った都道府県選択コンポーネントとCSV/JSON/CBOR比較
- 日本の町字の五十音順にソート、トップ5は?アドレス・ベース・レジストリ利用例

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS