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 Schema

  • リソースタイプについてのプロファイル
  • 低レイヤーのアプリケーションセマンティクス
    • human-readable
      • rdfs:label
      • rdfs:comment
    • machine-readable
      • rdfs:subclassOf
        • ベースとなるコンセプト
      • rdfs:domain
        • リレーションの親
        • 入力引数
      • rdfs:range
        • リレーションのリンク先
        • 戻り値
        • このリソースタイプにrfds:domsin突っ込むと、rdfs:rangeとして得られる

Linked Data

  • RDFはRESTfulになれない
    • URLの代わりにURIを使用するため
    • URIはただの識別子
      • そこからリソース表現が取得できることは保証していない
    • machine-readableなアプリケーションセマンティクスを記述するのであればALPSを上回る強力さ
  • Linked Data = RDF + 表現戦略
  • Link Data原則
    1. URIはリソースの名前
      • = addressability原則
    2. URIにリクエストを投げれる
      • URIとして、urnは使用しない
    3. URIからリソース表現が取得できる
    4. ほかのURIへのリンクを含める
      • = connectednessの原則
      • その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/
  • 語彙
    • いろいろ
  • セマンティクス
    • ほんまいろいろ

つづき・・・

RESTful Web APIs 読書メモ(13)