JSON-LD

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

Category:セマンティック・ウェブ
Category:JSON
Category:マークアップ言語
Category:データシリアライゼーションフォーマット