JSON-LD (JavaScript Object Notation for Linked Data) は JSON を利用して Linked Data を表現する手法である。JSON-LD の目標のひとつは、開発者が既存の JSON を JSON-LD に変換する際の労力をできる限り減らすことであった。 JSON-LD は従来の JSON と同様の方法でデータをシリアライズすることができる。, M. Lanthaler and C. Gütl in Proceedings of the 3rd International Workshop on RESTful Design (WS-REST 2012) at WWW2012. 当初は JSON for Linked Data Community Group によって開発されていたが、その後、評価・改善・標準化のために RDF Working Group に移され、現在は JSON-LD Working Group によってメンテナンスされている。 JSON-LD はW3C勧告である。

設計 JSON-LD は JSON から RDF モデルへの追加のマッピングを提供する、「コンテキスト」(context) の概念に基づいて設計されている。コンテキストはJSON ドキュメント内のオブジェクトプロパティをオントロジー内の概念に結びつける。JSON-LD 記法を RDF に変換するために、JSON-LD は値を指定した型やタグ付けされた言語に強制することができる。コンテキストは直接 JSON-LD ドキュメントに埋め込むことも、別のファイルに入れて、他のドキュメント(HTTP リンクヘッダを介した従来の JSON ドキュメント)から参照することもできる。

例 { "@context": { "name": "http://xmlns.com/foaf/0.1/name", "homepage": { "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", "@type": "@id" }, "Person": "http://xmlns.com/foaf/0.1/Person" }, "@id": "https://me.example.com", "@type": "Person", "name": "John Smith", "homepage": "https://www.example.com/" }上の例では、FOAF (Friend of a Friend) オントロジーに基づいて表された人間である。まず、name と homepage という二つの JSON プロパティと Person という型は FOAF 語彙の概念にマッピングされ、homepage プロパティの値は @id 型であると指定されている。言い換えれば、homepage の id はコンテキストの定義によって IRI であることを指定されている。RDF モデルに基づいて、ドキュメントの中で表される人物を IRI によって明確に識別することができる。解決可能な IRI を使うことで、さらに多くの情報を含むRDF ドキュメントを参照読み込みできるため、クライアントはそれらのリンクに従うだけで新しいデータを発見できる。この原則は Follow Your Nose として知られている。

この例のようにすべてのデータに意味論的な注釈を付けることによって、RDF プロセッサはドキュメントが人物 (@type) についての情報を含むことを識別することができ、プロセッサが FOAF 語彙を理解する場合にどのプロパティがその人物の name や homepage を指定しているのか判断することができる。

事例 この記法は Schema.org、 Google Knowledge Graph、 で主に検索エンジン最適化活動で利用されている。 また、健康情報学や出所情報を表すアプリケーションなどにも使われている。 他にも Activity Streams という、潜在的・完了済みの行動に関する情報のやりとりのためのフォーマットの基礎でもあり、 分散型 SNS プロトコルである ActivityPub で利用されている。 さらに、モノのインターネット (IoT) の文脈でも利用され、JSON-LD ドキュメントである Thing Description では、ネットワークに面した IoT デバイスのインターフェースを表現するのに利用される。

参照

Hypertext Application Language

参考文献

外部リンク

JSON-LD.org