Resource Description Framework

Resource Description Framework（リソース・ディスクリプション・フレームワーク、RDF、）は、元はメタデータのデータモデルを記述するための枠組みとしてデザインされたWorld Wide Web Consortium (W3C) の仕様の一つ。さまざまな文法やデータのシリアライズ形式を使って、ウェブのリソースに実装された情報を概念的に記述したり、モデリングしたりするための一般的な手法として使われるようになった。ナレッジマネジメントのアプリケーションでも使われている。RDFは、セマンティック・ウェブを実現するための技術的な構成要素の1つとなっており、代表例としてLinked Open Dataがある。RDF は1999年にW3C勧告となり、RDF 1.0 仕様が2004年に、RDF 1.1 仕様が 2014年に発行された。
1999年の勧告の邦訳は電子ネットワーク協議会より発行されている。
構造.
トリプル.
RDFのメタデータのモデルでは、主語（）述語（）目的語（）の3つの要素でリソースに関する関係情報を表現し、これをトリプル（）と呼ぶ。主語は記述対象のリソースである。述語は主語の特徴や主語と目的語との関係を示す。目的語は主語との関係のある物や述語の値である。通常(文法学上)の意味での、主語・述語・目的語の意味とは異なる使い方になる場合もあることに注意が必要である。例えば、RDFにおいて「空の色は青い」という情報を表現しようとした場合、「空は青という色を持つ」と情報を整理した後、「空」を主語、「（～という）色を持つ」を述語（述部）、「青」を目的語として扱う。
このトリプルはグラフ理論におけるグラフで表現できる。通常リソースのノードを丸で示し、テキストのノードを四角で示す。トリプルの関係はこれらのノードを述語を重みとしたエッジで結ぶことで表現する。このグラフはRDFに記述される全てのトリプルを可視化して表現することになる。このグラフはRDF Validation Serviceといったバリデータなど描かせることができる。
RDFが定義しているのはこのトリプルに基づく抽象構文である。具象構文としてはXMLを利用したRDF/XMLが別に定義されている。
また、トリプルを表す簡易表記方法として、、などがある。
リソースの識別.
RDFにおける主語は、URIで示されたリソースか、URIを持たず直接参照できない空白ノードのどちらかである。述語はURIで示される。目的語はUnicodeの文字列か（URIで示された）リソースか空白ノードのいずれかである。
RDFを元としたRSSやFOAFなどにおいてはウェブ上に実際に存在しているデータを指し示すURIが使われることが普通である。一般にRDFにおいてはインターネットにおける参照可能なメタデータだけを扱うものに限らずにURIを扱うことができ、リソースのURIが参照が不能なものであっても問題はない。このリソースのURIが何らかの抽象的表現を表す場合もある。この参照不能なURIをRDFで用いる場合、予めその意味を決めておく必要がある。RDF自体はそのような語彙の共通に使える取り決めはしていないが、Dublin Coreなど共通に使える語彙も提供されている。
例.
例文「門前仲町の略語は“モンナカ”である。」のトリプルはそれぞれ
となる。RDFで表現するときは、目的語は単なる文字列でも良いが、主語と述語はURIで表現されたリソースでなければならない。ここで仮に上のようにURIを対応すると、RDF/XMLで表記すると次のようになる。
もうひとつの例として、Wikipedia英語版の「」のページ「http://en.wikipedia.org/wiki/Tony_Benn」に関して、タイトルが「」、発行元が「」という情報があるとする。ここで、ひとつの主語に対して複数のトリプルが表現されているが、シンプルに次のように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に記述されているのでコンピュータもそのように理解できる。特にDublin Coreの基本語彙であるcodice_1が理解できるソフトウェアならば、称号や権利といった意味ではなく、リソース自体の題名ということが認識できる。