Copyright c 1997,1998,1999,2000 W3C (MIT, INRIA, Keio ), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
重要: このドキュメントはW3Cの仕様書であると誤解してはならない。下記のテキストは、 RDF Model and Syntax REC. Unlike that document, this current text is not a complete work.から粗末に抜粋された。「RDFモデルおよびシンタックスREC」と異なり、現在のこのテキストは完全な仕事ではない。
このドキュメントは、 RDF Interest Group. によって考察のために"a strawman discussion"ドキュメントとして準備された(たった一人のエディターによる個人寄稿として)。
それは、RDFモデルおよびシンタックス仕様からRDF 1.0 XML文法、例、および、RDFデーター・モデルの仕様に直接関係のない内容のほとんどを削除することにより作られた。この抜粋された「RDFモデル概観」の最初のバージョンが詳細に大きな注意を払って作られたのではなく、単に"proof of concept"またはstrawmanスケッチとしての役目をすることに注目されたい。
RDFインプリメンター健康警告: この仕事をリファレンス・ドキュメントとして使わないように。(そうであるかのように誘惑するが)唯一の使用法は、www-rdf-interestに関する議論を促進し、RDF問題リスト. を洗練することである。このドキュメントに関するいかなる進行中のメンテナンスあるいは改善に対するコミットメントがなされていないことも強調されるべきである。
このディスカッション・ドキュメントに関するコメントは、 <www-rdf-interest@w3.org>RDF Interest Group.のメーリング・リストに送ることができる。
World Wide Webは元々人間の消費のために作られ、その上の全てのものは機械が読むことができる。しかし、このデータをマシンが理解することはできない。Web上で自動的に何かをすることは非常に難しく、そしてWebが含んでいる情報量の多さのため手作業で管理することは不可能である。ここで提案する解決策は、メタデータを使って、Web上に含まれるデータについて説明することである。メタデータは「データについてのデータ」である(例えば、ライブラリカタログは、出版物について説明している。故にメタデータである)。また、特にこの仕様書のコンテキスト内では「Webリソースについて説明しているデータ」のことである。「データ」と「メタデータ」の区別は絶対的なものではない。それは主に特定のアプリケーションによって作られる区別であり、一つのリソースが両様に解釈されることも少なくないでだろう。
RDFの基礎は、名前付けされたプロパティーとプロパティーの値を表すためのモデルである。RDFモデルは、さまざまなデータ表現のコミュニティーで確立した原理に沿って描かれる。 RDFプロパティーは、リソースの属性と考えてよく、この意味で従来の属性と値の対に相当する。RDFプロパティーはリソース間の関係も表す。そのためRDFモデルはエンティティ関係(ER)図に似ているかもしれない。(より正確に言うと、RDFスキーマ[それ自身がRDFデーター・モデルのインスタンスである]がER図である)オブジェクト指向デザイン用語においては、リソースがオブジェクト、プロパティーがインスタンス変数に対応する。
RDFデーター・モデルはRDF式を表記する構文的に中立な方法である。データー・モデル表記は、意味において等価であることを評価するために使われる。2つのRDF式が同じである場合に限り、これらは等価である。この等価性の定義により、式において、その意味を変えることなく、いくつかの文法上のバリエーションが許される。 (ストリング比較の問題の追加ディスカッションについては 6章 参照)
基礎的なデータ・モデルは、3つのオブジェクト・タイプから構成される:
| リソース | RDF式により説明されるすべてのものはリソースと呼ばれる。あるリソースは、Webページ全体であるかもしれない(例えば、HTMLドキュメント"http://www.w3.org/Overview.html"のような)。またあるリソースは、Webページの一部であるかもしれない(例えば、ドキュメントソース内の特定のHTMLあるいはXML要素のような)。またあるリソースは、Webページのコレクションあるかもしれない(例えば、あるWebサイト全体のような)。またあるリソースは、Webを介して直接アクセスできない対象かもしれない(例えば、印刷された本)。リソースは、常にURIとオプショナルなアンカーID([ URI]参照)によって名前付けすることができる。どんなものでもURIを持つことができる。URIの拡張性により、あらゆる考えうる実体に対する識別子の導入を可能にする。 |
| プロパティー | プロパティーはリソースを説明するための特有の概観、特徴、属性、または関係である。それぞれのプロパティーは特有の意味を持ち、プロパティーの許された値、プロパティーが説明可能なリソース・タイプ、そして他のプロパティーとの関係を定義する。 このドキュメントは、どのようにプロパティーの特徴が表現されるかということを扱わない。このような情報については、RDF Schema specificationを参照されたい。 |
| ステートメント | 名前付けられたプロパティーに加えリソースに対するプロパティー値を付加した特定のリソースがRDFステートメントである。これらステートメント個々3つのパーツは、それぞれ、主語(subject)、述語(predicate)、目的語(object)と呼ばれる。ステートメントの目的語(すなわち、プロパティー値)は、別のリソースの可能性もあるし、またリテラル(すなわち、リソース(URIによって指定された)、簡単な文字列、あるいはXMLで定義された他の基本的なデータタイプ)の可能性もある。RDF用語でのリテラルは、XMLでマークアップされたコンテンツを持っていてもよいが、RDFプロセッサーによって、それ以上に評価されない。リテラル内で許されているマークアップの表記方法については構文的な制約事項がある。2.2.1.章参照 |
RDFは3つのコンテナ・オブジェクトのタイプを定義する:
注:BagとSequenceの定義は明白に重複した値を許す。RDFは、重複しないBagであるSetのコア・コンセプトを定義しない、なぜならRDFコアはこのような制約に対する違反が生じたときに強制メカニズムに権限を与えないからである。将来、RDFコア上に重ねられる仕事が、このような機能を定義するかもしれない。
リソースのコレクションを表すために、RDFは特有のコレクション(オブジェクト・モデル用語でのコレクションのインスタンス)を明らかにする追加のリソースを使用する。このリソースは、上記で定義されたコンテナ・オブジェクト・タイプの1つのインスタンスであると宣言されなければならない。下記で定義されているtypeプロパティーは、この宣言をするために使われる。このコンテナ・リソースとこのコレクションに属するリソースとの間のメンバーシップ関係は、この目的のために特別に定義されたプロパティーの集合によって定義される。これらのメンバーシップ・プロパティーは、単に"_1","_2","_3"などと名付けられる。コンテナ・リソースは、メンバーシップ・プロパティーとtypeプロパティーに加えて他のプロパティーを持っていることがある。このような追加のステートメントがコンテナを記述する。メンバー自身のそれぞれに対するステートメントの議論に関しては3.3章、分散リファレント、参照。
コンテナの一般的使用法は、プロパティーの値である。このように使用されたとき、コンテナ・メンバーの数に関わらず、そのステートメントは単一のステートメント・オブジェクトを持っている。コンテナ・リソースはそれ自身ステートメントのオブジェクトである。
Webリソースについてのステートメントを作ることに加えて、RDFは他のRDF ステートメントについてのステートメントを作るために使用することができる。これを高次ステートメントと呼ぶ。別のステートメントについてのステートメントを作るために、実際に元のステートメントのモデルを構築しなければならない。このモデルは、追加のプロパティーを加えることができる新しいリソースである。
ステートメントはリソースについて作られる。ステートメントのモデルは、モデル化されたステートメントについての新しいステートメント(高次ステートメント)を作ることを可能にするために必要なリソースである。
例えば、以下の文を考えると
Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila.
(Ora Lassila はリソースhttp://www.w3.org/Home/Lassilaの作成者である。)
RDFはこの文を事実と見なすだろう。その代わりに、もし以下の文を書いたとしたら
Ralph Swick says that Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila.
(Ralph Swick はOra Lassilaがリソースhttp://www.w3.org/Home/Lassilaの作成者であると言う。)
リソースhttp://www.w3.org/Home/Lassilaについて何も言っていない。その代わりに、Ralphが作ったステートメントについて事実を表現した。この事実をRDFで表現するために、4つのプロパティーを持ったリソースとしてオリジナルのステートメントをモデルしなければならない。このプロセスは、知識表現コミュニティーで正式には具体化と呼ばれる。ステートメントのモデルは具体化ステートメントと呼ばれる。
ステートメントをモデル化するため、RDFは以下のプロパティーを定義する。
上記の4つのプロパティーを持った新しいリソースは、元のステートメントを表し、他のステートメントの目的語として使用されることやそれについて作られた追加のステートメントを持つこともできる。これらの4つプロパティーを持ったリソースは、元のステートメントの置き換えではなく、それはステートメントのモデルである。ステートメントとその対応する具体化ステートメントは、RDFグラフで独立して存在し、一方は、もう一方がなくても存在するだろう。RDFグラフは、対応する具体化ステートメントが存在しているかどうかに関わらず、ステートメントがグラフに存在している場合に限り、ステートメントで与えられた事実を含んでいると言える。
上記の例をモデル化するため、別のプロパティーを適切な値を持った具体化ステートメント("attributedTo"という)に付加することができた(この「Ralph Swick」のケースで)。
...
具体化もまたDescription要素によって示されたステートメントのグルーピングモデルで明確に表すため必要とされる。RDFグラフ・モデルは、Descriptionのために特別な構造を必要としない。実際はDescriptionがステートメントのコレクションであるので、Bagコンテナはステートメントのセットが同じ(構文の)Descriptionから生じたことを示すために使われる。 Description中のそれぞれのステートメントが、具体化され、具体化ステートメントのそれぞれがそのDescriptionを意味するBagのメンバーである。例として、RDFフラグメント
RDFモデルおよびシンタックス仕様は、3つ組(トリプル)として、グラフとして、XMLとしての3つのデーター・モデル表現を説明している。これらの表現は同等の意味を持っている。この仕様で使われた表現間のマッピングは、いかなる場合でも実装によって使われた内部表現を制限するように意図したものではない。
RDFデーター・モデルは、正式には、以下のように定義される:
ステートメントの集合(ステートメントのメンバー)をラベル付き有向性グラフとして見ることができる。それぞれのリソースとリテラルが頂点である。3つ組 {p, s, o} は、pでラベル付けされたsからoへの弧(矢印?)である。これは図11で図解する。

D
図11: 単純なステートメント・グラフ・テンプレート
これは次のいずれかのように読める。
oは、sについてのpの値である。
あるいは(左から右へ)
sは、値oであるプロパティーpを持っている。
さらにまた
sのpはoである
例えば、次の文
Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila
(Ora Lassilaは、リソースhttp://www.w3.org/Home/Lassilaの作成者である。)
は、以下のように図式化して表されるだろう。
図12: 単純なステートメント・グラフ
そして対応する3つ組(ステートメントのメンバー)は、
{creator, [http://www.w3.org/Home/Lassila], "Ora Lassila"}
表記法[I]はURLIによって識別されたリソースを表し、引用符がリテラルを表す。
3つ組を使って、(4章で紹介したように)どのようにステートメントが具体化されるかを説明することができる。
与えられた次のステートメントを
{creator, [http://www.w3.org/Home/Lassila], "Ora Lassila"}
以下のように、この具体化を新しいリソースXとして表すことができる。
{type, [X], [RDF:Statement]}
{predicate, [X], [creator]}
{subject, [X], [http://www.w3.org/Home/Lassila]}
{object, [X], "Ora Lassila"}
RDFプロセッサーの観点から言うと、事実(すなわち、ステートメント)はステートメントのメンバーである3つ組である。そのため、元のステートメントを示す3つ組がステートメント内に残っているので、それが具体化されているにもかかわらず、元のステートメントは事実を残している。単に4つの3つ組を加えただけである。
"type"という名前のプロパティーはプリミティブな型付けを提供するために定義される。 typeの正式の定義は以下。
|
さらに、具体化することの正式仕様は、
|
上記の定義ではリソースrは具体化ステートメントと呼ばれるている。リソースが具体化されたステートメントを表すとき、すなわち、それがRDF:Statementの値を持ったRDF:typeのプロパティーを持つとき、そのリソースが正確に、1つのRDF:subjectプロパティーと、 1つのRDF:objectプロパティーと、1つのRDF:predicateプロパティーを持たなければならない。
3章で説明したよう、リソースやリテラルのコレクションを表すことは、頻繁に必要となる。例えば、プロパティーが順序付けされた連続した値を持つということを指定するために。RDFは3種類のコレクションを定義している。Sequencesという順序付けされたリスト、Bagsという順序付けされないリスト、 Alternativesというプロパティーの(1つの)値の選択肢を表しているリストである。
正式には、これらの3つのコレクション・タイプは下記のように定義される。
|
コレクションcを表わすために、3つ組{RDF:type、c、t}を作る。ただし、tは3つのコレクション・タイプ RDF:Seq、RDF:Bag、RDF:Altのうちの1つである。残りの3つ組が、{RDF:1、c、r1}、{RDF:-n、c、rn}、...コレクションのメンバーrnのそれぞれを指し示す。単一のコレクション・リソースについては、その述語がOrdの任意の与えられた要素である3つ組が最大でも1つあるかもしれない。また、Ordの要素はRDF:_1から始めて、順に使用されなければならない。RDF:Altコレクション・タイプのインスタンスであるリソースについては、述語がRDF:_1である3つ組が正確に1つなければならない。そして、それはAlternativesリソースに対するのデフォルト値である。(すなわち、いつも少なくとも一つの選択肢がなければならない。)