Resource Description Framework
Resource Description Framework (リソース・ディスクリプション・フレームワーク、RDF) とは、ウェブ上にある「リソース」を記述するための統一された枠組みであり、W3Cにより1999年2月に規格化されている(W3C:REC-rdf-syntax-19990222)[1]、邦訳:電子ネットワーク協議会[2])。RDFは特にメタデータについて記述することを目的としており、セマンティック・ウェブを実現するための技術的な構成要素の1つとなっている。
RDFの応用例にはRSS(RDF site summary)やFOAF(Friend of a Friend)などがある。また、RDFをXHTMLに埋め込む規格としてテンプレート:仮リンクがある。
構造
トリプル
RDFのメタデータのモデルでは、主語(テンプレート:Lang-en-short)述語(predicate)目的語(object)の3つの要素でリソースに関する関係情報を表現し、これをトリプル(triple)と呼ぶ。主語は記述対象のリソースである。述語は主語の特徴や主語と目的語との関係を示す。目的語は主語との関係のある物や述語の値である。通常(文法学上)の意味での、主語・述語・目的語の意味とは異なる使い方になる場合もあることに注意が必要である。例えば、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を元としたRSSやFOAFなどにおいてはウェブ上に実際に存在しているデータを指し示す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>
もうひとつの例として、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>
ここで、このリソースのタイトルが「Tony Benn」であることがRDFに記述されているのでコンピュータもそのように理解できる。特にDublin Coreの基本語彙であるhttp://purl.org/dc/elements/1.1/title
が理解できるソフトウェアならば、称号や権利といった意味ではなく、リソース自体の題名ということが認識できる。
供給例
脚注
- ↑ Resource Description Framework(RDF) Model and Syntax Specification
- ↑ Resource Description Framework(RDF) Model and Syntax Specification
- ↑ http://www.w3.org/2001/sw/RDFCore/ntriples/
- ↑ http://www.w3.org/DesignIssues/Notation3
- ↑ http://www.w3.org/TeamSubmission/turtle/
関連項目
外部リンク
- 資料
- W3C公式RDFサイト
- RDF Primer
- RDF Primer(和訳)
- What is RDF?
- RDF/XML構文の簡単な説明 - 神崎正英[1]によるRDFの解説
- 一般的な語彙