このドキュメントは
Resource Description Framework: Data Model Summary
http://www.w3.org/2000/09/rdfmodel/
の和訳です。
この文書には和訳上の誤りがありえます。
内容の保証はいたしかねますので、必ずW3C Webサイトの正式版文書を参照して下さい。

Strawman: RDF-Model-Summary-1

Resource Description Framework: Data Model Summary

RDF Interest Group Discussion Document

This Version:
http://www.w3.org/2000/09/rdfmodel/1 $Date: 2000/09/08 13:45:48 $
Newest Version:
http://www.w3.org/2000/09/rdfmodel/
Editor (butcher ;-):
Dan Brickley , World Wide Web Consortium / ILRT
Rather crudely derrived from REC-rdf-syntax-19990222, whose editors were: :
Ora Lassila , Nokia Research Center
Ralph R. Swick , World Wide Web Consortium

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.のメーリング・リストに送ることができる。


Table of Contents
目次

  1. 序論
  2. 基本的なRDFモデル
  3. RDFコンテナ
  4. RDFステートメント
  5. RDFのための正式モデル
  6. 用語集
  7. 付録:参考

1. 序論

World Wide Webは元々人間の消費のために作られ、その上の全てのものは機械が読むことができる。しかし、このデータをマシンが理解することはできない。Web上で自動的に何かをすることは非常に難しく、そしてWebが含んでいる情報量の多さのため手作業で管理することは不可能である。ここで提案する解決策は、メタデータを使って、Web上に含まれるデータについて説明することである。メタデータは「データについてのデータ」である(例えば、ライブラリカタログは、出版物について説明している。故にメタデータである)。また、特にこの仕様書のコンテキスト内では「Webリソースについて説明しているデータ」のことである。「データ」と「メタデータ」の区別は絶対的なものではない。それは主に特定のアプリケーションによって作られる区別であり、一つのリソースが両様に解釈されることも少なくないでだろう。

2. 基本的なRDFモデル

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.章参照

3. コンテナ・モデル

RDFは3つのコンテナ・オブジェクトのタイプを定義する:

Bag リソースまたはリテラルの順序付けされないリスト。Bagは、プロパティーが複数の値を持っていることと与えられた値の中での順序に意味がないと宣言するために使用される。Bagは、部品を処理する順序が重要でないところで、部分番号のリストを与えるために使用されるだろう。重複した値が許される。
Sequence リソースまたはリテラルの順序付けされたリスト。 Sequenceは、プロパティーが複数の値を持っていることと値の順序が重要であることを宣言するために使われる。 Sequenceは、例えば、値をアルファベット順に維持するために使われるだろう。重複した値が許される。
Alternative (1つの)プロパティー値を選択する選択肢を表すリソースまたはリテラルのリスト。 Alternativeは、仕事のタイトルに選択できる言語翻訳を提供するためや、リソースが見つかるだろうインターネットミラーサイトのリストを提供するために使われるだろう。 Alternativeコレクションが値であるプロパティーを使用するアプリケーションは、そのリストの項目のどれもがふさわしいものとして選ぶことができることを認識する。
注:BagとSequenceの定義は明白に重複した値を許す。RDFは、重複しないBagであるSetのコア・コンセプトを定義しない、なぜならRDFコアはこのような制約に対する違反が生じたときに強制メカニズムに権限を与えないからである。将来、RDFコア上に重ねられる仕事が、このような機能を定義するかもしれない。

リソースのコレクションを表すために、RDFは特有のコレクション(オブジェクト・モデル用語でのコレクションのインスタンス)を明らかにする追加のリソースを使用する。このリソースは、上記で定義されたコンテナ・オブジェクト・タイプの1つのインスタンスであると宣言されなければならない。下記で定義されているtypeプロパティーは、この宣言をするために使われる。このコンテナ・リソースとこのコレクションに属するリソースとの間のメンバーシップ関係は、この目的のために特別に定義されたプロパティーの集合によって定義される。これらのメンバーシップ・プロパティーは、単に"_1","_2","_3"などと名付けられる。コンテナ・リソースは、メンバーシップ・プロパティーとtypeプロパティーに加えて他のプロパティーを持っていることがある。このような追加のステートメントがコンテナを記述する。メンバー自身のそれぞれに対するステートメントの議論に関しては3.3章、分散リファレント、参照。

コンテナの一般的使用法は、プロパティーの値である。このように使用されたとき、コンテナ・メンバーの数に関わらず、そのステートメントは単一のステートメント・オブジェクトを持っている。コンテナ・リソースはそれ自身ステートメントのオブジェクトである。

4. モデリング・ステートメントとステートメントについてのステートメント

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は以下のプロパティーを定義する。

subject subjectプロパティーは、モデル化されたステートメントによって説明されているリソースを明らかにする。すなわち、subjectプロパティーの値は、元のステートメントが作られたリソースである。
(例では、http://www.w3.org/Home/Lassila)
predicate predicateプロパティーは、モデル化されたステートメントのオリジナルのプロパティーを識別する。 predicateプロパティーの値は、元のステートメントの特定なプロパティーを意味するリソースである。
(例では、作成者)
object objectプロパティーは、モデル化されたステートメントでのプロパティー値を識別する。objectプロパティーの値は、元のステートメントでのobjectである。
(例では、Ora Lassila)
type typeプロパティーの値は、新しいリソースのtypeを識別する。すべての具体化ステートメントは、RDF:Statementのインスタンスである。すなわち、それらは、そのobjectがRDF:Statementであるtypeプロパティーを持っている。3章「コンテナ」に示したように、typeプロパティーもまた、あらゆるタイプのリソースを宣言するためにより一般的に使われる。

上記の4つのプロパティーを持った新しいリソースは、元のステートメントを表し、他のステートメントの目的語として使用されることやそれについて作られた追加のステートメントを持つこともできる。これらの4つプロパティーを持ったリソースは、元のステートメントの置き換えではなく、それはステートメントのモデルである。ステートメントとその対応する具体化ステートメントは、RDFグラフで独立して存在し、一方は、もう一方がなくても存在するだろう。RDFグラフは、対応する具体化ステートメントが存在しているかどうかに関わらず、ステートメントがグラフに存在している場合に限り、ステートメントで与えられた事実を含んでいると言える。

上記の例をモデル化するため、別のプロパティーを適切な値を持った具体化ステートメント("attributedTo"という)に付加することができた(この「Ralph Swick」のケースで)。

...

具体化もまたDescription要素によって示されたステートメントのグルーピングモデルで明確に表すため必要とされる。RDFグラフ・モデルは、Descriptionのために特別な構造を必要としない。実際はDescriptionがステートメントのコレクションであるので、Bagコンテナはステートメントのセットが同じ(構文の)Descriptionから生じたことを示すために使われる。 Description中のそれぞれのステートメントが、具体化され、具体化ステートメントのそれぞれがそのDescriptionを意味するBagのメンバーである。例として、RDFフラグメント

5. RDFのための正式モデル

RDFモデルおよびシンタックス仕様は、3つ組(トリプル)として、グラフとして、XMLとしての3つのデーター・モデル表現を説明している。これらの表現は同等の意味を持っている。この仕様で使われた表現間のマッピングは、いかなる場合でも実装によって使われた内部表現を制限するように意図したものではない。

RDFデーター・モデルは、正式には、以下のように定義される:

  1. リソースと呼ばれるセットがある。
  2. リテラルと呼ばれるセットがある。
  3. プロパティーと呼ばれるリソース のサブセットがある。
  4. ステートメントと呼ばれる、セットがある。そのステートメントのそれぞれの要素は

    {pred, sub, obj}

    という3つ組の形である。
    ただし、pred がプロパティー(プロパティーのメンバー)、subがリソース(リソースのメンバー)、そして obj がリソースあるいはリテラル(リテラルのメンバー)である。

ステートメントの集合(ステートメントのメンバー)をラベル付き有向性グラフとして見ることができる。それぞれのリソースとリテラルが頂点である。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の作成者である。)

は、以下のように図式化して表されるだろう。

単純な声明グラフD

図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の正式の定義は以下。

  1. RDF:typeというプロパティーの要素がある。
  2. 形式{RDF:type,sub,obj}のステートメントのメンバーが次のことを満たさなくてはならない。subとobjは、リソースのメンバーである。 [RDFSchema] は、typeの使用に追加の制限を課している。

さらに、具体化することの正式仕様は、

  1. RDF:Statementというプロパティーに含まれないリソース の要素がある。
  2. プロパティーには、RDF:predicate、RDF:subject、RDF:objectという3つの要素がある。
  3. ステートメントの3つ組{pred、sub、obj}の具体化は、具体化された3つ組を表わすリソースの要素rと下記に示すステートメントの要素s1、s2、s3、s4である。

    s1: {RDF:predicate, r, pred}
    s2: {RDF:subject, r, subj}
    s3: {RDF:object, r, obj}
    s4: {RDF:type, r, [RDF:Statement]}

上記の定義ではリソースrは具体化ステートメントと呼ばれるている。リソースが具体化されたステートメントを表すとき、すなわち、それがRDF:Statementの値を持ったRDF:typeのプロパティーを持つとき、そのリソースが正確に、1つのRDF:subjectプロパティーと、 1つのRDF:objectプロパティーと、1つのRDF:predicateプロパティーを持たなければならない。

3章で説明したよう、リソースやリテラルのコレクションを表すことは、頻繁に必要となる。例えば、プロパティーが順序付けされた連続した値を持つということを指定するために。RDFは3種類のコレクションを定義している。Sequencesという順序付けされたリスト、Bagsという順序付けされないリスト、 Alternativesというプロパティーの(1つの)値の選択肢を表しているリストである。

正式には、これらの3つのコレクション・タイプは下記のように定義される。

  1. RDF:Seq、RDF:Bag、RDF:Altというプロパティーには含まれない 3つのリソースの要素がある。
  2. Ordという序数(1、2、3、...)に対応しているプロパティー のサブセットがある。Ordの要素をRDF:_1、RDF:_2、RDF:_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リソースに対するのデフォルト値である。(すなわち、いつも少なくとも一つの選択肢がなければならない。)

用語集

Arc(弧)
グラフでのプロパティーの表記。特にラベル付有向グラフの端。
 
Attribute(属性)
オブジェクトの特徴。6章では、この用語は特定のXMLの構文的な構造のことを言う。つまり、XMLタグのname="value"の部分のこと。
 
Element(要素)
ここでは、この用語はXML特有の構文的な構造のことを言う。すなわち、XML開始と終了タグとの間のもの。
 
Literal(リテラル)
RDFで表される最もプリミティブな値のタイプ、典型的には文字列。リテラルの中身は、RDFそれ自身によって解釈されない、そして付加的なXMLマークアップを含んでいるかもしれない。RDFモデルは、リテラルがステートメントの主語であるのを許さないので、リテラルは、リソースから区別される。
 
Node(ノード)
グラフ形式でのリソースあるいはリテラルの表現。特に、ラベル付有向グラフの頂点。
 
Property(プロパティー)
他のリソースを説明するために使われることのある定義された意味を持った特定の属性。プロパティーと特定のリソースのためのプロパティーの値が、そのリソースのステートメントである。プロパティーは、このプロパティーで記述されるリソースのタイプと同じようにその許される値が定義されるかもしれない。
 
Resource(リソース)
人や本のような物理的オブジェクト、または、色や色を持つもののクラスのような概念的オブジェクトのどちらも表す抽象的オブジェクト。通常、Webページは、物理的オブジェクトであると考えられるが、物理的オブジェクトと概念的または抽象的オブジェクトの間の区別は、RDFには重要ではない。また、リソースは、より大きいオブジェクトのコンポーネントでもあり得る。例えば、リソースは特定の人の左手やドキュメントの特定のパラグラフを表すことができる。この仕様では、用語リソースは、URIがフラグメント(アンカー)idを含んでいないならオブジェクト全体を、または、フラグメントかアンカーidによって名前を付けられた特定のサブユニットを示す。
 
Statement(ステートメント)
特定のリソースと特定のプロパティー(属性)に名前をつけ、そのリソースに対しそのプロパティーの値を与える特定の文法に従った式。さらにここでは特に、RDFステートメントは、このドキュメントで明示したRDF/XML文法を使うステートメントである。
 
Triple(3つ組)
RDFによって使われるステートメントの表現、順序で正にプロパティー、リソース識別子とプロパティー値で構成される。

付録:参考

[Dexter94]
F. Halasz and M. Schwarz. The Dexter Hypertext Reference Model. Communications of the ACM, 37(2):30--39, February 1994. Edited by K. Gronback and R. Trigg. http://www.acm.org/pubs/citations/journals/cacm/1994-37-2/p30-halasz/
[HTML]
HTML 4.0 Specification, Raggett, Le Hors, Jacobs eds, World Wide Web Consortium Recommendation; http://www.w3.org/TR/REC-html40
[ISO10646]
ISO/IEC 10646. The applicable version of this standard is defined in the XML specification [XML].
[NAMESPACES]
Namespaces in XML; Bray, Hollander, Layman eds, World Wide Web Consortium Recommendation; http://www.w3.org/TR/1999/REC-xml-names-19990114.
[PICS]
PICS Label Distribution Label Syntax and Communication Protocols, Version 1.1, W3C Recommendation 31-October-96; http://www.w3.org/TR/REC-PICS-labels.
[RDFSchema]
Resource Description Framework (RDF) Schemas; Brickley, Guha, Layman eds., World Wide Web Consortium Working Draft;
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels; S. Bradner, March 1997; RFC2119.
[Unicode]
The Unicode Standard. The applicable version of this standard is the version defined by the XML specification [XML].
[URI]
Uniform Resource Identifiers (URI): Generic Syntax; Berners-Lee, Fielding, Masinter, Internet Draft Standard August, 1998; RFC2396.
[XML]
Extensible Markup Language (XML) 1.0; World Wide Web Consortium Recommendation; http://www.w3.org/TR/REC-xml.
[XMLinHTML]
XML in HTML Meeting Report; Connolly, Wood eds.; World Wide Web Consortium Note; http://www.w3.org/TR/NOTE-xh.