RDF/XML 構文仕様 (改訂版)から[強調を追加]:
グラフを XML でエンコードするには、ノードと述語を XML 用語 (要素名、属性名、要素の内容、および属性値) で表す必要があります。RDF/XML は、XML の名前空間 [XML-NS] で定義されている XML QName を使用して、RDF URI 参照を表します。すべての QName には、URI 参照である名前空間名と短いローカル名があります。さらに、QName は短いプレフィックスを持つか、デフォルトの名前空間宣言で宣言され、何も持たない (ただし、名前空間名を持つ) ことができます。
QName によって表される RDF URI 参照は、QName の名前空間名 (URI 参照) 部分の後に QName のローカル名部分を追加することによって決定されます。これは、すべての述語と一部のノードの RDF URI 参照を短縮するために使用されます。サブジェクト ノードとオブジェクト ノードを識別する RDF URI 参照も、XML 属性値として保存できます。オブジェクトノードにしかできないRDFリテラルは、XML要素のテキストコンテンツまたはXML属性値のいずれかになります。
単純連結です。重要なのは連結結果です。これは、私が使用できることを意味します
@prefix dcterms: <http://purl.org/dc/terms/>
@prefix dctermsx: <http://purl.org/dc/terms/accrual>
dcterms:accrualPolicy === http://purl.org/dc/terms/accrualPolicy
dctermsx:Policy === http://purl.org/dc/terms/accrualPolicy
dcterms:accrualPeriodicity === http://purl.org/dc/terms/accrualPeriodicity
dctermsx:Periodicity === http://purl.org/dc/terms/accrualPeriodicity
RDF/XML 構文仕様で QName の解釈方法を定義する必要があることは興味深いことです。XML QName 仕様から意味を継承しなかったのはなぜですか? 答えはあなたが引用した記事にあります:
XML 名前空間の仕様では、アプリケーションが (URI、ローカル部分) のペアをどのように扱うべきかについて明示的に述べていません。ほとんどのアプリケーションはこれらを 2 つの別個のコンポーネントとして扱いますが、一部のアプリケーションでは、それらを異なる方法で組み合わせる必要があります。
RDF/XMLでは、アプリケーションは (URI,local part) ペアを、RDF 構文ドキュメントからの最初の引用で述べられているように、uriとlocalを連結した URI への参照として扱います。もちろん、ボキャブラリによって定義された URI は、共通の名前空間があり、その名前空間を XML プレフィックスとして使用して用語を簡単に記述できるようにするという慣習があります。上記の DCMI 用語で示しました。
ElementTreeでは、QName は{uri}localに対応します。これが、そのアプリケーションが (URI、ローカル部分) ペアを処理する方法です。
RDF/XML シリアライゼーションは有効な XML でなければならないという事実から生じる複雑な問題があります。すべての URI を QName として表すことができるわけではありません。QName では、および にnamespace:localname
表示できる文字に制限があるため、QName として表すことができない URI があるためです。たとえば、ローカル名は数字で始めることはできないため、そのような素敵な QName を持つことはできません。(たとえば、Jena-users メーリング リストのこのスレッドを参照してください。)namespace
name
http://127.0.0.1/789234
localhost:789234
別の複雑さや混乱は、RDF/XML 以外の RDF シリアライゼーションが存在するという事実から生じます。これらのいくつかは、表面的には XML QName に似たプレフィックス/サフィックス表記を採用していますが、これらの制約の一部を緩和しているため、prefix/有効な XML QName ではない接尾辞の組み合わせですが、それらの形式では問題ありません。
DBpedia SPARQL エンドポイントで定義されたプレフィックスは、この問題を浮き彫りにします。SPARQL 標準のセクション4.1.1.1 プレフィックス名から[強調を追加]:
このPREFIX
キーワードは、プレフィックス ラベルを IRI に関連付けます。プレフィックス名は、コロンで区切られたプレフィックス ラベルとローカル部分":"
です。接頭辞付きの名前は、接頭辞とローカル部分に関連付けられた IRI を連結することによって、IRI にマップされます。プレフィックス ラベルまたはローカル部分が空である可能性があります。SPARQL ローカル名では先頭の数字を使用できますが、XML ローカル名では使用できないことに注意してください。SPARQL ローカル名では、バックスラッシュ文字エスケープ (例: ) を介して、IRI で許可されている英数字以外の文字も使用できますns:id\=123
。SPARQL ローカル名には、CURIE よりも構文上の制限があります。
このコンテキストでは、次のような接頭辞
amz => http://webservices.amazon.com/AWSECommerceService/2005-10-05
RDF/XMLシリアライゼーションでは、amz:#something
orのような違法なものを書く必要があるため役に立たないでしょう. andを書くことができるamz:/something
SPARQLでは(おそらく不便かもしれませんが)便利です.amz:\#something
amz:\/something