要約

RDF(Resource Description Framework)は、ウェブで情報を表すための枠組みです。このドキュメントは、すべてのRDFに基づく言語と仕様をリンクするのに役立つ抽象構文(データ・モデル)を定義しています。抽象構文には2つの重要なデータ構造があります。RDFグラフは主語―述語―目的語のトリプルで、その要素はIRI、空白ノード、データ型リテラルでありえます。これらは資源の記述を表すために用いられます。RDFデータセットは、RDFグラフの集合を構成し、デフォルト・グラフと0以上の名前付きグラフを含むために用いられます。さらに、RDF 1.1概念および抽象構文では、キーとなる概念と用語を導入し、データ型の定義とRDFグラフ内のIRIのフラグメント識別子の処理について論じます。

このドキュメントのステータス

この項は、このドキュメントの公開時のステータスについて記述しています。他のドキュメントがこのドキュメントに取って代わることがありえます。現行のW3Cの刊行物およびこの技術報告の最新の改訂版のリストは、http://www.w3.org/TR/のW3C技術報告インデックスにあります。

このドキュメントは、RDF 1.1ドキュメント群の一部です。これは、主要なRDF 1.1仕様であり、コアとなるRDF概念を定義しています。RDF 1.1の新しい概念は、複数のグラフを表現するRDFデータセットという概念です。このドキュメントに基づく多くのRDF 1.1仕様のテスト・スイートと実装報告は、RDF 1.1テスト・ケースのドキュメント[RDF11-TESTCASES]に含まれています。勧告案としての公開後に、このドキュメントには変更はありませんでした。

このドキュメントは、RDFワーキンググループによって勧告として公開されました。このドキュメントに関してコメントを行いたい場合には、[email protected]購読アーカイブ)にお送りください。どのようなコメントでも歓迎します。

このドキュメントは、W3Cメンバー、ソフトウェア開発者、他のW3Cグループ、および他の利害関係者によりレビューされ、W3C勧告として管理者の協賛を得ました。これは確定済みドキュメントであり、参考資料として用いたり、別のドキュメントで引用することができます。勧告の作成におけるW3Cの役割は、仕様に注意を引き付け、広範囲な開発を促進することです。これによってウェブの機能性および相互運用性が増強されます。

このドキュメントは、2004年2月5日のW3C特許方針の下で活動しているグループによって作成されました。W3Cは、このグループの成果物に関連するあらゆる特許の開示の公開リストを維持し、このページには特許の開示に関する指示も含まれています。不可欠な請求権(Essential Claim(s))を含んでいると思われる特許に関して実際に知っている人は、W3C特許方針の6項に従って情報を開示しなければなりません。

目次

1. はじめに

この項は非規範的です。

RDF(Resource Description Framework)は、ウェブで情報を表すための枠組みです。

このドキュメントは、次のものを含む、すべてのRDFに基づく言語と仕様をリンクするのに役立つ抽象構文(データ・モデル)を定義しています。

1.1 グラフ・ベースのデータ・モデル

抽象構文の中心となる構造は1組のトリプルであり、各トリプルは、主語(subject)、述語(predicate)、目的語(object)で構成されます。この1組のトリプルをRDFグラフと呼びます。RDFグラフは、ノードと有向アークの図として視覚化でき、各トリプルは、ノード-アーク-ノードのリンクで表されます。

2つのノード(主語と目的語)を持つRDFグラフと、それらを接続する(述語)トリプル
1 2つのノード(主語と目的語)を持つRDFグラフと、それらを接続する(述語)トリプル

1つのRDFグラフには、IRIリテラル空白ノードという3種類のノードがありえます。

1.2 資源とステートメント

あらゆるIRIまたはリテラルは、世の中の事物を表します(「論議領域」)。これらの事物を資源と呼びます。物体、ドキュメント、抽象的な概念、数、文字列を含むあらゆるものが資源になりえ、この用語は、それをRDFセマンティクスの仕様[RDF11-MT]で用いるときには「実体」と同義です。IRIで示される資源を、指示対象(referent)と呼び、リテラルで示される資源を、リテラル値と呼びます。リテラルは、文字列、数、日付などの使用できる値の範囲を定義するデータ型を持っています。特種なリテラルである言語タグ付き文字列は、自然言語のプレーン・テキストを表します。

RDFトリプルの言明は、述語によって示される関係が、主語目的語により示される資源の間で成立するということを述べます。RDFトリプルに対応したこのステートメントは、RDFステートメントとして知られています。述語自体はIRIであり、プロパティー、つまり、2項関係と見ることができる資源を表します。 (2つ以上のエンティティーが含まれる関係は、RDFで間接的に表現できるだけ[SWBP-N-ARYRELATIONS]。)

IRIリテラルとは異なり、空白ノードは特定の資源を識別しません。空白ノードが含まれるステートメントは、ある関係を持つ何かが、明示的な名前を持たずに存在することを述べます。

1.3 IRIの指示対象

IRIによって表される資源は、指示対象とも呼ばれます。XSDデータ型を識別するものなどの特定の意味を持つ一部のIRIに関しては、この仕様で指示対象を定めています。その他のすべてのIRIに関しては、あるIRIが正確に何を示すのかについては、この仕様では定義していません。他の仕様が、IRIの指示対象を固定したり、IRIの指示対象でありえるものにその他の制約を適用したりするかもしれません。

IRI指示対象を決定するためのガイドラインは、Architecture of the World Wide Web, Volume One[WEBARCH]やCool URIs for the Semantic Web [COOLURIS]などの、他のドキュメントで提供されています。非常に短くて非公式かつ部分的な説明は、次のようになります。

恐らく、ウェブ・アーキテクチャーにおけるIRIの最も重要な特性は、逆参照可能であることであり、したがって、リモート・サーバとの相互作用の出発点として利用できるということです。この仕様では、そのような相互作用については取り上げず、相互作用モデルも定義しません。資源を記述するグラフ・データ・モデルにおける、グローバルに一意な識別子としてIRIを扱うにすぎません。しかし、その相互作用は、リンクト・データ[LINKED-DATA]の概念にとって極めて重要であり、それには、RDFデータ・モデルとシリアル化フォーマットが用いられます。

1.4 RDF語彙と名前空間IRI

RDF語彙は、RDFグラフでの使用を目的としたIRIの集合です。例えば、[RDF11-SCHEMA]で記述されているIRIは、RDFスキーマ語彙です。RDFスキーマ自体は、追加のRDF語彙を定義し記述するために使用できます。そのような語彙の一部については、入門ドキュメント[RDF11-PRIMER]で言及しています。

RDF語彙IRIは、しばしば名前空間IRIという共通の部分文字列(substring)で始まります。規定により、一部の名前空間IRIは、名前空間接頭辞として知られている省略名に関連付けられています。次にいくつかの例を示します。

名前空間接頭辞とIRIの例
名前空間接頭辞 名前空間IRI RDF語彙
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF組み込み語彙[RDF11-SCHEMA]
rdfs http://www.w3.org/2000/01/rdf-schema# RDFスキーマ語彙[RDF11-SCHEMA]
xsd http://www.w3.org/2001/XMLSchema# RDF互換XSD型

一部のシリアル化フォーマットでは、読みやすくなるように、名前空間接頭辞を用いて、名前空間IRIで始まるIRIを省略するのが一般的です。例えば、http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteralというIRIは、rdf:XMLLiteralと省略されるでしょう。しかし、これらの省略形は有効なIRIではなく、IRIが期待される状況では使用してはならないことに注意してください。名前空間IRIと名前空間接頭辞は、RDFデータ・モデルの形式的な部分ではありません。これらは、IRIを省略形にするために構文上の利便性を提供するためのものにすぎません。

名前空間」という用語自体は、RDFのコンテキストでは、明確に定義された(well-defined)意味を持っていませんが、「名前空間IRI」または「RDF語彙」を指すために非形式的に使用されることがあります。

1.5 RDFと経時的な変化

RDFデータ・モデルは、時間と無関係であり、RDFグラフは、情報の静的なスナップショットです。

しかし、RDFグラフは、適切な語彙の用語があれば、出来事やその他のエンティティ―の時間的な側面に関する情報を表現できます。

RDFグラフは数学的な集合として定義されるため、RDFグラフからトリプルを追加または削除すれば、異なるRDFグラフが作成されます。

永続的ではあるが変更可能なRDFグラフの情報源やコンテナについて述べるために非形式的にRDF情報源という用語を用います。RDF情報源は、時間とともに変化しうる状態を持つと言える資源です。その状態のスナップショットを、RDFグラフとして表現できます。例えば、RDFを含んだ(RDF-bearing)表現を持つウェブ・ドキュメントはRDF情報源と考えられます。あらゆる資源と同じく、RDF情報源はIRIで指定され、したがって、他のRDFグラフにおいて記述できます。

直観的に言えば、次の方法で論議領域の変化を反映できます。

1.6 多数のRDFグラフの利用

RDFグラフはトリプルの集合であるため、容易に組み合わせることができ、複数の情報源のデータが使用可能となります。しかし、コンテンツは別にしたまま、多数のRDFグラフを利用することが望ましいことがあります。RDFデータセットは、この要件をサポートします。

RDFデータセットは、RDFグラフの集合です。これらのグラフのうちの1つをのぞくすべてには、関連付けられたIRIか空白ノードがあります。これらは名前付きグラフと呼ばれ、IRIや空白ノードはグラフ名と呼ばれます。残りのグラフには、関連付けられたIRIはなく、RDFデータセットのデフォルト・グラフと呼ばれます。

RDFデータセットには、多くの利用方法がありえます。その1つは、複数のRDF情報源のスナップショットを保持することです。

1.7 同等、含意および矛盾

RDFトリプルは、ステートメントをエンコードします―シンプルな論理式、または世の中に関する主張。RDFグラフは、そのトリプルの論理積(論理AND)です。RDFトリプルとグラフのこの意味に関する正確な詳細は、RDFセマンティックス仕様[RDF11-MT]で主に扱われるトピックであり、次のRDFグラフ間の関係が生じます。

含意
Aを真とする世の中のありとあらゆる配置がBも真とする場合、1つのRDFグラフAは、別のRDFグラフBを含意します。ABを含意する場合、Aの真理が推定されたり論証されれば、Bの真理が成立します。
同等
2つのRDFグラフABは、それらが世の中に関して同じ主張を行う場合、同等です。AB含意し、BAを含意する場合に限り、ABと同等です。
矛盾
内部矛盾が含まれている場合、RDFグラフは矛盾しています。この式を真にするような世の中の配置は存在しません。

含意レジーム[RDF11-MT]は、これらの関係を成立させる正確な条件を定義した仕様です。RDF自体は、含意、同等および矛盾のいくつかの基礎的なケースのみを認識します。RDFスキーマ[RDF11-SCHEMA]やOWL 2[OWL2-OVERVIEW]などのその他の仕様は、いくつかの領域固有の語彙などの、より強力な含意レジームを追加しています。

この仕様では、含意レジームが定義している論理関係を実装がどのように用いるかに関して制約を課しません。実装は、矛盾を検知してもしなくてもよく、含意された情報のすべてまたは一部をユーザに提供しても、まったく提供しなくてもかまいません。

1.8 RDFドキュメントと構文

RDFドキュメントは、Turtle[TURTLE]、RDFa[RDFA-PRIMER]、JSON-LD[JSON-LD]やTriG[TRIG]などの具象RDF構文RDFグラフまたはRDFデータセットをエンコードしたドキュメントです。RDFドキュメントにより、システム間でRDFグラフとRDFデータセットとの交換が可能となります。

具象RDF構文は、例えば、名前空間接頭辞、相対IRI、空白ノード識別子を用いたり、ステートメントを異なる順序にすることで、同じRDFグラフRDFデータセットをエンコードする様々な方法を提供できます。これらの側面は、RDFドキュメントの利便性に大きな影響がありえますが、その意味には重要ではありません。

2. 適合性

非規範的と記している項と同じく、この仕様のすべての作成ガイドライン、図、例、注は、非規範的です。この仕様のその他の部分はすべて規範的です。

この仕様の「しなければならない(MUST)」、「してはならない(MUST NOT)」、「必須である/要求される(REQUIRED)」、「すべきである/する必要がある(SHOULD)」、「すべきでない/する必要がない(SHOULD NOT)」、「推奨される(RECOMMENDED)」、「することができる/してもよい(MAY)」、「選択できる/任意である(OPTIONAL)」というキーワードは、[RFC2119]で記述されているように解釈されるべきです。

この仕様(RDF 1.1概念および抽象構文)は、具象RDF構文、API仕様、クエリ言語などの、データ・モデルと、関連するその他の仕様で使用するための用語を定義します。実装は、RDF 1.1概念および抽象構文に直接準拠できませんが、ここで定義している用語を規範的に参照するようなその他の仕様に準拠できます。

3. RDFグラフ

RDFグラフは、1組のRDFトリプルです。

3.1 トリプル

RDFトリプルは、次の3つの要素で構成されます。

RDFトリプルは規定上、主語、述語、目的語の順に記述されます。

RDFグラフノードの集合は、グラフ内のトリプルの主語と目的語の集合です。述語のIRIは、同じグラフのノードとしても出現可能です。

IRIリテラルおよび空白ノードは、RDF用語という総称で知られています。

IRIリテラルおよび空白ノードは、別個のものであり、区別可能です。例えば、文字列リテラルとしてのhttp://example.org/は、IRIとしてのhttp://example.org/とも、空白ノード識別子http://example.org/を持つ空白ノードとも同等ではありません。

3.2 IRI

RDFグラフ内のIRI(Internationalized Resource Identifier)は、RFC 3987[RFC3987]で定義されている構文に準拠したUnicodeの文字列[UNICODE]です。

RDF抽象構文のIRIは、絶対IRIでなければならず(MUST)、フラグメント識別子を含むことができます(MAY)。

IRIの同等性: 2つのIRIは、それらが[RFC3987]の5.1項にしたがったシンプルな文字列比較に基づいて同等である場合に限り、同等です。IRIの同等性を比較する場合に、さらに正規化を行なってはなりません(MUST NOT)。

URIとIRI: IRIは、広範囲なUnicodeの文字を許容するURI[RFC3986]を一般化したものです。すべての絶対URIとURLはIRIですが、すべてのIRIURIだとは限りません。URIに対してのみ定義されているオペレーションでIRIを用いる時には、[RFC3987]の3.1項で定義されているマッピングにしたがってそれを最初に変換しなければなりません。注目すべき例は、HTTPプロトコルでの検索です。そのマッピングには、非ASCII文字のUTF-8エンコーディング、URIでは認められていないオクテットのパーセント・エンコーディング、ドメイン名のPunycodeエンコーディングなどがあります。

相対IRI: 一部の具象RDF構文では、最終的な公開場所から独立してドキュメントのオーサリングを可能にする便利な省略表現として相対IRIが認められています。相対IRIを絶対的IRIにするためには、基底IRIに対して解決が行われなければなりません。したがって、そのような構文でシリアル化されたRDFグラフは、基底IRIを規定できる[RFC3986]場合にのみ、明確に定義(well-defined)されています。

IRIの正規化: 相互運用性の問題は、[RFC3987]の5項にしたがって正規化したIRIのみを作成することで回避できます。避けた方が良い非規範的な形式には、次のものが含まれています。

  • スキーム名およびドメイン名における大文字
  • IRIの構文で必須とされていない場合には、文字のパーセント・エンコーディング
  • HTTPのデフォルト・ポートの明記(http://example.com:80/)。http://example.com/が望ましい。
  • HTTP IRIにおける完全に空のパス(http://example.com)。http://example.com/が望ましい。
  • IRIのパス要素内の「/./」または「/../
  • パーセント・エンコーディングした三つ揃い(triplet)内の16進の小文字(「%3f」よりも「%3F」が望ましい)
  • IRIにおける国際化ドメイン名のPunycodeエンコーディング
  • Unicodeの正規形C[NFC]ではないIRI

3.3 リテラル

リテラルは、文字列、数値、日付などの値に用いられます。

RDFグラフ内のリテラルは、次の2つないし3つの要素で構成されます。

3番目の要素が存在していれば、リテラルは言語タグ付き文字列です。言語タグの字句表現は、小文字に変換できます(MAY)。言語タグの値空間は、常に小文字です。

具象構文がデータ型IRI言語タグのない字句形式のみで構成されるシンプルなリテラルをサポートできる(MAY)ことに注意してください。シンプルなリテラルは、http://www.w3.org/2001/XMLSchema#stringというデータ型IRIを有する抽象構文リテラルの糖衣構文です。同様に、ほとんどの具象構文は、データ型IRIのない言語タグ付き文字列を表しますが、これは、データ型IRIが常にhttp://www.w3.org/1999/02/22-rdf-syntax-ns#langStringと同等であるという理由によります。

リテラルに関連付けられたリテラル値は次のとおりです。

  1. リテラルが言語タグ付き文字列であれば、リテラル値は、字句形式言語タグで(この順で)構成される対です。
  2. リテラルのデータ型IRI認識されたデータ型IRIの集合内にあれば、dをデータ型IRI指示対象とします。
    1. リテラルの字句形式d字句空間内にあれば、リテラル値は、d字句から値へのマッピング字句形式に適用した結果です。
    2. そうでない場合、リテラルは不正な型で、リテラル値をリテラルに関連付けることはできません。その場合、セマンティック上の矛盾が生じますが、構文的には非整形式ではありません。実装は、不正な型のリテラルを受け入れ、それからRDFグラフを作成しなければなりません(MUST)。不正な型のリテラルに遭遇した時に、実装は警告を表示できます(MAY)。
  3. リテラルのデータ型IRI認識されたデータ型IRIの集合内にない場合のリテラル値については、この仕様では定義していません。

リテラルの用語の同等性: 2つのリテラルは、2つの字句形式、2つのデータ型IRI、2つの言語タグ(もしあれば)が、文字単位で同等である場合に限り、同等の用語(同じRDFリテラル)です。したがって、2つのリテラルが同じRDF用語でなくても、同じ値を持つことがありえます。例えば、

      "1"^^xs:integer
      "01"^^xs:integer
    

は、同じを表しますが、字句形式が異なるため、同じリテラルのRDF用語ではなく、同等の用語でもありません。

3.4 空白ノード

空白ノードは、IRIおよびリテラルと素です。そうでない場合は、可能な空白ノードの集合は任意です。RDFは空白ノードの内部構造を参照しません。

空白ノード識別子は、一部の具象RDF構文やRDFストアの実装で用いられるローカルな識別子です。これは、常にファイルまたはRDFストアをローカルに範囲としており、空白ノードに対する永続的またはポータブルな識別子ではありません。空白ノード識別子は、RDF抽象構文の一部ではなく、具象構文または実装に完全に依存します。したがって、もしも空白ノード識別子に対して構文的な制限があれば、その制限は、具象RDF構文や実装にも依存します。具象構文で空白ノード識別子を扱う実装では、構文でサポートされている状況をのぞき、複数存在する同じ空白ノード識別子から同じ空白ノードを作成しないように注意する必要があります。

3.5 空白ノードとIRIとの置換

空白ノードは、RDF抽象構文では識別子を持ちません。一部の具象構文で導入された空白ノード識別子は、ローカルな範囲のみを持っており、まぎれもなくシリアル化によるアーティファクトです。

より強力な識別が必要な状況では、システムは、RDFグラフの空白ノードの一部またはすべてを体系的にIRIに置換できます(MAY)。これを行いたいシステムは、このような方法で置き換えられた個々の空白ノードごとに、新しい、グローバルに一意なIRIスコーレムIRI)を作成すべきです(SHOULD)。

スコーレムIRIが他の場所で発生しない場合には、この変換はRDFグラフの意味をあまり変えません。しかし、それにより、スコーレムIRIを用いて、後で他のグラフの可能性を許すことになりますが、これは空白ノードでは可能ではありません。

システムは、空白ノードを置換するためだけにIRIが導入されたと認識できるような方法でスコーレムIRIを作成したいと考えるかもしれません。これにより、必要に応じて、システムがIRIを空白ノードにマッピングすることが可能となります。

システムの範囲の外でスコーレムIRIが認識できることを望むシステムは、genidという登記済みの名前を有するウェルノウン(well-known)IRI[RFC5785]を使用すべきです(SHOULD)。これは、HTTPかHTTPSのスキームを用いたIRI、または、ウェルノウンIRIの使用が明記された別のスキームです。そして、そのパスの構成要素は、/.well-known/genid/で始まります。

例えば、example.comというドメインの責任者は、次の、認識可能なスコーレムIRIを作成できます。

http://example.com/.well-known/genid/d26a2d0e98334696f4ad70a677abc1f6

RFC 5785[RFC5785]は、IRIではなく、ウェルノウンURIのみを規定しています。このドキュメントの目的にそって、ウェルノウンIRIは、IRIからURIへのマッピング[RFC3987]後に、ウェルノウンURIになる任意のIRIです。

3.6 グラフの比較

2つのグラフのノードの集合の間に、以下のような全単射Mがあれば、GG'の2つのRDFグラフ同型(isomorphic)です(つまり、それらは同一の形式を持っています)。

  1. Mは空白ノードを空白ノードにマッピングする。
  2. GのノードであるすべてのRDFリテラルlitに対しM(lit)=litである。
  3. GのノードであるすべてのIRIに対しM(iri)=iriである。
  4. トリプル( M(s), p, M(o) )G'にある場合に限り、トリプル( s, p, o )Gにある。

IRIの同等性リテラルの用語の同等性も参照してください。

この定義は、Mが、G'を得るためにどのようにGの各空白ノードを新しい空白ノードと置換できるかを示します。グラフ同型は、RDFテスト・ケース[RDF11-TESTCASES]仕様をサポートするために必要です。

4. RDFデータセット

RDFデータセットは、RDFグラフの集合で、次のものが含まれます。

空白ノードは、RDFデータセットのグラフ間で共有できます。

名前付きグラフ」には「名前」という言葉が用いられているにもかかわらず、グラフ名はグラフを表す必要はありません。これは、構文上、グラフと対になっているだけです。RDFは、グラフ名が表すことができる資源にも、その資源とグラフとの関係にも形式的な制限を置きません。異なるRDFデータセットのセマンティクスに関する議論は[RDF11-DATASETS]にあります。

一部のRDFデータセットの実装は、空の名前付きグラフを追跡しません。アプリケーションは、空の名前付きグラフの有無を重視しないことで、相互運用性の問題を回避できます。

SPARQL 1.1[SPARQL11-OVERVIEW]は、RDFデータセットの概念も定義しています。SPARQL 1.1とこの仕様のRDFデータセットの定義は、この仕様ではIRIか空白ノードのどちらかを用いてRDFグラフを識別することが認められているという点に、わずかな違いがあります。SPARQL 1.1クエリ言語では、IRIを用いてRDFグラフを識別することのみが認められています。既存のSPARQLの実装は、空白ノードを用いたRDFグラフの識別を暫くの間認めないかもしれないため、それらの使用により相互運用性の問題が生じる可能性があります。グラフ名として用いる空白ノードのスコーレム化は、これらの相互運用性の問題を克服するために使用できます。

4.1 RDFデータセット比較

D1のノード、トリプル、グラフと、D2のそれらとの間に、以下のような全単射Mがある場合に限り、2つのRDFデータセット(デフォルト・グラフDG1と任意の名前付きグラフNG1を持つRDFデータセットD1、およびデフォルト・グラフDG2と任意の名前付きグラフNG2を持つRDFデータセットD2)は同型のデータセット(dataset-isomorphic)です。

  1. Mは空白ノードを空白ノードにマッピングする。
  2. MはリテラルとURIの恒等写像(identity map)である。
  3. トリプル<s p o>ごとに、M(<s, p, o>)=<M(s), M(p), M(o)>である。
  4. グラフG={t1, ..., tn}ごとに、M(G)={M(t1), ..., M(tn)}である。
  5. DG2 = M(DG1)である。そして、
  6. <M(n), M(G)>がNG2にある場合に限り、<n, G>はNG1にある。

4.2 RDFデータセットの内容交渉

この項は非規範的です。

ウェブの資源には内容交渉[WEBARCH]によって利用可能となる多重表現があるかもしれません。RDFデータセットRDFグラフの両方の表現をサポートするRDFシリアル化フォーマットで表現が返されるかもしれません。RDFデータセットが返され、利用者がRDFグラフを予期している場合、RDFデータセットのデフォルト・グラフを用いるとよいでしょう。

5. データ型

文字列、数値、日付などの値を表すために、RDFリテラルと共にデータ型を用います。RDFで用いるデータ型の抽象化は、XMLスキーマ[XMLSCHEMA11-2]と互換性があります。この抽象化に準拠したデータ型の定義は、XMLスキーマでは定義されていなくても、RDFで使用できます(MAY)。RDFは、XMLスキーマの組み込みデータ型の多くを再利用し、rdf:HTMLrdf:XMLLiteralの2つの非規範なデータ型を追加定義しています。実装でサポートされるデータ型のリストは、その認識されたデータ型IRIによって決まります。

データ型は、字句空間値空間および字句から値へのマッピングで構成され、1つ以上のIRIで表されます。

データ型の字句空間は、Unicode[UNICODE]の文字列の集合です。

データ型の字句から値へのマッピングは、データ型の最初の要素が字句空間に属し、2番目の要素が値空間に属している1組の対です。字句空間の個々のメンバーは、きっかり1つの値と対になり、その値の字句表現となります。マッピングは字句空間から値空間への関数と見なすことができます。

言語タグ付き文字列は、http://www.w3.org/1999/02/22-rdf-syntax-ns#langStringというデータ型IRIを持っています。データ型の定義が字句空間における言語タグに対応していないため、このIRIに対するデータ型は形式的に定義されません。このデータ型IRIに関連付けられたすべての値空間は、文字列と言語タグの対の集合です。

例えば、値空間の個々のメンバーが2つの字句表現を持っている場合、xsd:booleanというXMLスキーマ・データ型は、次のように定義されます。

字句空間:
{“true”, “false”, “1”, “0”}
値空間:
{true, false}
字句から値へのマッピング
{ <“true”, true>, <“false”, false>, <“1”, true>, <“0”, false>, }

このデータ型を用いて定義できるリテラルは次のとおりです。

この表はxsd:booleanという型のリテラルを掲載している。
リテラル
<“true”, xsd:boolean> true
<“false”, xsd:boolean> false
<“1”, xsd:boolean> true
<“0”, xsd:boolean> false

5.1 XMLスキーマ組み込みデータ型

http://www.w3.org/2001/XMLSchema#xxxという形式のIRIは、xxxがデータ型の名前である場合、XMLスキーマ1.1パート2: データ型[XMLSCHEMA11-2]で定義されている組み込みデータ型を表します。次の表に記述されているXMLスキーマ組み込み型は、RDF互換のXSD型です。これらの使用が推奨されます(RECOMMENDED)。

xsd:hexBinaryとxsd:base64Binaryのデータ型がバイナリ情報を転送するための数少ない安全なデータ型であることに注意するとよいでしょう。

簡潔な記述を付したRDF互換のXSD型のリスト
データ型 値空間(参考情報)
コア型 xsd:string 文字列(ただし、一部のUnicode文字列を除く)
xsd:boolean 真(true)、偽(false)
xsd:decimal 任意の正確さの10進数
xsd:integer 任意のサイズの整数
IEEE浮動小数点
xsd:double ±Inf、±0、NaNを含む64ビット浮動小数点数
xsd:float ±Inf、±0、NaNを含む32ビット浮動小数点数
時間と日付 xsd:date 時間帯付き/なしの日付(yyyy-mm-dd)
xsd:time 時間帯付き/なしの時間(hh:mm:ss.sss…)
xsd:dateTime 時間帯付き/なしの日付と時間
xsd:dateTimeStamp 必須の時間帯付きの日付と時間
繰り返される日付と
部分的な日付
xsd:gYear グレゴリオ暦年
xsd:gMonth グレゴリオ暦月
xsd:gDay グレゴリオ暦日
xsd:gYearMonth グレゴリオ暦年・月
xsd:gMonthDay グレゴリオ暦月・日
xsd:duration 時間長
xsd:yearMonthDuration 時間長(月と年のみ)
xsd:dayTimeDuration 時間長(日、時、分、秒のみ)
値域制限のある
整数
xsd:byte -128…+127(8ビット)
xsd:short -32768…+32767(16ビット)
xsd:int -2147483648…+2147483647(32ビット)
xsd:long -9223372036854775808…+9223372036854775807(64ビット)
xsd:unsignedByte 0…255(8ビット)
xsd:unsignedShort 0…65535(16ビット)
xsd:unsignedInt 0…4294967295(32ビット)
xsd:unsignedLong 0…18446744073709551615(64ビット)
xsd:positiveInteger 整数 >0
xsd:nonNegativeInteger 整数 ≥0
xsd:negativeInteger 整数 <0
xsd:nonPositiveInteger 整数 ≤0
エンコードした
バイナリ・データ
xsd:hexBinary 16進エンコードしたバイナリ・データ
xsd:base64Binary Base64エンコードしたバイナリ・データ
その他の
XSD型
xsd:anyURI 絶対または相対のURIとIRI
xsd:language [BCP47]に基づく言語タグ
xsd:normalizedString 余白を正規化した文字列
xsd:token トークン化した文字列
xsd:NMTOKEN XML NMTOKEN
xsd:Name XML Name
xsd:NCName XML NCName

他の組み込みXMLスキーマ・データ型は、様々な理由で適しておらず、使用すべきではありません(SHOULD NOT)。

5.2 rdf:HTMLデータ型

この項は非規範的です。

RDFは、HTMLコンテンツを、使用可能なリテラル値として提供します。これにより、リテラル値でのマークアップが可能となります。このようなコンテンツは、RDFグラフでは、データ型rdf:HTMLに設定したリテラルを用いて示します。このデータ型は、W3C勧告ステータスにまだ達していない[DOM4]の仕様に依存するため、非規範的と定義されています。

rdf:HTMLデータ型は、次のように定義されています。

このデータ型を表すIRI
は、http://www.w3.org/1999/02/22-rdf-syntax-ns#HTMLです。
字句空間
は、Unicode[UNICODE]の文字列の集合です。
値空間
は、DOM DocumentFragmentノード[DOM4]の集合です。DOMメソッドA.isEqualNode(B)[DOM4]がtrue(真)を返す場合に限り、2つのDocumentFragmentノードABは等しいと考えられます。
字句から値へのマッピング

字句空間の個々のメンバーは、次のアルゴリズムを適用した結果に関連付けられます。

HTMLコンテンツで求められる言語アノテーション(lang="…")やXML名前空間(xmlns)が、HTMLリテラルに明示的に含まれていなければなりません。hrefなどの属性内の相対URLには、明確に定義された(well-defined)基底URLがなく、最も避けるべきです。RDFアプリケーションは、同じ文字列の一つのテキストのノードに対応したrdf:HTMLリテラルにxsd:stringを関連付けるような、同等性関係を追加使用できます。

5.3 rdf:XMLLiteralデータ型

この項は非規範的です。

RDFは、XMLコンテンツを、使用可能なリテラル値として提供します。このようなコンテンツは、RDFグラフでは、データ型rdf:XMLLiteralに設定したリテラルを用いて示します。このデータ型は、W3C勧告ステータスにまだ達していない[DOM4]の仕様に依存するため、非規範的と定義されています。

rdf:XMLLiteralデータ型は、次のように定義されています。

このデータ型を表すIRI
は、http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteralです。
字句空間
は、バランスの良い(well-balanced)、自己内蔵型の(self-contained)XMLコンテンツ[XML10]であるすべての文字列の集合です。そして、任意のXML開始タグと終了タグの間に組み込むと、XML名前空間[XML-NAMES]に適合するドキュメントが作成されます。
値空間
は、DocumentFragmentノード[DOM4]の集合です。DOMメソッドA.isEqualNode(B)true(真)を返す場合に限り、2つのDocumentFragmentノードABは等しいと考えられます。
字句から値へのマッピング

字句空間の個々のメンバーは、次のアルゴリズムを適用した結果に関連付けられます。

正規マッピング
は、値空間の個々のメンバーに対する正規字句形式[XMLSCHEMA11-2]を定義しています。rdf:XMLLiteral正規マッピングは、排他的なXML正規化メソッドコメント、空のInclusiveNamespaces PrefixList付き)[XML-EXC-C14N]です。

XMLコンテンツで求められるXML名前空間宣言(xmlns)、言語アノテーション(xml:lang)や基底URI宣言(xml:base)が、XMLリテラルに明示的に含まれていなければなりません。一部の具象RDF構文では、それらをコンテキストから継承するためのメカニズムを定義できることに注意してください(例えば、RDF/XML[RDF11-XML]の@parseType="literal")。

5.4 データ型IRI

データ型は、IRIで識別されます。Dがデータ型を参照するために用いられるIRIの集合である場合、Dの要素は認識されたデータ型IRIと呼ばれます。認識されたIRIは、固定の指示対象を持っています。http://www.w3.org/2001/XMLSchema#xxxという形式のIRIが認識されたものである場合、5.1項に記述されているすべてのXSD型ごとに、xsd:xxxという名前のRDF互換のXSD型を参照しなければなりません(MUST)。さらに、次のIRIが非規範的なデータ型に割り付けられます。

RDFのセマンティックの拡張により、他のデータ型IRIを認識されたものとし、そのIRIが固定したデータ型を参照することを要求することにするかもしれません。セマンティックの拡張に関する詳細は、RDFセマンティクス仕様[RDF11-MT]を参照してください。

RDFプロセッサは、データ型IRIを認識されたものとすることを要求されません。認識されていないIRIで型付けされたリテラルは、未知のIRIと同様に、つまり、未知の事物を参照する時のように扱われます。アプリケーションは、型付きリテラルで用いられているIRIの指示対象を決定できない場合には、警告メッセージを表示できます(MAY)が、そのようなRDFを、構文エラーやセマンティックなエラーとして拒絶すべきではありません(SHOULD NOT)。

他の仕様書は、あるデータ型に対するサポートを要求するなど、データ型IRIに追加の制約を課すことがあります(MAY)。

ウェブ・オントロジー言語[OWL2-OVERVIEW]は、RDFと共に使用できるカスタムのデータ型を形式的に定義するための機能を提供します。さらに、ユーザ定義によるシンプルなXMLスキーマ・データ型を識別するための実践方法が[SWBP-XSCH-DATATYPES]で提案されています。RDFの実装は、これらのどちらの機能もサポートする必要はありません。

6. フラグメント識別子

この項は非規範的です。

RDFは、IRIフラグメント識別子を含むことができる)を、資源の識別子として用います。フラグメント識別子のセマンティクスは、RFC 3986で定義されています[RFC3986]。それらは、通常、一次資源(primary resource)の一部であり、その表示形であり、そこで定義され、記述される二次資源(secondary resource)を識別し、その厳密なセマンティクスは、一次資源に対する検索の結果として生じる表現の集合に依存します。

この項では、RDFグラフをエンコードする表現におけるフラグメント識別子の処理について論じます。

<foo>という一次資源の、RDFを含んだ(RDF-bearing)表現では、barというフラグメントで識別される二次資源は、<foo#bar>というRDFグラフのフルのIRIで表される資源です。RDFグラフのIRIは何でも表すことができるため、これは表現外のものや、ウェブの外部のものでさえありえます。

このように、RDFを含んだ(RDF-bearing)表現は、ウェブでアクセス可能な一次資源と、RDFグラフが記述する可能性のあるおそらくウェブでないまたは抽象的なエンティティーの集合との仲介役として機能します。

他の仕様が、RDFを含んだ(RDF-bearing)表現において、フラグメント識別子のセマンティクスを制約するような場合には、エンコードされたRDFグラフは、これらの制約と整合性がある方法でフラグメント識別子を使用すべきです。例えば、HTML+RDFaドキュメント[HTML-RDFA]では、chapter1というフラグメントは、HTMLの@nameまたは@idの属性のセマンティクスによってドキュメントの章を識別できます。そのとき、<#chapter1>というIRIは、同じドキュメント内の、RDFaでエンコードされたトリプルにおいて、それと同じ章を表すと考えるべきです。同様に、内容交渉[WEBARCH]によって利用可能になる多重表現を有する資源では、フラグメント識別子を一貫して使用すべきです。例えば、chapter1というフラグメントが、一次資源のHTML表現でドキュメントの章を識別する場合、<#chapter1>というIRIは、同じ一次資源のすべてのRDFを含んだ(RDF-bearing)表現でも同じ章を表すと考えるべきです。

7. 一般化RDFトリプル、グラフおよびデータセット

この項は非規範的です。

RDFトリプルの要件を緩和することが便利な場合もあります。例えば、RDFS含意規則の完全性は、RDFトリプルの一般化で示すほうが簡単です。

一般化RDFトリプルは、主語、述語、目的語を持っており、それぞれがIRI空白ノードまたはリテラルでありえるトリプルです。一般化RDFグラフは、一般化RDFトリプルの集合です。一般化RDFデータセットには、識別された一般化RDFグラフと、IRI、空白ノードまたはリテラルを、それぞれ一般化RDFグラフに関連付けている0以上の対が含まれます。

一般化したRDFトリプル、グラフおよびデータセットは、IRI空白ノードおよびリテラルが、任意の位置に(つまり、主語、述語、目的語またはグラフ名として)出現可能であるという点においてのみ、規範的なRDFのトリプルグラフおよびデータセットと異なっています。

一般化したRDFトリプル、グラフまたはデータセットの利用者は、これらの概念がRDFの非規範的な拡張であり、また、その使用によって相互運用性の問題が生じるかもしれないことを知っている必要があります。RDFツール側には、標準的なRDFのトリプル、グラフおよびデータセット以外のものを受け入れ、処理し、作成するという要件はありません。

8. 謝辞

この項は非規範的です。

編集者はThomas Baker、Tim Berners-Lee、David Booth、Dan Brickley、Gavin Carothers、Jeremy Carroll、Pierre-Antoine Champin、Dan Connolly、John Cowan、Martin J. Durst、Alex Hall、Steve Harris、Sandro Hawke、Pat Hayes、Ivan Herman、Peter F. Patel-Schneider、Addison Phillips、Eric Prud'hommeaux、Nathan Rixham、Andy Seaborne、Leif Halvard Silli、Guus Schreiber、Dominik Tomaszuk、およびAntoine Zimmermannの有益な貢献に感謝いたします。

RDFワーキンググループのメンバーは、Thomas Baker、Scott Bauer、Dan Brickley、Gavin Carothers、Pierre-Antoine Champin、Olivier Corby、Richard Cyganiak、Souripriya Das、Ian Davis、Lee Feigenbaum、Fabien Gandon、Charles Greer、Alex Hall、Steve Harris、Sandro Hawke、Pat Hayes、Ivan Herman、Nicholas Humfrey、Kingsley Idehen、Gregg Kellogg、Markus Lanthaler、Arnaud Le Hors、Peter F. Patel-Schneider、Eric Prud'hommeaux、Yves Raimond、Nathan Rixham、Guus Schreiber、Andy Seaborne、Manu Sporny、Thomas Steiner、Ted Thibodeau、Mischa Tuffield、William Waites、Jan Wielemaker、David Wood、Zhe Wu、およびAntoine Zimmermannです。

A. RDF 1.0とRDF 1.1との変更点

この項は非規範的です。

RDFのバージョン1.0と1.1との相違点に関する詳細な概要は、RDF 1.1の新機能[RDF11-NEW]にあります。

B. 参考文献

B.1 規範的な参考文献

[BCP47]
A. Phillips; M. Davis. Tags for Identifying Languages. September 2009. IETF Best Current Practice. URL: http://tools.ietf.org/html/bcp47
[NFC]
M. Davis, Ken Whistler. TR15, Unicode Normalization Forms.. 17 September 2010, URL: http://www.unicode.org/reports/tr15/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Internet RFC 2119. URL: http://www.ietf.org/rfc/rfc2119.txt
[RFC3987]
M. Durst; M. Suignard. Internationalized Resource Identifiers (IRIs). January 2005. RFC. URL: http://www.ietf.org/rfc/rfc3987.txt
[UNICODE]
The Unicode Standard. URL: http://www.unicode.org/versions/latest/
[XMLSCHEMA11-2]
David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron et al. W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. 5 April 2012. W3C Recommendation. URL: http://www.w3.org/TR/xmlschema11-2/

B.2 参考情報の参考文献

[COOLURIS]
Leo Sauermann; Richard Cyganiak. Cool URIs for the Semantic Web. 3 December 2008. W3C Note. URL: http://www.w3.org/TR/cooluris
[DOM4]
Anne van Kesteren; Aryeh Gregor; Ms2ger; Alex Russell; Robin Berjon. W3C DOM4. 4 February 2014. W3C Last Call Working Draft. URL: http://www.w3.org/TR/dom/
[HTML-RDFA]
Manu Sporny. HTML+RDFa 1.1. 22 August 2013. W3C Recommendation. URL: http://www.w3.org/TR/html-rdfa/
[HTML5]
Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Edward O'Connor; Silvia Pfeiffer. HTML5. 4 February 2014. W3C Candidate Recommendation. URL: http://www.w3.org/TR/html5/
[JSON-LD]
Manu Sporny, Gregg Kellogg, Markus Lanthaler, Editors. JSON-LD 1.0. 16 January 2014. W3C Recommendation. URL: http://www.w3.org/TR/json-ld/
[LINKED-DATA]
Tim Berners-Lee. Linked Data. Personal View, imperfect but published. URL: http://www.w3.org/DesignIssues/LinkedData.html
[OWL2-OVERVIEW]
W3C OWL Working Group. OWL 2 Web Ontology Language Document Overview (Second Edition). 11 December 2012. W3C Recommendation. URL: http://www.w3.org/TR/owl2-overview/
[RDF11-DATASETS]
Antoine Zimmermann. RDF 1.1: On Semantics of RDF Datasets. W3C Working Group Note, 25 February 2014. The latest version is available at http://www.w3.org/TR/rdf11-datasets/.
[RDF11-MT]
Patrick J. Hayes, Peter F. Patel-Schneider. RDF 1.1 Semantics. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/. The latest edition is available at http://www.w3.org/TR/rdf11-mt/
[RDF11-NEW]
David Wood. What’s New in RDF 1.1. W3C Working Group Note, 25 February 2014. The latest version is available at http://www.w3.org/TR/rdf11-new/.
[RDF11-PRIMER]
Guus Schreiber, Yves Raimond. RDF 1.1 Primer. W3C Working Group Note, 25 February 2014. The latest version is available at http://www.w3.org/TR/rdf11-primer/.
[RDF11-SCHEMA]
Dan Brickley, R. V. Guha. RDF Schema 1.1. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-rdf-schema-20140225/. The latest published version is available at http://www.w3.org/TR/rdf-schema/.
[RDF11-TESTCASES]
Gregg Kellogg, Markus Lanthaler. RDF 1.1 Test Cases. W3C Working Group Note, 25 February 2014. The latest published version is available at http://www.w3.org/TR/rdf11-testcases/.
[RDF11-XML]
Fabien Gandon, Guus Schreiber. RDF 1.1 XML Syntax. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-rdf-syntax-grammar-20140225/. The latest published version is available at http://www.w3.org/TR/rdf-syntax-grammar/.
[RDFA-PRIMER]
Ivan Herman; Ben Adida; Manu Sporny; Mark Birbeck. RDFa 1.1 Primer - Second Edition. 22 August 2013. W3C Note. URL: http://www.w3.org/TR/rdfa-primer/
[RFC3986]
T. Berners-Lee; R. Fielding; L. Masinter. Uniform Resource Identifier (URI): Generic Syntax (RFC 3986). January 2005. RFC. URL: http://www.ietf.org/rfc/rfc3986.txt
[RFC5785]
Mark Nottingham; Eran Hammer-Lahav. Defining Well-Known Uniform Resource Identifiers (URIs) (RFC 5785). April 2010. RFC. URL: http://www.rfc-editor.org/rfc/rfc5785.txt
[SPARQL11-OVERVIEW]
The W3C SPARQL Working Group. SPARQL 1.1 Overview. 21 March 2013. W3C Recommendation. URL: http://www.w3.org/TR/sparql11-overview/
[SWBP-N-ARYRELATIONS]
Natasha Noy; Alan Rector. Defining N-ary Relations on the Semantic Web. 12 April 2006. W3C Note. URL: http://www.w3.org/TR/swbp-n-aryRelations
[SWBP-XSCH-DATATYPES]
Jeremy Carroll; Jeff Pan. XML Schema Datatypes in RDF and OWL. 14 March 2006. W3C Note. URL: http://www.w3.org/TR/swbp-xsch-datatypes
[TRIG]
Gavin Carothers, Andy Seaborne. TriG: RDF Dataset Language. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-trig-20140225/. The latest edition is available at http://www.w3.org/TR/trig/
[TURTLE]
Eric Prud'hommeaux, Gavin Carothers. RDF 1.1 Turtle: Terse RDF Triple Language. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-turtle-20140225/. The latest edition is available at http://www.w3.org/TR/turtle/
[VOCAB-ORG]
Dave Reynolds. The Organization Ontology. 16 January 2014. W3C Recommendation. URL: http://www.w3.org/TR/vocab-org/
[WEBARCH]
Ian Jacobs; Norman Walsh. Architecture of the World Wide Web, Volume One. 15 December 2004. W3C Recommendation. URL: http://www.w3.org/TR/webarch/
[XML-EXC-C14N]
John Boyer; Donald Eastlake; Joseph Reagle. Exclusive XML Canonicalization Version 1.0. 18 July 2002. W3C Recommendation. URL: http://www.w3.org/TR/xml-exc-c14n
[XML-NAMES]
Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. Namespaces in XML 1.0 (Third Edition). 8 December 2009. W3C Recommendation. URL: http://www.w3.org/TR/xml-names
[XML10]
Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; Francois Yergeau et al. Extensible Markup Language (XML) 1.0 (Fifth Edition). 26 November 2008. W3C Recommendation. URL: http://www.w3.org/TR/xml