2

私の知る限り、セマンティック Web は 3 つの URI で構成されています。名前空間の短縮形は、日常的に使用する省略形として広く使用されています。名前空間の短縮形は、単純な連結によって URI に展開されると考えました。たとえば、有名なdc:title名前dc:空間 ( として定義されていますhttp://purl.org/dc/elements/1.1/。最後の文字が a であることに注意してください/) は に展開され、意味的には と等しくなりhttp://purl.org/dc/elements/1.1/titleます。

次に、末尾に適切な区切り文字がないいくつかの名前空間定義に出くわしました。http://live.dbpedia.org/sparql?nsdeclの例

最も一般的な RDF 名前空間リストからのいくつか:

そのような名前空間を有効なリンクされたデータ URI に展開する方法は?

W3C 勧告の XML の名前空間では、 「拡張名は、名前空間名ローカル名で構成されるペアです」と定義されています。また、Fredrik Lundhは effbot.org で次のように書いています。これは幅広いユースケースに適しているかもしれませんが、リンクされたデータが URI で構成されているという考えには従いません{

リンクされたデータ (または)に展開されるxsd:elementべきではないと思いましたか? これはどのように正しく実装する必要がありますか?http://www.w3.org/2001/XMLSchemaelement{http://www.w3.org/2001/XMLSchema}element

4

1 に答える 1

5

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 構文ドキュメントからの最初の引用で述べられているように、urilocalを連結した URI への参照として扱います。もちろん、ボキャブラリによって定義された URI は、共通の名前空間があり、その名前空間を XML プレフィックスとして使用して用語を簡単に記述できるようにするという慣習があります。上記の DCMI 用語で示しました。

ElementTreeでは、QName は{uri}localに対応します。これが、そのアプリケーションが (URI、ローカル部分) ペアを処理する方法です。

RDF/XML シリアライゼーションは有効な XML でなければならないという事実から生じる複雑な問題があります。すべての URI を QName として表すことができるわけではありません。QName では、および にnamespace:localname表示できる文字に制限があるため、QName として表すことができない URI があるためです。たとえば、ローカル名は数字で始めることはできないため、そのような素敵な QName を持つことはできません。(たとえば、Jena-users メーリング リストのこのスレッドを参照してください。)namespacenamehttp://127.0.0.1/789234localhost: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\=123SPARQL ローカル名には、CURIE よりも構文上の制限があります。

このコンテキストでは、次のような接頭辞

amz => http://webservices.amazon.com/AWSECommerceService/2005-10-05

RDF/XMLシリアライゼーションでは、amz:#somethingorのような違法なものを書く必要があるため役に立たないでしょう. andを書くことができるamz:/somethingSPARQLでは(おそらく不便かもしれませんが)便利です.amz:\#somethingamz:\/something

于 2013-06-21T12:30:48.390 に答える