RESTful Web APIs 読書メモ(12)
Chapter 12. Resource Description and Linked Data
- ハイパーメディアフォーマット
- 表現戦略と記述戦略の両方を有する
- 表現戦略(Presentation Strategy)
- リソースのURLにGETリクエストを送り、リソースの表現を受け取ること
- 記述戦略(Description Strategy)
- リソースAがリソースBのURLを知っていること
- 利点
- リソースBのなにかを調べるために使用できる
- 非ハイパーメディアフォーマットにアプリケーションセマンティクスを提供する
- JSON-LD,…
- 表現を持たないリソースを扱える
- ISBN,…
RDF(Resource Description Framework)
- media-type
- application/rdf+xml
- text/turtle
- …..
- プロトコルセマンティクス
- GETによるナビゲーション
- アプリケーションセマンティクス
- なし
- アプリケーションセマンティクスのためのフレームワークという立ち位置 *URIにアプリケーションセマンティクスの意味づけ
- 純粋な記述戦略
- すべてのREST制約を満たせていない
- プロパティ
- rdf:Description/@about
- リソースのURIを指定
- URLをURIとして扱う
- rdf:type
- リソースタイプ
- リソースはリソースタイプURIで分類できる
- ジャンル、種別、…
- rdf:Description/@about
RDF Schema
- リソースタイプについてのプロファイル
- 低レイヤーのアプリケーションセマンティクス
- human-readable
- rdfs:label
- rdfs:comment
- machine-readable
- rdfs:subclassOf
- ベースとなるコンセプト
- rdfs:domain
- リレーションの親
- 入力引数
- rdfs:range
- リレーションのリンク先
- 戻り値
- このリソースタイプにrfds:domsin突っ込むと、rdfs:rangeとして得られる
- rdfs:subclassOf
- human-readable
Linked Data
- RDFはRESTfulになれない
- URLの代わりにURIを使用するため
- URIはただの識別子
- そこからリソース表現が取得できることは保証していない
- machine-readableなアプリケーションセマンティクスを記述するのであればALPSを上回る強力さ
- Linked Data = RDF + 表現戦略
- Link Data原則
- URIはリソースの名前
- = addressability原則
- URIにリクエストを投げれる
- URIとして、urnは使用しない
- URIからリソース表現が取得できる
- ほかのURIへのリンクを含める
- = connectednessの原則
- そのURIのリソース表現が取得可能とする
- URIはリソースの名前
Linked Dataフォーマット
JSON-LD
- media-type
- application/ld+json
- プロトコルセマンティクス
- GETによるナビゲーション
アプリケーションセマンティクス
- 自己記述式
Linked Data APIを書くなら、断然RDFよりJSON-LDオススメ
利用方法
- 別リソースとしてLINKヘッダでJSON-LDを指定
- 直接リソースのメタデータとして埋め込む
Hydra
- media-type
- application/ld+json
- プロトコルセマンティクス
- JSON-LD + 任意のHTTPメソッド
- supprtedOperationでJSONオブジェクトとして指定
- アプリケーションセマンティクス
- コレクションパターンを使って自己記述
XRD/JRD
- media-type
- application/xrd+xml
- application/jrd+json
- プロトコルセマンティクス
- GETによるナビゲーション
- アプリケーションセマンティクス
- なし
- RFC6415(XRD)
- propertyタグ、linkタグでアプリケーションセマンティクスを記述
- URIを指定するため、存在するかどうかは保証されない
Web Host Metadata Document
- media-type
- application/xrd+xml
- application/jrd+json
- プロトコルセマンティクス
- GETによるナビゲーション
- GETによる限定的なルックアップ
- linkタグのtemplate属性にURI Templateとして埋め込む
- urnであったとしてもリソース表現を取得できる
- アプリケーションセマンティクス
- なし
- RFC6415
- JSON Hone Document 的存在
Web Finger
- media-type
- application/jrd+json
- プロトコルセマンティクス
- JRDと同等
- アプリケーションセマンティクス
- ユーザーアカウント
Ontrogyカタログ
Schema.org RDF
- サイト
- schema.rdfs.org/
- 語彙
- schema.org core schemaにRDFaとして列挙
- セマンティクス
- オンライン検索したい事象の種類
FOAF
- サイト
- xmlns.com/foaf/spec/
- 語彙
- サイトよりindex.rdfをダウンロード
セマンティクス
- 人、組織に関すること
非公式の産業標準
最も有名なRDF Schemaレポジトリ
vocab.org
- サイト
- vocab.org/
- 語彙
- いろいろ
- セマンティクス
- ほんまいろいろ