Resource Description Framework

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

Resource Description Framework (リソース・ディスクリプション・フレームワーク、RDF) とは、ウェブ上にある「リソース」を記述するための統一された枠組みであり、W3Cにより1999年2月に規格化されている(W3C:REC-rdf-syntax-19990222)[1]、邦訳:電子ネットワーク協議会[2])。RDFは特にメタデータについて記述することを目的としており、セマンティック・ウェブを実現するための技術的な構成要素の1つとなっている。

RDFの応用例にはRSSRDF site summary)やFOAFFriend of a Friend)などがある。また、RDFをXHTMLに埋め込む規格としてテンプレート:仮リンクがある。

構造

トリプル

RDFのメタデータのモデルでは、主語(テンプレート:Lang-en-short)述語(predicate)目的語(object)の3つの要素でリソースに関する関係情報を表現し、これをトリプルtriple)と呼ぶ。主語は記述対象のリソースである。述語は主語の特徴や主語と目的語との関係を示す。目的語は主語との関係のある物や述語の値である。通常(文法学上)の意味での、主語・述語・目的語の意味とは異なる使い方になる場合もあることに注意が必要である。例えば、RDFにおいて「空の色は青い」という情報を表現しようとした場合、「空は青という色を持つ」と情報を整理した後、「空」を主語、「(~という)色を持つ」を述語(述部)、「青」を目的語として扱う。

ファイル:Basic rdf graph.png
トリプルのRDFグラフ表現

このトリプルはグラフ理論におけるグラフで表現できる。通常リソースのノードを丸で示し、テキストのノードを四角で示す。トリプルの関係はこれらのノードを述語を重みとしたエッジで結ぶことで表現する。このグラフはRDFに記述される全てのトリプルを可視化して表現することになる。このグラフはRDF Validation Serviceといったバリデータなど描かせることができる。

RDFが定義しているのはこのトリプルに基づく抽象構文である。具象構文としてはXMLを利用したRDF/XMLが別に定義されている。

また、トリプルを表す簡易表記方法としてN-Triples[3]Notation3[4]Turtle[5]などがある。

N-Triples
1行ごとに1つのトリプルを、主語・述語・目的語の順にスペースで区切って表記するフォーマット。
Notation3
N-Triples を拡張し、XMLのような 接頭辞+ローカル名 に基づく表記や、実験的に推論規則なども可能としたフォーマット。
Turtle
N-Triples に、Notation3 の便利な書式を取り入れたフォーマット。

リソースの識別

RDFにおける主語は、URIで示されたリソースか、URIを持たず直接参照できない空白ノードのどちらかである。述語はURIで示される。目的語はUnicodeの文字列か(URIで示された)リソースか空白ノードのいずれかである。

RDFを元としたRSSFOAFなどにおいてはウェブ上に実際に存在しているデータを指し示すURIが使われることが普通である。一般にRDFにおいてはインターネットにおける参照可能なメタデータだけを扱うものに限らずにURIを扱うことができ、リソースのURIが参照が不能なものであっても問題はない。このリソースのURIが何らかの抽象的表現を表す場合もある。この参照不能なURIをRDFで用いる場合、予めその意味を決めておく必要がある。RDF自体はそのような語彙の共通に使える取り決めはしていないが、Dublin Coreなど共通に使える語彙も提供されている。

例文「New Yorkの略語はNYである。」のトリプルはそれぞれ

  • 主語「New York」 - URI 表現をurn:states:New%20Yorkとした
  • 述語「略語」- URI 表現をhttp://purl.org/dc/terms/alternativeとした
  • 目的語「NY」

となる。RDFで表現するときは、目的語は単なる文字列でも良いが、主語と述語はURIで表現されたリソースでなければならない。ここで仮に上のようにURIを対応すると、RDF/XMLで表記すると次のようになる。URIは標準ではないものを使ったが、読めばトリプルの関係が理解できる。

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dcterms="http://purl.org/dc/terms/">
  <rdf:Description rdf:about="urn:states:New%20York">
    <dcterms:alternative>NY</dcterms:alternative>
  </rdf:Description>
</rdf:RDF>
ファイル:Rdf-graph-example-NewYork.png
「New Yorkの略語はNYである」のRDFグラフ

もうひとつの例として、Wikipedia英語版の「Tony Benn」のページ「http://en.wikipedia.org/wiki/Tony_Benn」に関して、タイトルが「Tony Benn」、発行元が「Wikipedia」という情報があるとする。ここで、ひとつの主語に対して複数のトリプルが表現されているが、シンプルに次のようにRDF/XMLで表記する。

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
    <dc:title>Tony Benn</dc:title>
    <dc:publisher>Wikipedia</dc:publisher>
  </rdf:Description>
</rdf:RDF>
ファイル:Rdf-graph-example-TonyBenn.png
「"http://en.wikipedia.org/wiki/Tony_Benn"」に関するRDFのRDFグラフ

ここで、このリソースのタイトルが「Tony Benn」であることがRDFに記述されているのでコンピュータもそのように理解できる。特にDublin Coreの基本語彙であるhttp://purl.org/dc/elements/1.1/titleが理解できるソフトウェアならば、称号や権利といった意味ではなく、リソース自体の題名ということが認識できる。

供給例

脚注

  1. Resource Description Framework(RDF) Model and Syntax Specification
  2. Resource Description Framework(RDF) Model and Syntax Specification
  3. http://www.w3.org/2001/sw/RDFCore/ntriples/
  4. http://www.w3.org/DesignIssues/Notation3
  5. http://www.w3.org/TeamSubmission/turtle/

関連項目

外部リンク

テンプレート:W3C標準 テンプレート:Asbox