Copyright © 2004-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
Resource Description Framework (RDF)は、 Web上の情報を表現するための汎用言語です。
この文書は、XML名前空間、 XML情報セット [XML-INFOSET] およびXML Base [XMLBASE] の観点から、 RDF/XMLと呼ばれる RDFのXML構文を定義します。
RDF 1.2 XML構文は、 他の トリプルの オブジェクト として使用できる第4の RDF用語 として、トリプル用語を導入し、 他の文に関する文を作成できるようにします。 トリプル用語は、 一般にはアノテーション構築の使用が推奨されるため、通常は明示的には使用されません。 RDF 1.2 XML構文は、 方向付き言語タグ付き文字列のサポートも追加します。
この節は、この文書の公開時点における 文書のステータスを説明するものです。現在のW3C 公開物の一覧と、この技術報告書の最新版は、 W3C標準および草案 索引で確認できます。
この文書は、RDF 1.2文書群の一部です。 この 文書は、RDF [RDF12-CONCEPTS] の具象構文である RDF/XML構文を定義します。
[rdf-syntax-grammar] 以降、 この文書に実質的な変更はありません。 軽微な編集上の変更がある場合は、 B. RDF 1.1とRDF 1.2の間の変更に詳述されています。
この文書は、RDF & SPARQLワーキンググループにより、 勧告 トラックを用いた作業草案として公開されました。
作業草案としての公開は、 W3Cおよびそのメンバーによる承認を意味するものではありません。
これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性があります。 この文書を進行中の作業以外のものとして引用することは不適切です。 この今後の勧告の将来の更新では、 新機能が組み込まれる可能性があります。
この文書は、 W3C 特許 ポリシーの下で運営されるグループによって作成されました。 W3Cは、 このグループの成果物に関連して行われた 特許開示の公開リストを 保持しています。そのページには、特許開示の手順も含まれています。 その個人が 必須クレームを含むと考える特許について 実際の知識を有する個人は、 W3C特許ポリシー第6節に従って その情報を開示しなければなりません。
この文書は、 2025年8月18日のW3Cプロセス文書によって管理されます。
この節は非規範的です。
この文書は、RDFグラフのXML [XML11] 構文を定義します。
この文書は、XMLのかなり低レベルな詳細、たとえば空要素の特定の 形式などから離れ、XML情報セット [XML-INFOSET] の情報項目の観点から、 元のRDF/XML文法 [RDF-SYNTAX-GRAMMAR-19990222] を改訂します。これにより、文法をより正確に記録し、XML構文から RDFグラフへの対応付けをより明確に示すことができます。 RDFグラフへの対応付けは、 N-Triples [RDF12-N-TRIPLES] 形式で文を 出力することによって行われます。
RDF/XML構文について、歴史的観点を含むより長い導入は、 「RDF: 縞状のRDF/XML構文を理解する」 [STRIPEDRDF] を参照してください。
この節は非規範的です。
この節では、RDF/XML構文を紹介し、それが RDFグラフ をどのように符号化するかを説明し、例を用いて示します。この非公式な説明と、 5. 構文データモデル および 6. RDF/XML文法 の各節における構文および文法の形式的な説明との間に矛盾がある場合、 後者の2つの節が優先されます。
RDFの概念と抽象構文の文書 [RDF12-CONCEPTS] は、RDFデータモデルおよび RDF抽象構文を定義します。 RDFセマンティクス [RDF12-SEMANTICS] と合わせて、これはそのための形式的意味論を伴う抽象構文を提供します。 RDFデータモデルは、 ノード と、ノードの組を結ぶラベル付き有向アークを持ち、これは RDFトリプル の集合として表されます。各トリプルは、 主語ノード、述語、および目的語ノードを含みます。 ノードは、IRI、 リテラル、または 空白ノードです。 空白ノードには、 空白ノード識別子 と呼ばれる文書ローカルな識別子を与えることができます。 述語はIRIであり、 2つのノード間の関係として、またはある主語ノードに対する 属性値(目的語ノード)を定義するものとして解釈できます。
グラフをXMLで符号化するには、ノードと述語をXMLの用語、つまり要素名、 属性名、要素内容、属性値として表現する必要があります。 RDF/XMLは、 QName をXML名前空間 [XML-NAMES] で定義されるとおりに使用し、 IRI を表します。 すべてのQNameは、IRI である名前空間名と、 短い ローカル名 を持ちます。 さらに、QNameは短い 接頭辞 を持つことも、既定の名前空間宣言によって宣言され、接頭辞を持たないこともできます (ただし、やはり名前空間名を持ちます)。
IRI がQNameによって表される場合、それはQNameの ローカル名 部分を、QNameの 名前空間名(IRI) 部分の後ろに追加することで決定されます。 これは、すべての述語および一部のノードの IRI を短縮するために使用されます。 主語ノードおよび目的語ノードを識別する IRI は、XML属性値として格納することもできます。 目的語ノードにしかなれない RDFリテラル は、XML要素のテキスト内容またはXML属性値になります。
グラフは、ノード、述語アーク、ノード、述語アーク、ノード、 述語アーク、...、ノードという形式の経路の集合であり、 グラフ全体を覆うものと見なすことができます。 RDF/XMLでは、これらは要素内の要素の列となり、 ノードのための要素と述語アークのための要素が交互に現れます。 これは一連のノード/アークの縞と呼ばれてきました。 列の開始位置にあるノードは最外側の要素になり、次の述語アークは子要素になり、 以後も同様です。この縞は一般にRDF/XML 文書の先頭から始まり、常にノードから始まります。
以降の節では、完全なRDF/XML文書へと 構築していく複数のRDF/XML例を示します。 例 7 が最初の完全なRDF/XML文書です。
図 1には RDF グラフが示されており、ノードは、それらが持つ場合には IRI を含む楕円として表され、すべての述語アークには IRI のラベルが付けられ、文字列リテラルノードは長方形で書かれています。
図 2に示されるグラフを通る、1つのノード、述語アーク、...、ノードの経路をたどると:
<https://www.w3.org/TR/rdf12-xml/>から
<https://greggkellogg.net/>への経路を強調しています。
経路上の要素は太字テキストで示されています。
図 2 のグラフの左側は、次のノード/述語アークの縞に対応します:
https://www.w3.org/TR/rdf12-xml/を持つノード
http://example.org/terms/editorでラベル付けされた述語アーク
http://example.org/terms/homePageでラベル付けされた述語アーク
https://greggkellogg.net/を持つノード
RDF/XMLでは、
図
2の左側にある5つのノードと述語アークの列は、
グラフノードと述語アークのための2種類のXML要素、合計5つのXML要素の使用に対応します。
これらは慣例的に、それぞれノード要素および
プロパティ要素と呼ばれます。
例 1に示される縞では、
rdf:Descriptionが
ノード要素(3つのノードに対して3回使用)であり、
ex:editorおよびex:homePageが2つの
プロパティ要素です。
<span class="hl-bold"><rdf:Description></span>
<ex:editor>
<span class="hl-bold"><rdf:Description></span>
<ex:homePage>
<rdf:Description>
</rdf:Description>
</ex:homePage>
<span class="hl-bold"></rdf:Description></span>
</ex:editor>
<span class="hl-bold"></rdf:Description></span>
図
2のグラフは、
IRIであるノード
(およびそうでないノード。これは空白ノード要素と呼ばれます)を含み、
これはノード要素上のrdf:about属性を用いて
RDF/XMLに追加でき、その結果は
例 2のようになります:
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<ex:editor>
<rdf:Description>
<ex:homePage>
<rdf:Description rdf:about="https://greggkellogg.net/">
</rdf:Description>
</ex:homePage>
</rdf:Description>
</ex:editor>
</rdf:Description>
図 1
のグラフを通る他の2つの経路を、
例 2
のRDF/XMLに追加すると、
例 3に示す結果になります
(この例では、空白ノードが2つの経路の間で共有されていることは示されていません。
2.11
空白ノードの識別: rdf:nodeIDを参照してください):
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<ex:editor>
<rdf:Description>
<ex:homePage>
<rdf:Description rdf:about="https://greggkellogg.net/">
</rdf:Description>
</ex:homePage>
</rdf:Description>
</ex:editor>
</rdf:Description>
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<ex:editor>
<rdf:Description>
<ex:fullName>Gregg Kellogg</ex:fullName>
</rdf:Description>
</ex:editor>
</rdf:Description>
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<dc:title>RDF 1.2 XML Syntax</dc:title>
</rdf:Description>
一般的な用途をより書きやすくするために使用できる省略形がいくつかあります。 特に、RDF グラフ内の主語ノードが複数の外向き述語アークを持つことはよくあります。 RDF/XML は、あるリソースについてのノード要素が複数の プロパティ要素を持つ場合に対応する構文の 省略形を提供します。これは、主語ノードを記述するノード要素の内部で 複数の子プロパティ要素を使用することによって 省略できます。
例 3を取り上げると、
複数のプロパティ要素を取ることができる
ノード要素が2つあります。
IRI
https://www.w3.org/TR/rdf12-xml/
を持つ主語ノードは、プロパティ要素
ex:editorおよびdc:title
を持ち、空白ノードのための
ノード要素は、
ex:homePageおよびex:fullNameを取ることができます。
この省略形により、例 4に示す結果になります
(この例では単一の空白ノードが存在することが示されています):
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<ex:editor>
<rdf:Description>
<ex:homePage>
<rdf:Description rdf:about="https://greggkellogg.net/">
</rdf:Description>
</ex:homePage>
<ex:fullName>Gregg Kellogg</ex:fullName>
</rdf:Description>
</ex:editor>
<dc:title>RDF 1.2 XML Syntax</dc:title>
</rdf:Description>
RDF
グラフ内の述語アークが、追加の述語アークを持たない目的語ノードを指す場合、
これはRDF/XMLでは空の
ノード要素
<rdf:Description rdf:about="...">
</rdf:Description>
(または<rdf:Description rdf:about="..." />)
として現れ、この形式は短縮できます。これは、目的語ノードの
IRIを、
それを含むプロパティ要素上のXML属性rdf:resourceの
値として使用し、プロパティ要素を空にすることで行われます。
この例では、プロパティ要素ex:homePageが、
IRI
https://greggkellogg.net/を持つ空の
ノード要素を含んでいます。
これは空のプロパティ要素形式で置き換えることができ、
例 5に示す結果になります:
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/">
<ex:editor>
<rdf:Description>
<ex:homePage rdf:resource="https://greggkellogg.net/"/>
<ex:fullName>Gregg Kellogg</ex:fullName>
</rdf:Description>
</ex:editor>
<dc:title>RDF 1.2 XML Syntax</dc:title>
</rdf:Description>
プロパティ要素の内容が
文字列リテラルである場合、それを含む
ノード要素上のXML属性として使用できることがあります。
これは、同じノード要素上の複数のプロパティに対しては、
プロパティ要素名が繰り返されない場合にのみ可能です
(XMLでは属性名はXML要素上で一意である必要があります)。
また、プロパティ要素の文字列リテラルに
適用範囲内のxml:langがある場合、それらが同一である必要があります
(2.7
言語: xml:langを参照)
この省略形はプロパティ属性として知られ、
任意のノード要素に適用できます。
この省略形は、プロパティ要素が
rdf:typeであり、かつその要素にrdf:resource属性がある場合にも使用できます。
その値は
IRIの
目的語ノードとして解釈されます。
例 5では、
文字列リテラル内容を持つプロパティ要素が2つあり、
それはdc:titleおよびex:fullName
プロパティ要素です。
これらはプロパティ属性に置き換えることができ、
例 6に示す結果になります:
<rdf:Description rdf:about="https://www.w3.org/TR/rdf12-xml/"
dc:title="RDF 1.2 XML Syntax">
<ex:editor>
<rdf:Description ex:fullName="Gregg Kellogg">
<ex:homePage rdf:resource="https://greggkellogg.net/"/>
</rdf:Description>
</ex:editor>
</rdf:Description>
完全なRDF/XML文書を作成するには、
グラフのXMLへのシリアライズは通常、
rdf:RDF
XML要素の内部に含められ、この要素が
最上位XML文書
要素になります。
慣例的に、rdf:RDF要素は、
使用されるXML名前空間を宣言するためにも用いられますが、これは必須ではありません。
rdf:RDFの内部に
最上位のノード要素が1つだけある場合、
rdf:RDFは省略できますが、
XML名前空間は依然として宣言されていなければなりません。
XML仕様では、文書の先頭にXMLバージョンと、場合によってはXML内容の エンコーディングを指定するXML宣言を置くことも認められています。 これは任意ですが推奨されます。
RDF/XMLの完成は、 例 4以降の正しい完全な グラフ例のいずれに対しても行えますが、最小の 例 6を取り上げて最終的な構成要素を追加すると、 元の 図 1のグラフの完全な RDF/XML表現が 例 7のように得られます:
上の例 7では、
rdf:RDFの内部に
rdf:Descriptionが1つだけであるため、
rdf:RDFを省略することが可能ですが、
ここでは示していません。
RDF/XMLでは、内容の言語を識別できるように、
XML 1.1 [XML11] の
2.12 言語識別
で定義されるxml:lang属性の使用が認められています。
xml:lang属性は、任意の
ノード要素または
プロパティ要素
で使用でき、含まれる内容が指定された言語であることを示します。
型付きリテラルは、
XMLリテラルを含め、
この属性の影響を受けません。
(存在する場合)最も具体的な適用範囲内の言語が、
プロパティ要素の文字列リテラル内容または
プロパティ属性値に適用されます。
xml:lang=""形式は、言語識別子が存在しないことを示します。
RDFプロパティの内容言語をマークする例を、 例 8に示します:
RDF 1.2は、
言語タグ付き文字列の
初期テキスト方向を指定して
方向付き言語タグ付き
文字列を作成するために使用できる
基底方向の概念を導入します。
これは、任意の
ノード要素またはプロパティ要素に
its:dir属性を追加することで指定されます。
ここでitsは、ITS名前空間
http://www.w3.org/2005/11/itsに通常使用される接頭辞です。
its:dirでサポートされる値は、
方向付き言語タグ付き
文字列に必要な"ltr"および"rtl"です。
RDFプロパティの基底方向をマークする例を、 例 9に示します:
its:dir属性は、
最上位XML文書要素上の
its:version="2.0"で示されるように、
[ITS20] の
バージョン2.0に特に結び付けられています。
RDFでは、XMLリテラル [RDF12-CONCEPTS]
を述語の目的語ノードとして与えることができます。
これらはRDF/XMLでは
プロパティ要素の内容として書かれ
(プロパティ属性ではありません)、
それを含む
プロパティ要素上の
rdf:parseType="Literal"属性を用いて示されます。
XMLリテラルを書く例を
例 10に示します。この例では、
主語ノード
IRI
http://example.org/item01、述語
IRI
http://example.org/stuff/1.0/prop(
ex:propから)およびXMLリテラル内容
a:Boxで始まる目的語ノードを持つ、単一の
RDFトリプルがあります。
RDFでは、型付きリテラルを
述語の目的語ノードとして与えることができます。型付きリテラルは、
リテラル文字列と
データ型IRIから構成されます。
これらはRDF/XMLでは、
プロパティ要素形式の
リテラル文字列ノードと同じ構文を用いて書かれます
(プロパティ属性ではありません)が、
プロパティ要素上に追加の
rdf:datatype="datatypeURI"
属性を付けます。
この属性には任意のIRIを
使用できます。
RDFの型付き
リテラルの例を例 11に示します。
この例では、主語ノード
IRI
http://example.org/item01、述語
IRI
http://example.org/stuff/1.0/size(
ex:sizeから)および
XML Schema [XMLSCHEMA11-2]
データ型
int
として解釈される型付きリテラル
("123", http://www.w3.org/2001/XMLSchema#int)を持つ
目的語ノードからなる単一のRDFトリプルがあります。
RDFにおける
空白ノードは相互に異なりますが、
IRI
を持ちません。
同じ空白ノードが、
複数のRDFトリプルの主語や目的語など、
RDF/XML内の複数の場所で参照される必要がある場合があります。
この場合、文書内でそれを識別するために、
空白ノード識別子を
空白ノードに与えることができます。
RDF/XMLにおける
空白ノード識別子は、
それを含むXML情報セット [XML-INFOSET]
の文書情報項目の範囲内で有効です。
空白ノード識別子は、
ノード要素上では
rdf:about="IRI"
を置き換えるために使用され、また
プロパティ要素上では
rdf:resource="IRI"
をrdf:nodeID="blank node identifier"
で置き換えるために使用されます。
例 7を取り上げ、
その中の空白ノードに明示的に
空白ノード識別子abcを
与えると、例 12に示す結果になります。
2番目のrdf:Description
プロパティ要素は、
その空白ノードについてのものです。
RDF
グラフ内の
空白ノード(IRIノードではないもの)
は、
<rdf:Description>
</rdf:Description>の組を省略できる形式で書くことができます。
この省略は、それを含む
プロパティ要素に
rdf:parseType="Resource"
属性を置くことで行われます。これにより、その
プロパティ要素はプロパティ兼ノード要素となり、
それ自体が
プロパティ要素と
プロパティ
属性の両方を持つことができます。
プロパティ属性およびrdf:nodeID属性は、
プロパティ兼ノード要素上では許可されません。
先ほどの例 7を取り上げると、
ex:editor
プロパティ要素の内容は、
代わりにこの方法で書くことができ、
例 13に示す形式になります:
空白ノード
要素上のすべての
プロパティ要素が、
同じ適用範囲内のxml:lang値(存在する場合)を持つ文字列リテラル値であり、
これらのプロパティ要素が
それぞれ多くても1回しか現れず、かつ
IRI目的語ノードを持つrdf:typeプロパティ
要素が多くても1つである場合、それらは、空要素にされた含有プロパティ
要素上のプロパティ属性へ移動することで省略できます。
先ほどの例 5を取り上げると、
ex:editor
プロパティ要素は、
2つのプロパティ要素を持つ
空白ノード要素を含みます。
それらはex:fullnameおよびex:homePageです。
ex:homePageは文字列リテラル値を持たないため、ここでは適しておらず、
この例の目的上は
無視されています。
省略形では、ex:fullName
プロパティ要素を
削除し、削除された
プロパティ要素の文字列リテラル値を持つ
新しいプロパティ属性ex:fullNameを
ex:editor
プロパティ要素に追加します。
空白ノード要素は、いまや空になった
ex:editor
プロパティ要素内で暗黙のものになります。結果は
例 14に示されています。
RDF
グラフでは、主語ノードからのrdf:type述語を持つことが一般的です。
これらは慣例的に、グラフ内では型付きノード、
RDF/XML内では型付きノード要素と呼ばれます。
RDF/XMLでは、
rdf:Descriptionノード要素名を、型関係の値の
IRIに
対応する名前空間付き要素で置き換えることにより、そのようなトリプルをより簡潔に表現できます。
もちろん、複数のrdf:type述語が存在する場合がありますが、
この方法で使用できるのは1つだけであり、他のものは
プロパティ要素または
プロパティ
属性として残さなければなりません。
型付きノード要素は、RDF/XMLにおいて、
RDF
語彙の組み込みクラスでよく使用されます:
rdf:Seq、rdf:Bag、rdf:Alt、
rdf:Statement、rdf:Propertyおよび
rdf:Listです。
RDF/XMLでは、XML属性内の
IRIを
さらに2つの方法で短縮できます。XML Infosetは、相対IRI参照を解決するための
基底IRIを設定する基底URI属性xml:baseを提供します。
そうでない場合、基底IRIは文書のIRIになります。基底IRIは、
IRIを
扱うすべてのRDF/XML属性、
すなわちrdf:about、
rdf:resource、rdf:ID
およびrdf:datatypeに適用されます。
ノード要素上の
rdf:ID属性は、
rdf:aboutの代わりに使用でき
(プロパティ要素上ではありません。
そこでは別の意味を持ちます)、
#にrdf:ID属性値を連結したものに相当する
相対IRI参照を与えます。
たとえばrdf:ID="name"の場合、それは
rdf:about="#name"に相当します。rdf:IDは、
同じnameが同じxml:base値(または指定されていない場合は文書)の
範囲内に1回だけしか現れないため、追加の検査を提供し、
同じIRIを基準とする
関連する用語の集合を定義するのに有用です。
どちらの形式でも、適用範囲内の
xml:baseから、またはRDF/XML
文書のURLから基底IRIを決定する必要があります。
例 17は、
http://example.org/here/#snackというノード
IRIを、
http://example.org/here/の
xml:baseと、
rdf:Descriptionノード要素上のrdf:IDを用いて短縮する例を示します。
ex:prop述語の目的語ノードは、
rdf:resource XML属性値から、
適用範囲内の基底IRIを用いて解決され、
IRI
http://example.org/here/fruit/apple
になります。
RDFには、コンテナー所属プロパティと対応する
プロパティ要素の集合があり、これらは主に、
型付きノード要素として書くことができる
rdf:Seq、rdf:Bag、およびrdf:Alt
クラスのインスタンスとともに使用されます。リストプロパティは
rdf:_1、rdf:_2などであり、
プロパティ要素または
プロパティ
属性として、例 18に示すように
書くことができます。特別な
rdf:li
プロパティ要素があり、これは順に
rdf:_1、rdf:_2に相当します。
詳細は6.4
リスト展開規則で説明します。
コンテナー所属プロパティへの対応付けは、常にrdf:liという特別な
プロパティ要素がXML内で現れる順序で行われます。
文書順は重要です。
例 18に相当するRDF/XMLを
この形式で書いたものを、例 19に示します。
RDF/XMLでは、
プロパティ要素上に
rdf:parseType="Collection"
属性を置くことができ、それにより複数のノード要素を含められます。
これらの含まれる
ノード要素は、コレクションの主語ノードの集合を与えます。
この構文形式は、主語ノードのコレクションを接続するトリプルの集合に対応し、
生成される正確なトリプルは
6.2.20
生成規則 parseTypeCollectionPropertyElt
で詳しく説明されます。
コレクションの構築は、常にXML文書内にノード要素が現れる順序で行われます。
ノードのコレクションの順序が重要であるかどうかはアプリケーション上の問題であり、
ここでは定義されません。
例 20は、
ex:hasFruit
プロパティ要素の末尾に、
この形式を用いて3つのノード要素のコレクションを示しています。
rdf:ID属性は、プロパティ要素上で使用して、
それが生成するトリプルを具体化できます(完全な詳細については
6.3 具体化
規則を参照)。
トリプルの識別子は、
#にrdf:ID属性値を連結した
相対IRI参照を、
適用範囲内の基底IRIに対して解決して得られる
IRI
として構築されるべきです。したがって、たとえば
rdf:ID="triple"であれば、それは基底IRIに対して
相対IRI参照#tripleから形成される
IRI
に相当します。
各(rdf:ID属性値, 基底IRI)の組は、
RDF/XML文書内で一意でなければなりません。
constraint-idを参照してください。
例 21は、
ex:prop
プロパティ要素から作られるトリプルを具体化するために
rdf:IDを使用し、具体化されたトリプルに
IRI
http://example.org/triples/#triple1を与える例を示しています。
トリプル用語は、
RDFトリプルの
目的語になり得ます。
RDF
グラフ内の
トリプル用語は、
単一の
RDFトリプル
を符号化する
リソースとして、
トリプル用語を書ける形式で記述できます。
これは、プロパティ要素上に
rdf:parseType="Triple"属性を追加して、単一の
トリプル用語を記述することで行われます。
これはそれ自体、グラフ内のトリプルとして現れない場合があります。
6.2.19 生成規則
parseTypeTriplePropertyEltを参照してください。
トリプル用語
は、文の具体化と似た役割を果たします。
違いは、トリプル用語が
RDF 1.2抽象構文
[RDF12-CONCEPTS] の中核部分である一方、
文の具体化は、主張されたグラフ内の別のトリプルを記述するために
トリプルを出力する点です。
トリプル用語は、必ずしも主張されていないトリプルを記述します。
トリプルを主張しつつ同時に記述する方法については、
2.20 トリプルへの
アノテーション付け: rdf:annotationまたはrdf:annotationNodeIDを参照してください。
RDF 1.2 XML構文には、 明示的な識別子を介してトリプルを主張し、かつその トリプル用語に関連付けられた 具体化子が、 さらに別のトリプルの 主語または 目的語となるようにすることで、 トリプルに アノテーション付けするための構文も含まれます。 明示的に識別される場合、同じ 具体化子を、追加の トリプルおよび/またはトリプル用語の 主語または 目的語として使用できます。
具体化子は、
rdf:annotation(IRI
具体化子の場合)
またはrdf:annotationNodeID(空白ノード
具体化子の場合)のいずれかを使用して、
プロパティ
属性として追加できます。
この具体化子は、
プロパティ要素に
関連付けられた主語、述語、目的語から構成されるトリプル用語と、それらのトリプルを関連付ける方法として、
他のトリプルの主語としても使用できます。
非規範的と明示された節に加えて、この仕様におけるすべての作成ガイドライン、図、例、注は非規範的です。この仕様のそれ以外のすべては規範的です。
この文書におけるキーワード MAY、MUST、REQUIRED、SHOULD、およびSHOULD NOT は、ここに示すようにすべて大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されるとおりに解釈されます。
追加の限定なしにstringを用いる場合はすべて、 Unicode [UNICODE] 文字列、 すなわちUnicodeのコードポイントで表される文字の列を指します。
RDF/XMLのインターネットメディアタイプ(以前はMIMEタイプとして知られていました)は
application/rdf+xml — [RFC3870] です。
RDF/XMLファイルは、すべてのプラットフォームで 拡張子「.rdf」 (すべて小文字)を持つことが推奨されます。
RDF 1.2で導入された機能には、
適用範囲内のノード要素上で、
"1.1"以外の定義済み値を持つrdf:version属性による
バージョン宣言が必要です。
rdf:versionの許容値は、
[RDF12-CONCEPTS] の
2.1 バージョンラベルで定義されます。
バージョン値に対するパーサーの挙動はそれ以外では未定義であり、エラーまたは警告を
通知するために使用してもMAYです。
application/rdf+xmlメディアタイプは、[RFC3870]
としてIANAに登録されています。
この節は非規範的です。
RDF/XML形式は任意の アプリケーションデータを表現するために使用され、 その中には個人を識別できる情報(PII)や、 機微であると考えられるその他の情報の表現が含まれる可能性があります。 そのような情報を公開する著者は、そのような情報を公開する必要性と用途、 ならびにデータが消費され、潜在的に開示されることが予想される地域に適用される規制 (例: GDPR、 CCPA、 その他) を慎重に考慮することが推奨されます。特に、データへのアクセスに認可手段が必要かどうかを検討してください。
この節は非規範的です。
[RFC3870] の セキュリティに関する考慮事項の節を参照してください。
RDF名前空間IRI(または名前空間名)は
http://www.w3.org/1999/02/22-rdf-syntax-ns#
であり、XMLでは通常、接頭辞rdfとともに使用されますが、
他の接頭辞文字列を使用してもかまいません。
RDF
語彙
はこの名前空間名によって識別され、
次の名前のみで構成されます:
RDF Description ID about annotation annotationNodeID datatype li nodeID parseType resource version
Seq Bag Alt Statement Property XMLLiteral List
subject predicate object type value first rest _n
ここでnは、先頭にゼロを持たない0より大きい10進整数です。
nil
その他の名前は定義されておらず、出現した場合は警告を生成するSHOULDですが、 それ以外は通常どおり動作するべきです。
RDF/XML文書内では、 名前空間名が RDF 名前空間IRI に追加文字を連結したものであるXML名前空間を使用することは許可されません。
この文書全体を通じて、rdf:nameという用語は、
nameがRDF
語彙
に由来し、
RDF
名前空間IRIとnameを連結した
IRIを持つことを示すために使用されます。
たとえば、rdf:typeは
IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#typeを持ちます。
RDF Concepts文書 [RDF12-CONCEPTS] は、ノードおよび/または述語として機能できる4種類の RDFデータを定義します:
IRI はノード(主語と目的語の両方)および述語として機能できます。
IRI は次のいずれかとして与えられます:
rdf:ID属性値から変換されるもの。
RDF/XML内では、XML QNameは
XMLローカル名を名前空間名(IRI)に追加することで
IRI
に変換されます。
たとえば、XML名前空間接頭辞fooが
名前空間名(IRI)
http://example.org/somewhere/を持つ場合、
QName
foo:barは
IRI
http://example.org/somewhere/barに対応します。
これは生成できる
IRI
を制限し、同じIRIを複数の方法で与えられることに注意してください。
rdf:ID値は、
適用範囲内の基底IRIに「#」を追加した結果に属性値を追加することによって、
IRI
に変換されます。適用範囲内の基底IRIは
4.3 IRIの解決
で定義されます。
リテラルは目的語ノードとしてのみ機能できます。
リテラルは常にデータ型を持ちます。
言語タグ付き文字列は
データ型rdf:langStringを取得します。
言語タグまたはデータ型が指定されていない場合、そのリテラルは
データ型xsd:stringが指定されたものとして扱われます。
空白ノードは主語ノードおよび目的語 ノードとして機能できます。
空白ノードは、
RDFグラフ内で別個の同一性を持ちます。
グラフがRDF/XMLのような構文で書かれる場合、
これらの
空白ノードには、
この区別を保持するために、文書ローカルな識別子と構文が必要になることがあります。
これらのローカル識別子は
空白ノード識別子
と呼ばれ、RDF/XMLでは
rdf:nodeID属性の値として使用され、
その構文は生成規則 nodeIdAttrで与えられます。
RDF/XMLにおける
空白ノード識別子は、
XML情報セット
[XML-INFOSET]
の文書情報項目の範囲内で有効です。
rdf:nodeID属性値として明示的に
空白ノード識別子が与えられていない場合、
1つを生成する必要があります
(generated-blank-node-idを使用します。
5.3.3
文法アクション表記を参照)。
そのように生成された
空白ノード識別子は、
rdf:nodeID属性値から派生した
空白ノード識別子と衝突してはMUSTなりません。
これは、グラフ内のすべての空白ノードの別個の同一性を保持する任意の方法で実装できます。
すなわち、異なる空白ノードに同じ
空白ノード識別子
が与えられないようにします。1つの可能な方法は、
すべてのrdf:nodeID属性値に定数接頭辞を追加し、
生成された空白ノード識別子がその接頭辞を決して使用しないようにすることです。
別の方法は、すべてのrdf:nodeID属性値を新しい生成済み
空白ノード識別子に対応付け、
その対応付けをRDF/XML文書内の
そのようなすべての値に対して行うことです。
トリプル用語は目的語ノードとしてのみ機能できます。
トリプル用語は、グラフ内で主張される場合も、されない場合もある トリプルを記述します。
RDF/XMLは
XML Base [XMLBASE]
をサポートします。XML Baseは、各
·root event·および
·element event·に対する
·base-iri·
アクセサーを定義します。
相対IRI参照は、
[XMLBASE]
で指定されたアルゴリズムに従い、
Uniform
Resource Identifier (URI): Generic
Syntax [RFC3986] に従って、
第5.2節の基本アルゴリズムのみを使用して
IRI
に解決されます。
これらの仕様は、#fooのようなフラグメント識別子のみ、または
空文字列""を
IRIに
解決するアルゴリズムを指定していません。
RDF/XMLでは、フラグメント識別子は、
それを適用範囲内の基底IRIに追加することで
IRI
に変換されます。
空文字列は、適用範囲内の基底IRIで置き換えることによって
IRI
に変換されます。
空の同一文書参照 "" は、基底IRIのURI部分に対して解決されます。 フラグメント部分は無視されます。 Uniform Resource Identifiers (URI) [RFC3986] を参照してください。
実装上の注(参考): パス構成要素(/)を持たない階層的な基底 URIを使用する場合、解決のための基底IRIとして使用する前に、それを追加しなければなりません。
生成規則idAttrの各適用は、 1つの属性に一致します。 一致した属性の ·rdf-term· アクセサーは、単一のRDF/XML文書内で一意です。
名前の構文は rdf-id生成規則に一致しなければMUSTなりません。
この文書は、RDF/XMLの構文を、 記号のアルファベット上の文法として指定します。これらの記号は、 XPATHの 情報セット写像の様式で イベントと呼ばれます。 イベント列は通常XML文書から導出され、 その場合、それらは以下の 5.2 情報セット 写像 で定義される文書順になります。 これらのイベントが形成する列は、同じXML文書から [SAX] XML APIによって生成されるイベント列に 似たものとなることを意図しています。イベント列は、 それらが構文的に整形式のRDF/XMLであるかどうかを 判定するために文法に照合できます。
RDF 1.2 Concepts and Abstract Syntax仕様
[RDF12-CONCEPTS] は、
RDF用語の4種類を定義します:
IRI、
リテラル、
空白
ノード、および
トリプル用語です。
リテラルは、字句形式と、
任意の言語タグ [BCP47]
(場合によっては基底方向を含む)、
またはデータ型IRIで構成されます。
追加の型prefixは、構文解析中に文字列識別子を名前空間IRIに写像するために使用されます。
文法生成規則には、その生成規則が認識されたときに発火するアクションを含めることができます。 これらのアクションを合わせることで、構文的に整形式の任意の RDF/XMLイベント列から トリプルの集合への変換が定義されます。これは、一致した生成規則を RDF用語またはその構成要素 (例: 言語タグ、リテラルの字句形式)へ写像することで行われます。 文法生成規則はパーサー状態を変更し、トリプルを出力します。
ここで示すモデルは、 RDF/XML文書から RDFグラフ の表現を作成する1つの方法を説明するものです。 これはいかなる実装方法も義務付けません。同じ RDFグラフの表現を結果として得る 他の任意の方法を使用できます。
特に:
この構文は、整形式でないXML文書や、 XML情報セット [XML-INFOSET]を 持たない文書をサポートしません。たとえば、 Namespaces in XML [XML-NAMES] に適合しない文書などです。
Infosetは、 XML Base [XMLBASE] のサポートを必要とします。 RDF/XMLは、情報項目プロパティ [base IRI] を使用します。 これは 4.3 IRIの解決 で説明されています。
この仕様は、RDF/XMLのために、 少なくとも次の情報項目およびプロパティをサポートする XML情報セット [XML-INFOSET] を必要とします:
次の項目については、データモデルイベントへの写像はありません:
その他の情報項目およびプロパティには、 構文データモデルイベントへの写像はありません。
予約済みXML名を持つ要素情報項目
(Extensible Markup Language
(XML)
1.1 (Second Edition)のNameを参照)
は、データモデル要素イベントへ写像されません。
これらは、プロパティ[prefix]がxmlで始まるすべてのもの
(大文字小文字を区別しない比較)および[prefix]プロパティに値がなく、
[local name]がxmlで始まるすべてのもの
(大文字小文字を区別しない比較)です。
parseTypeLiteralPropertyElt 生成規則に一致するXML要素の内部に含まれるすべての情報項目は、 XMLリテラルを形成し、この写像には従いません。 詳細についてはparseTypeLiteralPropertyEltを参照してください。
この節は、 [XML-INFOSET] 仕様における 適合性 の要件を満たすことを意図しています。 この仕様を実装するために必要な情報項目およびプロパティを指定します。
次の小節では、9種類のイベントが定義されています。 ほとんどのイベントはInfoset情報項目から構築されます (ただし、IRI、 空白ノード、 明示的なデータ型を持たないリテラルおよび 型付きリテラルを除きます)。 イベントコンストラクターの効果は、他のすべてのイベントとは異なる一意の同一性を持つ 新しいイベントを作成することです。イベントにはアクセサー操作があり、 ほとんどのイベントは、静的値または計算値であり得る string-value、IRI、rdf-term、literal、または bnodeアクセサーを持ちます。
文書情報項目 から構築され、次のアクセサーおよび値を取ります。
要素情報項目 から構築され、次のアクセサーおよび値を取ります:
要素情報項目プロパティ [attributes] の値から作成されます。 これは属性情報項目の集合です。
この集合に属性情報項目
xml:lang(値
"http://www.w3.org/XML/1998/namespace"を持つ[namespace name]プロパティ、
および値"lang"を持つ[local name]プロパティ)が含まれる場合、
それは属性情報項目の集合から削除され、
·language·
アクセサーは、その属性情報項目の[normalized-value]プロパティに設定されます。
要素に
versionアクセサーがあり、
その値が"1.2-basic"、"1.2"またはそれ以上であり、
この集合に属性情報項目
its:dir(値
"http://www.w3.org/2005/11/its"を持つ[namespace name]プロパティ、
および値"dir"を持つ[local name]プロパティ)が含まれる場合、
それは属性情報項目の集合から削除され、
·direction·
アクセサーは、その属性情報項目の[normalized-value]プロパティに設定されます。
その値は"ltr"、"rtl"、または空文字列のいずれかでなければMUSTなりません。
要素に
versionアクセサーがあり、
その値が"1.2-basic"、"1.2"またはそれ以上であり、
この集合に属性情報項目
its:version(値
"http://www.w3.org/2005/11/its"を持つ[namespace name]プロパティ、
および値"version"を持つ[local name]プロパティ)が含まれる場合、
それは属性情報項目の集合から削除され、
·its-version·
アクセサーは、その属性情報項目の[normalized-value]プロパティに設定されます。
残りの予約済みXML名
(Extensible
Markup Language (XML) 1.1 (Second Edition)の
Nameを参照)
はすべて、ここで集合から削除されます。
これらは、プロパティ[prefix]がxmlで始まる集合内のすべての属性情報項目
(大文字小文字を区別しない比較)および[prefix]プロパティに値がなく、
[local name]がxmlで始まるすべての属性情報項目
(大文字小文字を区別しない比較)です。
[base IRI]アクセサーは、xml:base属性情報項目が削除される前に
XML Baseによって計算されることに注意してください。
残りの属性情報項目の集合は、その後、新しい 属性イベント の集合を構築するために使用され、このアクセサーの値として割り当てられます。
"2.0"に設定されるSHOULDです。
parseType="Triple"属性によって変更される場合があります。
アクセサーを持ちません。列内で、包含要素の終わりを示します。
属性情報項目 から構築され、次のアクセサーおよび値を取ります:
·namespace-name·が存在する場合、
·namespace-name·アクセサーの値と
·local-name·アクセサーの値を連結して
構築されるIRIに設定されます。
それ以外の場合、·local-name·が
ID、about、
parseType、resource、type、
またはversionである場合、
RDF名前空間IRI
とlocal-nameアクセサーの値を連結した値から構築される
IRIに設定されます。
その他の名前空間なしの
·local-name·アクセサー値は禁止されます。
限定された名前空間なし名の集合のサポートは REQUIREDであり、 [RDF-SYNTAX-GRAMMAR-19990222] で指定されたRDF/XML文書が有効なままであることを 可能にすることを意図しています。新しい文書ではこれらの非修飾属性を使用するSHOULD NOTであり、アプリケーションは文書内で非修飾形式を見たときに 警告することを選択してもMAYです。
XML属性から
IRIを構築すると、
異なるXML属性から同じIRIを生成することがあります。
これは、属性イベントを照合するときに文法上の曖昧性を引き起こす可能性があります
(たとえば、rdf:aboutとabout XML属性が
両方存在する場合など)。これを持つ文書は不正です。
1つ以上の連続する 文字情報項目 の列から構築されます。 単一のアクセサーを持ちます:
次のアクセサーを持つ IRIのイベントです:
これらのイベントは、 ·identifier·アクセサーに 値を与えることで構築されます。
RDFにおける識別子の詳細については、 4.2 識別子を参照してください。
次のアクセサーを持つ トリプル用語のイベントです:
これらのイベントは、rdf-termアクセサーに値を与えることで構築されます。
次のアクセサーを持つ 空白ノード識別子 のイベントです:
これらのイベントは、 ·identifier·アクセサーに 値を与えることで構築されます。
RDFにおける識別子の詳細については、 4.2 識別子を参照してください。
RDF 1.2における
明示的なデータ型を持たないRDF/XMLリテラルは、
(言語タグが存在しない場合)データ型xsd:stringを持つリテラル、
(言語タグが存在し、方向が存在しない場合)データ型rdf:langStringを持つリテラル、
または(言語タグと方向の両方が存在する場合)データ型rdf:dirLangStringを持つリテラル
の構文糖として扱われます。
この小節で定義されるN-Triplesへの写像は、この変更の影響を受けません。
次のアクセサーを持つことができる、明示的なデータ型を持たないリテラルのイベントです:
値は、次のように他のアクセサーから構築される RDFリテラルです。
·literal-language·が
空文字列である場合、値は
·literal-value·アクセサーの値から
取得された
字句形式と、
データ型IRIxsd:stringを持つ
RDFリテラルです。
それ以外で、 ·literal-direction·が 空文字列である場合、 値は、 ·literal-value·アクセサーの値から 取得された 字句形式と、 ·literal-language·アクセサーの値から 取得された 言語タグを持つ 言語タグ付き文字列です。
それ以外の場合、値は、 ·literal-value·アクセサーの値から 取得された 字句形式、 ·literal-language·アクセサーの値から 取得された 言語タグ、 および·literal-direction·アクセサーの値から取得された 基底方向 を持つ 方向付き 言語タグ付き文字列です。
これらのイベントは、 ·literal-value·、 ·literal-language·、および ·literal-direction·アクセサーに 値を与えることで構築されます。
相互運用性に関する注(参考): Unicode結合文字で始まるリテラルは許可されますが、 相互運用性の問題を引き起こす可能性があります。 詳細については [CHARMOD] を参照してください。
次のアクセサーを持つことができる、型付きリテラルのイベントです:
値は、 ·literal-value·アクセサーの値から 取得された 字句形式と、 ·literal-datatype·アクセサーの値から取得された データ型IRI を持つ RDFリテラルです。
これらのイベントは、 ·literal-value· および·literal-datatype·アクセサーに 値を与えることで構築されます。
相互運用性に関する注(参考): Unicode結合文字で始まるリテラルは許可されますが、 相互運用性の問題を引き起こす可能性があります。 詳細については [CHARMOD] を参照してください。
実装上の注(参考): XML Schema(第1部) [XMLSCHEMA11-2] では、 空白正規化 はwhiteSpaceファセットの値に従って検証中に行われます。 この文書で使用される構文写像はその後に行われるため、 whiteSpaceファセットは形式的にはそれ以上の効果を持ちません。
Infosetを文書順のイベント列へ変換するために、 各情報項目は上記のように変換され、アクセサーと値を持つ イベントの木を生成します。次に、各要素イベントは下記のように置き換えられ、 イベントの木を文書順の列に変換します。
次の表記は、 5. 構文データモデル で与えられるデータモデルイベント列の照合と、 一致に対して実行するアクションを記述するために使用されます。 RDF/XML文法は、 これらの一致したデータモデルイベントからトリプルへの写像という観点で、 次の形式の表記を用いて定義されます:
number event-type event-content
action...
Triple(s)
ここでevent-contentは、 以下の節で与えられる表記を使用して、 (5.1 イベントで定義される) event-typesに一致する式です。 numberは参照目的で使用されます。 文法のactionには、 グラフへの新しいトリプルの生成が含まれる場合があります。
以降の節では、使用される一般表記、およびイベント照合とアクションのための表記について説明します。
| 表記 | 意味 |
|---|---|
| event.accessor | イベントアクセサーの値。 |
rdf:X |
4.1 RDF名前空間と語彙 で定義されるURI。 |
| "ABC" | 順序どおりの文字A、B、Cからなる文字列。 |
| 表記 | 意味 |
|---|---|
| A == B | イベントアクセサーAが式Bに一致します。 |
| A != B | AはBと等しくありません。 |
| A | B | ... | A、B、... の項は選択肢です。 |
| A - B | A内の項から、B内のすべての項を除いたもの。 |
| anyURI. | 任意のURI。 |
| anyString. | 任意の文字列。 |
| list(item1, item2, ...); list() | イベントの順序付きリスト。空のリスト。 |
| set(item1, item2, ...); set() | イベントの順序なし集合。空の集合。 |
| * | 直前の項の0回以上の繰り返し。 |
| ? | 直前の項の0回または1回の出現。 |
| + | 直前の項の1回以上の繰り返し。 |
| root(acc1 == value1, acc2 == value2, ...) |
アクセサーを持つルートイベントに一致します。 |
| start-element(acc1 == value1, acc2 == value2, ...) children end-element() |
アクセサーを持つ 要素イベント、 要素内容としての空である可能性のあるイベントのリスト、および 終了要素イベント の列に一致します。 |
| attribute(acc1 == value1, acc2 == value2, ...) |
アクセサーを持つ 属性イベントに一致します。 |
| text() | テキストイベントに一致します。 |
| 表記 | 意味 |
|---|---|
| A := B | Aに値Bを代入します。 |
| concat(A, B, ..) | 項を順に連結して作成される文字列。 |
| resolve(e, s) | sを、 eの ·base-iri·アクセサーに対する 相対IRI参照として解釈することで作成される IRIです。 これは4.3 IRIの解決で定義されます。 |
| generated-blank-node-id() | 4.2 識別子 で定義される、新しい別個の生成済み 空白ノード識別子 の文字列値。 |
| event.accessor := value | イベントアクセサーを指定された値に設定します。 |
| iri(identifier := value) | 新しいIRIイベントを作成します。 |
| bnodeid(identifier := value) | 新しい空白ノード識別子イベントを作成します。 4.2 識別子の節も参照してください。 |
| literal(literal-value := string, literal-language := language, literal-direction := direction, ...) |
新しいデータ型なしリテラルイベントを作成します。 |
| string(iri) | IRIの 文字列値。 |
| typed-literal(literal-value := string, ...) | 新しい型付きリテラルイベントを作成します。 |
| triple(s, p, o) | s、p、およびoで構成される 新しいトリプル用語イベントを作成します。 |
RDF/XMLが独立したXML文書である場合
(application/rdf+xml RDFメディアタイプオブジェクトとして
提示されること、または何らかの他の手段によって識別される場合)、
文法は生成規則docまたは
生成規則nodeElementで始まることができます。
内容が文脈によってRDF/XMLであることが分かっている場合、 たとえばRDF/XMLが他のXML内容の内部に埋め込まれている場合、 文法は 要素イベント RDF から始めることも (XML内のその時点で要素が正当な場合に限る)、 生成規則nodeElementList から始めることもできます (これは要素のリストであるため、要素内容が正当な場合に限る)。 そのような埋め込みRDF/XMLでは、 最外側の要素上の ·base-iri· 値は、利用可能な ルートイベント がないため、 包含するXMLから初期化されなければMUSTなりません。 そのような埋め込みが行われる場合、文法に複数回入ることがありますが、 状態が保持されることは期待されないことに注意してください。
埋め込みRDF/XMLのテストを追加する。
開始ノードは、最上位XML文書要素と呼ばれます。
rdf:RDF |
rdf:ID | rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype |
rdf:version
RDF 語彙の構文用語の部分集合であり、 4.1 RDF名前空間と語彙 にあり、RDF/XMLで使用されます。
coreSyntaxTerms | rdf:Description |
rdf:li
RDF 語彙のすべての構文用語であり、 4.1 RDF名前空間と語彙 にあり、RDF/XMLで使用されます。
rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID
これらは、言語から廃止された RDF 語彙 の名前です。詳細については、 Issue rdfms-aboutEach-on-object、 Issue rdfms-abouteachprefix および Last Call Issue timbl-01 の決議を参照してください。
anyURI - ( coreSyntaxTerms | rdf:li | oldTerms )
IRI はノード要素上で許可されます。
anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms )
プロパティ要素上で許可されるURI。
anyURI - ( coreSyntaxTerms | rdf:Description |
rdf:li | oldTerms )
root(document-element == RDF,
children == list(RDF))
start-element(IRI ==
rdf:RDF,
attributes == set())
nodeElementList
end-element()
ws* (nodeElement ws* )*
start-element(IRI == nodeElementIRIs
attributes == set(idAttr | nodeIdAttr | aboutAttr )?, propertyAttr*)
propertyEltList
end-element()
ノード要素eについて、 一部の属性の処理は、子イベントや他の属性の処理などの他の作業の前に 行う必要があります。これらは任意の順序で処理できます:
rdf:IDである場合、
e.subject := iri(identifier := resolve(e, concat("#",
a.string-value))).
rdf:nodeIDである場合、
e.subject := bnodeid(identifier:=a.string-value).
rdf:aboutである場合、
e.subject := iri(identifier := e.rdf-term).
e.subjectが空である場合、 e.subject := bnodeid(identifier := generated-blank-node-id()).
次に、以下を任意の順序で実行できます:
rdf:Description
である場合、次の文がe.parent.graphに追加されます:
rdf:type
である場合、
u:=iri(identifier:=e.rdf-term)
とし、次のトリプルがe.parent.graphになります:
rdf:typeではないもの)について、
Unicode文字列
a.string-value
は正規形C [NFC] であるSHOULDです。
o := literal(literal-value :=
a.string-value, literal-language := e.language, literal-direction := e.direction)
とし、次の文がe.parent.graphに追加されます:
ws* (propertyElt ws* ) *
要素eについて、
e.IRI =
rdf:liである場合、要素e.parent上で
6.4 リスト
展開規則
のリスト展開規則を適用して新しいIRI uを得て、
e.IRI := uとします。
この生成規則のアクションは、任意の部分一致 (resourcePropertyElt ... emptyPropertyElt)のアクションより前に行われなければMUSTなりません。 あるいは、結果は、このアクションが最初に実行された場合と同等でなければMUSTなりません。 たとえば、すべての部分一致の最初のアクションとして実行する場合などです。
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?)
ws* nodeElement ws*
end-element()
要素eと、それに含まれる単一のnodeElement nについて、まずnは生成規則 nodeElementを用いて処理されなければMUSTなりません。 次に、次の文がe.parent.graphに追加されます:
rdf:ID属性aが与えられている場合、上記の
文は
i := iri(identifier := resolve(e,
concat("#", a.string-value)))
を用い、
6.3 具体化
規則
に従って具体化され、
e.subject := iとなります。
rdf:annotation属性またはrdf:annotationNodeID属性aの
いずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?, datatypeAttr?))
text()
end-element()
空のリテラルの場合は生成規則 emptyPropertyEltで定義されていることに注意してください。
要素eおよびテキストイベントtについて。
Unicode文字列t.string-valueは
正規形C [NFC] であるSHOULDです。
rdf:datatype属性dが与えられている場合、
o := typed-literal(literal-value
:= t.string-value, literal-datatype := d.rdf-term)
とし、そうでなければ
o := literal(literal-value := t.string-value, literal-language := e.language, literal-direction := e.direction)
とし、次の文がe.parent.graphに追加されます:
rdf:ID属性aが与えられている場合、上記の
文は
i := iri(identifier := resolve(e,
concat("#", a.string-value)))
を用い、
6.3 具体化
規則
に従って具体化され、
e.subject := iとなります。
rdf:annotation属性またはrdf:annotationNodeID属性aの
いずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
この節は非規範的です。
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseLiteral))
literal
end-element()
要素eおよびrdf:parseType="Literal"内容である
リテラルlitについて。
litは、構文データモデル写像によってイベントへ変換されず
(5.
構文データモデルの節で述べられているとおり)、
XML情報項目のXML Infosetのまま残ります。
litは、次のアルゴリズムにより、 RDF グラフx(Unicode文字列)内の XMLリテラル の字句形式に変換されます。これはいかなる実装方法も義務付けません。 同じ結果を与える他の任意の方法を使用できます。
次に、o := typed-literal(literal-value :=
x, literal-datatype :=
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral )
とし、次の文がe.parent.graphに追加されます:
rdf:ID属性aが与えられている場合、上記の
文は
i := iri(identifier := resolve(e,
concat("#", a.string-value)))
を用い、
6.3 具体化
規則
に従って具体化され、
e.subject := iとなります。
rdf:annotation属性またはrdf:annotationNodeID属性aの
いずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseResource))
propertyEltList
end-element()
空である可能性のある要素内容cを持つ要素eについて。
n := bnodeid(identifier := generated-blank-node-id()).
rdf:ID属性aが与えられている場合、
上記の文は
i := iri(identifier := resolve(e,
concat("#", a.string-value)))
を用い、
6.3 具体化
規則
に従って具体化され、
e.subject := iとなります。
rdf:annotation属性またはrdf:annotationNodeID属性aの
いずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
要素内容cが空でない場合、イベントnを使用して、 次のように新しいイベント列を作成します:
start-element(IRI := rdf:Description,
subject := n,
attributes := set())
c
end-element()
次に、 生成規則 nodeElementを使用して、結果の列を処理します。
start-element(IRI == propertyElementURIs ),
attributes == set(parseTriple))
propertyEltList
end-element()
要素内容cを持つ要素eについて。
次のように新しいイベント列を作成します:
start-element(IRI := nodeElementIRIs,
attributes := set())
graph := 新しいRDFグラフ)
c
end-element()
次に、生成規則 nodeElementを使用して、結果の列を処理します。
ノード列を処理した後、 e.parent.graph は単一のトリプルを含むRDF グラフでなければMUSTなりません。
e.subject := triple(s, p, o)とします。ここで s、p、およびoは、 e.parent.graph内の唯一のトリプルの 主語、 述語、および 目的語 です。
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, parseCollection))
nodeElementList
end-element()
空である可能性のある nodeElementListnelを持つ要素イベントeについて。 s:=list()と設定します。
nel内の各要素イベントfについて、 n := bnodeid(identifier := generated-blank-node-id()) とし、nを sに追加してイベント列を得ます。
sが空でない場合、nは s内の最初のイベント識別子であり、次の文がe.parent.graphに追加されます:
そうでない場合、次の文がe.parent.graphに追加されます:
rdf:ID属性aが与えられている場合、
上記のいずれかの文は
i := iri(identifier := resolve(e,
concat("#", a.string-value)))
を用い、
6.3 具体化
規則
に従って具体化されます。
rdf:annotation属性またはrdf:annotationNodeID属性aの
いずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
sが空である場合、それ以上の作業は行われません。
s内の各イベントnおよび nel内の対応する要素イベントfについて、次の 文がe.parent.graphに追加されます:
s内の連続し重なり合うイベントの各ペア (n, o) について、次の文が e.parent.graphに追加されます:
sが空でない場合、nはs内の最後のイベント識別子であり、 次の文がe.parent.graphに追加されます:
n.rdf-term <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseOther))
propertyEltList
end-element()
文字列"Resource"、"Literal"、"Collection"、または"Triple"以外のすべての
rdf:parseType属性値は、値が"Literal"であるかのように扱われます。
この生成規則は、生成規則
parseTypeLiteralPropertyElt
に一致したかのように一致し、動作します。
他のrdf:parseType値に対して追加のトリプルは生成されません。
start-element(IRI == propertyElementURIs ),
attributes == set(idAttr?, (annotationAttr | annotationNodeIDAttr)?, ( resourceAttr | nodeIdAttr | datatypeAttr )?, propertyAttr*))
end-element()
属性がないまたは任意のrdf:ID属性iのみがある場合、
あるいは任意の属性rdf:annotationまたはrdf:annotationNodeID
aのみがある場合、
o := literal(literal-value:="",
literal-language := e.language,
literal-direction := e.direction)
とし、次の文がe.parent.graphに追加されます:
その後、iが与えられている場合、上記の文は iri(identifier := resolve(e, concat("#", i.string-value))) を用い、 6.3 具体化規則 に従って具体化されます。
その後、aが与えられている場合、 上記の文はトリプル用語tを作成するために使用され、 次の文がe.parent.graphに追加されます:
それ以外の場合
rdf:resource属性iが存在する場合、
r := iri(identifier :=
i.rdf-term)
rdf:nodeID属性iが存在する場合、
r := bnodeid(identifier :=
i.string-value)
以下は任意の順序で行われます:
すべてのpropertyAttr 属性aについて(任意の順序で)
a.IRI ==
rdf:type
である場合、u:=iri(identifier:=i.rdf-term)
とし、次のトリプルがe.parent.graphに追加されます:
それ以外の場合、Unicode文字列 a.string-value は正規形C [NFC] であるSHOULDであり、 o := literal(literal-value := a.string-value, literal-language := e.language, literal-direction := e.direction) とし、次の文がe.parent.graphに追加されます:
次の文をグラフに追加します:
その後、rdf:ID属性iが与えられている場合、上記の文は
iri(identifier := resolve(e,
concat("#", i.rdf-term)))
を用い、
6.3
具体化規則
に従って具体化されます。
その後、rdf:annotation属性または
rdf:annotationNodeID属性aのいずれかが与えられている場合、
上記の文はトリプル用語tを作成するために使用され、
次の文がe.parent.graphに追加されます:
attribute(IRI == rdf:ID,
string-value == rdf-id)
制約:: constraint-id
はrdf:ID属性の値に適用されます。
attribute(IRI == rdf:nodeID,
string-value == rdf-id)
attribute(IRI == rdf:about,
string-value ==
string(IRI))
attribute(IRI == rdf:annotation,
string-value ==
string(IRI))
この生成規則は、
rdf:version
が"1.2"以上でない限り、無視してもMAYです。
この生成規則は、
rdf:version
が"1.2"以上でない限り、無視してもMAYです。
attribute(IRI == propertyAttributeIRIs,
string-value == anyString)
attribute(IRI == rdf:resource,
string-value ==
string(IRI))
attribute(IRI == rdf:datatype,
string-value ==
string(IRI))
attribute(IRI == rdf:parseType,
string-value ==
"Literal")
attribute(IRI == rdf:parseType,
string-value ==
"Resource")
attribute(IRI == rdf:parseType,
string-value ==
"Triple")
attribute(IRI == rdf:parseType,
string-value ==
"Collection")
attribute(IRI == rdf:parseType,
string-value == anyString - ("Resource" | "Literal" |
"Collection") )
IRI。
XML定義要素の内容 規則 [43] content に従って許可される任意のXML要素内容。 節 3.1 開始タグ、 終了タグ、および空要素タグ 内
結果として得られるイベントのstring-valueについては、 6.2.17 生成規則 parseTypeLiteralPropertyElt で説明します。
任意の正当な [XML-NAMES] トークン NCName に一致する属性·string-value·
与えられたIRIイベントrと、 N-Triplesに対応する項s、p、およびoを持つ文について:
s p o .
次の文をグラフに追加します:
r.rdf-term <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> s .
r.rdf-term <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> p .
r.rdf-term <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> o .
r.rdf-term <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> .
与えられた要素eについて、新しいIRI u := concat("http://www.w3.org/1999/02/22-rdf-syntax-ns#_", e.li-counter) を作成し、 e.li-counter プロパティを1増やして、uを返します。
[RDF12-CONCEPTS]で定義される 一部のRDFグラフは、 RDF/XMLでシリアル化できません。これらは次のようなグラフです:
実装上の注(参考): RDF グラフがRDF/XMLへシリアル化され、 XML Schema Datatype (XSD) を持つ場合、空白処理を必要としない形式で記述されるSHOULDです。 XSDサポートはRDFまたはRDF/XMLによって要求されないため、 これは任意です。
この節は非規範的です。
RDF互換メタデータをSVGに関連付けるための 標準化された方法があります。この目的のために明示的に設計されたmetadata要素です。 これは Scalable Vector Graphics (SVG) 1.0 Specification [SVG10] およびScalable Vector Graphics (SVG) 1.1 (Second Edition) [SVG11]の 第21節 メタデータ で定義されています。
この文書には、そのようなRDF/XMLを metadata要素内に埋め込んだ、SVGの2つの例示グラフ figure 1およびfigure 2が含まれています。
この節は非規範的です。
この節は非規範的です。
この文書は、RDF Coreワーキンググループによる長期にわたる検討の成果です。そのメンバーには以下が含まれていました: Art Barstow (W3C) Dave Beckett (ILRT), Dan Brickley (W3C/ILRT), Dan Connolly (W3C), Jeremy Carroll (Hewlett Packard), Ron Daniel (Interwoven Inc), Bill dehOra (InterX), Jos De Roo (AGFA), Jan Grant (ILRT), Graham Klyne (Clearswift and Nine by Nine), Frank Manola (MITRE Corporation), Brian McBride (Hewlett Packard), Eric Miller (W3C), Stephen Petschulat (IBM), Patrick Stickler (Nokia), Aaron Swartz (HWG), Mike Dean (BBN Technologies / Verizon), R. V. Guha (Alpiri Inc), Pat Hayes (IHMC), Sergey Melnik (Stanford University), Martyn Horner (Profium Ltd).
この仕様は、Ora LassillaおよびRalph Swickが編集した以前のRDF Model and Syntax文書、ならびにDan BrickleyおよびR. V. Guhaが編集した RDF Schemaにも基づいています。 この以前の作業に貢献したRDFおよびRDF Schemaワーキンググループのメンバーは次のとおりです: Nick Arnett (Verity), Tim Berners-Lee (W3C), Tim Bray (Textuality), Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe), Sailesh Chutani (Oracle), Dan Connolly (W3C), Ron Daniel (DATAFUSION), Charles Frankston (Microsoft), Patrick Gannon (CommerceNet), RV Guha (Epinions, previously of Netscape Communications), Tom Hill (Apple Computer), Arthur van Hoff (Marimba), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Joe Lapp (webMethods Inc.), Ora Lassila (Nokia Research Center), Andrew Layman (Microsoft), Ralph LeVan (OCLC), John McCarthy (Lawrence Berkeley National Laboratory), Chris McConnell (Microsoft), Murray Maloney (Grif), Michael Mealling (Network Solutions), Norbert Mikula (DataChannel), Eric Miller (OCLC), Jim Miller (W3C, emeritus), Frank Olken (Lawrence Berkeley National Laboratory), Jean Paoli (Microsoft), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods Inc.), Paul Resnick (University of Michigan), Bill Roberts (KnowledgeCite), Tsuyoshi Sakata (Digital Vision Laboratories), Bob Schloss (IBM), Leon Shklar (Pencom Web Works), David Singer (IBM), Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C), Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf (Reuters Ltd.), Lauren Wood (SoftQuad).
この節は非規範的です。
Gavin Carothersは、 生成規則 parseTypeLiteralPropertyEltのためにRDF 1.1の更新を 提供しました。Ivan Hermanは有益なコメントを提供し、図1および図2を作り直しました。
この仕様は、RDFcoreワーキンググループならびにRDFおよび RDF Schemaワーキンググループの メンバーによる長期にわたる検討の成果です。
次の人々が文書に有益な貢献をしました:
この節は非規範的です。
編集者に加えて、次の人々がこの仕様に貢献しました: Andy Seaborne, Denis Ah-Kang, Dominik Tomaszuk, Gregory Todd Williams, John Walker, Niklas Lindström, Peter F. Patel-Schneider, Pierre-Antoine Champin, Ted Thibodeau Jr, and Thomas Tanon
RDF & SPARQLワーキンググループのメンバーには
James Anderson, Dörthe Arndt, Jerven Bolleman, Erich Bremer, Pierre-Antoine Champin, Souripriya Das,
Enrico Franconi, Adrian Gschwend, Olaf Hartig, Gregg Kellogg†, Ora Lassila, Niklas Lindström, Thomas
Lörtsch, Peter Patel-Schneider, Dave Raggett, Felix Sasaki, Andy Seaborne, Ruben Taelman, Thomas
Pellissier Tanon, Ted Thibodeau Jr, Dominik Tomaszuk, Gregory Williams, William Van Woensel, and Antoine
Zimmermann
† Gregg Kelloggは2025年9月に逝去しました。RDFおよび関連標準のより広いエコシステムへの
彼の多大な貢献に、深い感謝をもって謝意を表します。
タスクフォースのメンバーを認識するか。貢献者一覧を見つけるのは容易ではない。
この節は非規範的です。
rdf:HTMLデータ型はRDF/XMLでシリアル化できないという文を削除します。its:dirおよびrdf:versionを追加します。
rdf:parseType="Triple"、
6.2.19 生成規則
parseTypeTriplePropertyElt、および
6.2.33 生成規則 parseTripleを追加し、
トリプル用語をサポートします。
rdf:annotationまたはrdf:annotationNodeIDと、
トリプル用語のための
reifierを作成する規則を追加し、
それらを他のトリプルの主語または目的語として使用できるようにします。
この節は非規範的です。
この付録には、RDF/XML形式を検証するためのXMLスキーマが含まれます。 これらは情報提供のみを目的とした例示スキーマであり、 この仕様の一部ではありません。
この節は非規範的です。
これは、RDF/XMLのための RELAX NG Compactの例示スキーマ(読みやすさのため)です。アプリケーションは RELAX NG XML 版も使用できます。 これらの形式はInformation technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG [RELAXNG-SCHEMA] で説明されています。
RNGCスキーマは文法に一致させようとして更新されていますが、 これは検査されておらず、RDF/XMLの検証にも使用されていません。
#
# RELAX NG Compact Schema for RDF/XML Syntax
#
# This schema is for information only and NON-NORMATIVE
#
# It is based on one originally written by James Clark in
# https://lists.w3.org/Archives/Public/www-rdf-comments/2001JulSep/0248.html
# and updated with later changes.
#
namespace local = ""
namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
namespace its = "http://www.w3.org/2005/11/its"
start = doc
# I cannot seem to do this in RNGC so they are expanded in-line
# coreSyntaxTerms = rdf:RDF | rdf:ID | rdf:annotation | rdf:annotationNodeID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype | rdf:version
# syntaxTerms = coreSyntaxTerms | rdf:Description | rdf:li
# oldTerms = rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID
# nodeElementIRIs = * - ( coreSyntaxTerms | rdf:li | oldTerms )
# propertyElementURIs = * - ( coreSyntaxTerms | rdf:Description | oldTerms )
# propertyAttributeIRIs = * - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms )
# Also needed to allow rdf:li on all property element productions
# since we can't capture the rdf:li rewriting to rdf_<n> in relaxng
# Need to add these explicitly
xmllang = attribute xml:lang { text }
xmlbase = attribute xml:base { text }
# and to forbid every other xml:* attribute, element
doc =
RDF | nodeElement
RDF =
element rdf:RDF {
xmllang?, xmlbase?, nodeElementList
}
nodeElementList =
nodeElement*
# Should be something like:
# ws* , ( nodeElement , ws* )*
# but RELAXNG does this by default, ignoring whitespace separating tags.
nodeElement =
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:li |
rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID ) {
(idAttr | nodeIdAttr | aboutAttr )?, xmllang?, xmlbase?, propertyAttr*, propertyEltList
}
# It is not possible to say "and not things
# beginning with _ in the rdf: namespace" in RELAX NG.
ws =
" "
# Not used in this RELAX NG schema; but should be any legal XML
# whitespace defined by https://www.w3.org/TR/2000/REC-xml-20001006#NT-S
propertyEltList =
propertyElt*
# Should be something like:
# ws* , ( propertyElt , ws* )*
# but RELAXNG does this by default, ignoring whitespace separating tags.
propertyElt =
resourcePropertyElt |
literalPropertyElt |
parseTypeLiteralPropertyElt |
parseTypeResourcePropertyElt |
parseTypeTriplePropertyElt |
parseTypeCollectionPropertyElt |
parseTypeOtherPropertyElt |
emptyPropertyElt
resourcePropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, nodeElement
}
literalPropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr? , (annotationAttr | annotationNodeIDAttr)?, datatypeAttr?, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, text
}
parseTypeLiteralPropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseLiteral, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, literal
}
parseTypeResourcePropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseResource, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, propertyEltList
}
parseTypeTriplePropertyElt =
element * - ( local:* | rdf:RDF | rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, parseResource, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, propertyEltList
}
parseTypeCollectionPropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, parseCollection, nodeElementList
}
parseTypeOtherPropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (annotationAttr | annotationNodeIDAttr)?, xmllang?, xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, parseOther, any
}
emptyPropertyElt =
element * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
its:dir | its:version |
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
idAttr?, (resourceAttr | nodeIdAttr | datatypeAttr )?, xmllang?,
xmlbase?, versionAttr?, dirAttr?, itsVersionAttr?, propertyAttr*
}
idAttr =
attribute rdf:ID {
IDsymbol
}
nodeIdAttr =
attribute rdf:nodeID {
IDsymbol
}
aboutAttr =
attribute rdf:about {
IRI
}
propertyAttr =
attribute * - ( local:* | rdf:RDF | rdf:ID |
rdf:annotation | rdf:annotationNodeID |
rdf:about | rdf:parseType |
rdf:resource | rdf:nodeID | rdf:datatype | rdf:version |
rdf:li | its:dir | | its:version
rdf:Description | rdf:aboutEach |
rdf:aboutEachPrefix | rdf:bagID |
xml:* ) {
string
}
resourceAttr =
attribute rdf:resource {
IRI
}
datatypeAttr =
attribute rdf:datatype {
IRI
}
parseLiteral =
attribute rdf:parseType {
"Literal"
}
parseResource =
attribute rdf:parseType {
"Resource"
}
parseTriple =
attribute rdf:parseType {
"Triple"
}
parseCollection =
attribute rdf:parseType {
"Collection"
}
parseOther =
attribute rdf:parseType {
text
}
versionAttr =
attribute rdf:version {
text
}
dirAttr =
attribute its:dir {
text
}
itsVersionAttr =
attribute its:version {
text
}
IRI =
string
literal =
any
IDsymbol =
xsd:NMTOKEN
any =
mixed { element * { attribute * { text }*, any }* }
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: