【注意】 このドキュメントは、W3CのRDF 1.1 Concepts and Abstract Syntax W3C Recommendation 25 February 2014の和訳です。
このドキュメントの正式版はW3Cのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。
First Update: 2014年5月11日 | Last Update: 2018年4月16日(「設計上、IRIの範囲はグローバルです。したがって、見た目が異なる2つのIRIは」を「設計上、IRIはグローバルな範囲を持ちます。したがって、1つのIRIの2つの異なる外見は」に修正)
公開以後に報告されたエラーや問題がないか正誤表を確認してください。
この仕様の英語版が唯一の規範のバージョンです。非規範の翻訳版も入手可能かもしれません。
Copyright © 2004-2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
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項に従って情報を開示しなければなりません。
この項は非規範的です。
RDF(Resource Description Framework)は、ウェブで情報を表すための枠組みです。
このドキュメントは、次のものを含む、すべてのRDFに基づく言語と仕様をリンクするのに役立つ抽象構文(データ・モデル)を定義しています。
抽象構文の中心となる構造は1組のトリプルであり、各トリプルは、主語(subject)、述語(predicate)、目的語(object)で構成されます。この1組のトリプルをRDFグラフと呼びます。RDFグラフは、ノードと有向アークの図として視覚化でき、各トリプルは、ノード-アーク-ノードのリンクで表されます。
あらゆるIRIまたはリテラルは、世の中の事物を表します(「論議領域」)。これらの事物を資源と呼びます。物体、ドキュメント、抽象的な概念、数、文字列を含むあらゆるものが資源になりえ、この用語は、それをRDFセマンティクスの仕様[RDF11-MT]で用いるときには「実体」と同義です。IRIで示される資源を、指示対象(referent)と呼び、リテラルで示される資源を、リテラル値と呼びます。リテラルは、文字列、数、日付などの使用できる値の範囲を定義するデータ型を持っています。特種なリテラルである言語タグ付き文字列は、自然言語のプレーン・テキストを表します。
RDFトリプルの言明は、述語によって示される関係が、主語と目的語により示される資源の間で成立するということを述べます。RDFトリプルに対応したこのステートメントは、RDFステートメントとして知られています。述語自体はIRIであり、プロパティー、つまり、2項関係と見ることができる資源を表します。 (2つ以上のエンティティーが含まれる関係は、RDFで間接的に表現できるだけ[SWBP-N-ARYRELATIONS]。)
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]などの、他のドキュメントで提供されています。非常に短くて非公式かつ部分的な説明は、次のようになります。
http://www.w3.org/ns/org#
で始まる様々なIRIが意図する指示対象を規定しています。恐らく、ウェブ・アーキテクチャーにおけるIRIの最も重要な特性は、逆参照可能であることであり、したがって、リモート・サーバとの相互作用の出発点として利用できるということです。この仕様では、そのような相互作用については取り上げず、相互作用モデルも定義しません。資源を記述するグラフ・データ・モデルにおける、グローバルに一意な識別子としてIRIを扱うにすぎません。しかし、その相互作用は、リンクト・データ[LINKED-DATA]の概念にとって極めて重要であり、それには、RDFデータ・モデルとシリアル化フォーマットが用いられます。
RDF語彙は、RDFグラフでの使用を目的としたIRIの集合です。例えば、[RDF11-SCHEMA]で記述されているIRIは、RDFスキーマ語彙です。RDFスキーマ自体は、追加のRDF語彙を定義し記述するために使用できます。そのような語彙の一部については、入門ドキュメント[RDF11-PRIMER]で言及しています。
RDF語彙のIRIは、しばしば名前空間IRIという共通の部分文字列(substring)で始まります。規定により、一部の名前空間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語彙」を指すために非形式的に使用されることがあります。
RDFデータ・モデルは、時間と無関係であり、RDFグラフは、情報の静的なスナップショットです。
しかし、RDFグラフは、適切な語彙の用語があれば、出来事やその他のエンティティ―の時間的な側面に関する情報を表現できます。
RDFグラフは数学的な集合として定義されるため、RDFグラフからトリプルを追加または削除すれば、異なるRDFグラフが作成されます。
永続的ではあるが変更可能なRDFグラフの情報源やコンテナについて述べるために非形式的にRDF情報源という用語を用います。RDF情報源は、時間とともに変化しうる状態を持つと言える資源です。その状態のスナップショットを、RDFグラフとして表現できます。例えば、RDFを含んだ(RDF-bearing)表現を持つウェブ・ドキュメントはRDF情報源と考えられます。あらゆる資源と同じく、RDF情報源はIRIで指定され、したがって、他のRDFグラフにおいて記述できます。
直観的に言えば、次の方法で論議領域の変化を反映できます。
RDFグラフはトリプルの集合であるため、容易に組み合わせることができ、複数の情報源のデータが使用可能となります。しかし、コンテンツは別にしたまま、多数のRDFグラフを利用することが望ましいことがあります。RDFデータセットは、この要件をサポートします。
RDFデータセットは、RDFグラフの集合です。これらのグラフのうちの1つをのぞくすべてには、関連付けられたIRIか空白ノードがあります。これらは名前付きグラフと呼ばれ、IRIや空白ノードはグラフ名と呼ばれます。残りのグラフには、関連付けられたIRIはなく、RDFデータセットのデフォルト・グラフと呼ばれます。
RDFデータセットには、多くの利用方法がありえます。その1つは、複数のRDF情報源のスナップショットを保持することです。
RDFトリプルは、ステートメントをエンコードします―シンプルな論理式、または世の中に関する主張。RDFグラフは、そのトリプルの論理積(論理AND)です。RDFトリプルとグラフのこの意味に関する正確な詳細は、RDFセマンティックス仕様[RDF11-MT]で主に扱われるトピックであり、次のRDFグラフ間の関係が生じます。
含意レジーム[RDF11-MT]は、これらの関係を成立させる正確な条件を定義した仕様です。RDF自体は、含意、同等および矛盾のいくつかの基礎的なケースのみを認識します。RDFスキーマ[RDF11-SCHEMA]やOWL 2[OWL2-OVERVIEW]などのその他の仕様は、いくつかの領域固有の語彙などの、より強力な含意レジームを追加しています。
この仕様では、含意レジームが定義している論理関係を実装がどのように用いるかに関して制約を課しません。実装は、矛盾を検知してもしなくてもよく、含意された情報のすべてまたは一部をユーザに提供しても、まったく提供しなくてもかまいません。
RDFドキュメントは、Turtle[TURTLE]、RDFa[RDFA-PRIMER]、JSON-LD[JSON-LD]やTriG[TRIG]などの具象RDF構文のRDFグラフまたはRDFデータセットをエンコードしたドキュメントです。RDFドキュメントにより、システム間でRDFグラフとRDFデータセットとの交換が可能となります。
具象RDF構文は、例えば、名前空間接頭辞、相対IRI、空白ノード識別子を用いたり、ステートメントを異なる順序にすることで、同じRDFグラフやRDFデータセットをエンコードする様々な方法を提供できます。これらの側面は、RDFドキュメントの利便性に大きな影響がありえますが、その意味には重要ではありません。
非規範的と記している項と同じく、この仕様のすべての作成ガイドライン、図、例、注は、非規範的です。この仕様のその他の部分はすべて規範的です。
この仕様の「しなければならない(MUST)」、「してはならない(MUST NOT)」、「必須である/要求される(REQUIRED)」、「すべきである/する必要がある(SHOULD)」、「すべきでない/する必要がない(SHOULD NOT)」、「推奨される(RECOMMENDED)」、「することができる/してもよい(MAY)」、「選択できる/任意である(OPTIONAL)」というキーワードは、[RFC2119]で記述されているように解釈されるべきです。
この仕様(RDF 1.1概念および抽象構文)は、具象RDF構文、API仕様、クエリ言語などの、データ・モデルと、関連するその他の仕様で使用するための用語を定義します。実装は、RDF 1.1概念および抽象構文に直接準拠できませんが、ここで定義している用語を規範的に参照するようなその他の仕様に準拠できます。
RDFグラフは、1組のRDFトリプルです。
RDFトリプルは、次の3つの要素で構成されます。
RDFトリプルは規定上、主語、述語、目的語の順に記述されます。
RDFグラフのノードの集合は、グラフ内のトリプルの主語と目的語の集合です。述語のIRIは、同じグラフのノードとしても出現可能です。
IRI、リテラルおよび空白ノードは、RDF用語という総称で知られています。
IRI、リテラルおよび空白ノードは、別個のものであり、区別可能です。例えば、文字列リテラルとしてのhttp://example.org/
は、IRIとしてのhttp://example.org/
とも、空白ノード識別子http://example.org/
を持つ空白ノードとも同等ではありません。
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ですが、すべてのIRIがURIだとは限りません。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のみを作成することで回避できます。避けた方が良い非規範的な形式には、次のものが含まれています。
http://example.com:80/
)。http://example.com/
が望ましい。http://example.com
)。http://example.com/
が望ましい。/./
」または「/../
」%3f
」よりも「%3F
」が望ましい)リテラルは、文字列、数値、日付などの値に用いられます。
RDFグラフ内のリテラルは、次の2つないし3つの要素で構成されます。
http://www.w3.org/1999/02/22-rdf-syntax-ns#langString
である場合に限り、[BCP47]で定義されている空でない言語タグ。言語タグは、[BCP47]の2.2.9項にしたがった整形式でなければならない(MUST)。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
と同等であるという理由によります。
リテラルに関連付けられたリテラル値は次のとおりです。
リテラルの用語の同等性: 2つのリテラルは、2つの字句形式、2つのデータ型IRI、2つの言語タグ(もしあれば)が、文字単位で同等である場合に限り、同等の用語(同じRDFリテラル)です。したがって、2つのリテラルが同じRDF用語でなくても、同じ値を持つことがありえます。例えば、
"1"^^xs:integer "01"^^xs:integer
空白ノードは、IRIおよびリテラルと素です。そうでない場合は、可能な空白ノードの集合は任意です。RDFは空白ノードの内部構造を参照しません。
空白ノード識別子は、一部の具象RDF構文やRDFストアの実装で用いられるローカルな識別子です。これは、常にファイルまたはRDFストアをローカルに範囲としており、空白ノードに対する永続的またはポータブルな識別子ではありません。空白ノード識別子は、RDF抽象構文の一部ではなく、具象構文または実装に完全に依存します。したがって、もしも空白ノード識別子に対して構文的な制限があれば、その制限は、具象RDF構文や実装にも依存します。具象構文で空白ノード識別子を扱う実装では、構文でサポートされている状況をのぞき、複数存在する同じ空白ノード識別子から同じ空白ノードを作成しないように注意する必要があります。
空白ノードは、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
2つのグラフのノードの集合の間に、以下のような全単射Mがあれば、GとG'の2つのRDFグラフは同型(isomorphic)です(つまり、それらは同一の形式を持っています)。
IRIの同等性、リテラルの用語の同等性も参照してください。
この定義は、Mが、G'を得るためにどのようにGの各空白ノードを新しい空白ノードと置換できるかを示します。グラフ同型は、RDFテスト・ケース[RDF11-TESTCASES]仕様をサポートするために必要です。
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グラフの識別を暫くの間認めないかもしれないため、それらの使用により相互運用性の問題が生じる可能性があります。グラフ名として用いる空白ノードのスコーレム化は、これらの相互運用性の問題を克服するために使用できます。
D1のノード、トリプル、グラフと、D2のそれらとの間に、以下のような全単射Mがある場合に限り、2つのRDFデータセット(デフォルト・グラフDG1と任意の名前付きグラフNG1を持つRDFデータセットD1、およびデフォルト・グラフDG2と任意の名前付きグラフNG2を持つRDFデータセットD2)は同型のデータセット(dataset-isomorphic)です。
この項は非規範的です。
ウェブの資源には内容交渉[WEBARCH]によって利用可能となる多重表現があるかもしれません。RDFデータセットとRDFグラフの両方の表現をサポートするRDFシリアル化フォーマットで表現が返されるかもしれません。RDFデータセットが返され、利用者がRDFグラフを予期している場合、RDFデータセットのデフォルト・グラフを用いるとよいでしょう。
文字列、数値、日付などの値を表すために、RDFリテラルと共にデータ型を用います。RDFで用いるデータ型の抽象化は、XMLスキーマ[XMLSCHEMA11-2]と互換性があります。この抽象化に準拠したデータ型の定義は、XMLスキーマでは定義されていなくても、RDFで使用できます(MAY)。RDFは、XMLスキーマの組み込みデータ型の多くを再利用し、rdf:HTML
とrdf: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
”, true>,
<“false
”, false>,
<“1
”, true>,
<“0
”, false>,
}このデータ型を用いて定義できるリテラルは次のとおりです。
リテラル | 値 |
---|---|
<“true ”, xsd:boolean > |
true |
<“false ”, xsd:boolean > |
false |
<“1 ”, xsd:boolean > |
true |
<“0 ”, xsd:boolean > |
false |
http://www.w3.org/2001/XMLSchema#xxx
という形式のIRIは、xxx
がデータ型の名前である場合、XMLスキーマ1.1パート2: データ型[XMLSCHEMA11-2]で定義されている組み込みデータ型を表します。次の表に記述されているXMLスキーマ組み込み型は、RDF互換のXSD型です。これらの使用が推奨されます(RECOMMENDED)。
xsd:hexBinaryとxsd:base64Binaryのデータ型がバイナリ情報を転送するための数少ない安全なデータ型であることに注意するとよいでしょう。
データ型 | 値空間(参考情報) | |
---|---|---|
コア型 | 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)。
xsd:QName
とxsd:ENTITY
は、XMLドキュメントのコンテキストを含んでいる必要があります。xsd:ID
とxsd:IDREF
は、XMLドキュメント内の相互参照用です。xsd:NOTATION
は、直接的な利用を意図していません。xsd:IDREFS
、xsd:ENTITIES
およびxsd:NMTOKENS
は、RDFデータ型モデルに適合しない、シーケンス値のデータ型です。rdf:HTML
データ型この項は非規範的です。
RDFは、HTMLコンテンツを、使用可能なリテラル値として提供します。これにより、リテラル値でのマークアップが可能となります。このようなコンテンツは、RDFグラフでは、データ型をrdf:HTML
に設定したリテラルを用いて示します。このデータ型は、W3C勧告ステータスにまだ達していない[DOM4]の仕様に依存するため、非規範的と定義されています。
rdf:HTML
データ型は、次のように定義されています。
http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML
です。DocumentFragment
ノード[DOM4]の集合です。DOMメソッドA.isEqualNode(B)
[DOM4]がtrue
(真)を返す場合に限り、2つのDocumentFragment
ノードAとBは等しいと考えられます。字句空間の個々のメンバーは、次のアルゴリズムを適用した結果に関連付けられます。
domnodes
を、DOMノード [DOM4]のリストとします。domfrag
を、childNodes
属性がdomnodes
と等しいDOM DocumentFragment
[DOM4]とします。domfrag.normalize()
を返します。HTMLコンテンツで求められる言語アノテーション(lang="…"
)やXML名前空間(xmlns
)が、HTMLリテラルに明示的に含まれていなければなりません。href
などの属性内の相対URLには、明確に定義された(well-defined)基底URLがなく、最も避けるべきです。RDFアプリケーションは、同じ文字列の一つのテキストのノードに対応したrdf:HTML
リテラルにxsd:string
を関連付けるような、同等性関係を追加使用できます。
rdf:XMLLiteral
データ型この項は非規範的です。
RDFは、XMLコンテンツを、使用可能なリテラル値として提供します。このようなコンテンツは、RDFグラフでは、データ型をrdf:XMLLiteral
に設定したリテラルを用いて示します。このデータ型は、W3C勧告ステータスにまだ達していない[DOM4]の仕様に依存するため、非規範的と定義されています。
rdf:XMLLiteral
データ型は、次のように定義されています。
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
です。DocumentFragment
ノード[DOM4]の集合です。DOMメソッドA.isEqualNode(B)
がtrue
(真)を返す場合に限り、2つのDocumentFragment
ノードAとBは等しいと考えられます。字句空間の個々のメンバーは、次のアルゴリズムを適用した結果に関連付けられます。
domfrag
を、入力文字列に対応するDOM DocumentFragment
ノード[DOM4]とします。domfrag.normalize()
を返します。rdf:XMLLiteral
正規マッピングは、排他的なXML正規化メソッド(コメント、空のInclusiveNamespaces PrefixList付き)[XML-EXC-C14N]です。XMLコンテンツで求められるXML名前空間宣言(xmlns
)、言語アノテーション(xml:lang
)や基底URI宣言(xml:base
)が、XMLリテラルに明示的に含まれていなければなりません。一部の具象RDF構文では、それらをコンテキストから継承するためのメカニズムを定義できることに注意してください(例えば、RDF/XML[RDF11-XML]の@parseType="literal"
)。
データ型は、IRIで識別されます。Dがデータ型を参照するために用いられるIRIの集合である場合、Dの要素は認識されたデータ型IRIと呼ばれます。認識されたIRIは、固定の指示対象を持っています。http://www.w3.org/2001/XMLSchema#xxx
という形式のIRIが認識されたものである場合、5.1項に記述されているすべてのXSD型ごとに、xsd:xxx
という名前のRDF互換のXSD型を参照しなければなりません(MUST)。さらに、次のIRIが非規範的なデータ型に割り付けられます。
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
というIRIは、データ型rdf:XMLLiteral
を参照します。http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML
というIRIは、データ型rdf:HTML
を参照します。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の実装は、これらのどちらの機能もサポートする必要はありません。
この項は非規範的です。
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)表現でも同じ章を表すと考えるべきです。
この項は非規範的です。
RDFトリプルの要件を緩和することが便利な場合もあります。例えば、RDFS含意規則の完全性は、RDFトリプルの一般化で示すほうが簡単です。
一般化RDFトリプルは、主語、述語、目的語を持っており、それぞれがIRI、空白ノードまたはリテラルでありえるトリプルです。一般化RDFグラフは、一般化RDFトリプルの集合です。一般化RDFデータセットには、識別された一般化RDFグラフと、IRI、空白ノードまたはリテラルを、それぞれ一般化RDFグラフに関連付けている0以上の対が含まれます。
一般化したRDFトリプル、グラフおよびデータセットは、IRI、空白ノードおよびリテラルが、任意の位置に(つまり、主語、述語、目的語またはグラフ名として)出現可能であるという点においてのみ、規範的なRDFのトリプル、グラフおよびデータセットと異なっています。
一般化したRDFトリプル、グラフまたはデータセットの利用者は、これらの概念がRDFの非規範的な拡張であり、また、その使用によって相互運用性の問題が生じるかもしれないことを知っている必要があります。RDFツール側には、標準的なRDFのトリプル、グラフおよびデータセット以外のものを受け入れ、処理し、作成するという要件はありません。
この項は非規範的です。
編集者は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です。
この項は非規範的です。
RDFのバージョン1.0と1.1との相違点に関する詳細な概要は、RDF 1.1の新機能[RDF11-NEW]にあります。