2

ここに rdf 形式のエントリがあります。一部が複雑に見える理由を理解したいと思います。

<pgterms:file rdf:about="&f;dirs/3/1/9/0/31900/31900-8.zip">
  <dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format>
  <dc:format><dcterms:IMT><rdf:value>application/zip</rdf:value></dcterms:IMT></dc:format>
  <dcterms:extent>193120</dcterms:extent>
  <dcterms:modified><dcterms:W3CDTF><rdf:value>2010-04-06</rdf:value></dcterms:W3CDTF></dcterms:modified>
  <dcterms:isFormatOf rdf:resource="#etext31900" />
</pgterms:file>

特に、この値:

<dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format>

なぜdcterms:IMTANDrdf:value部分の両方が必要なのですか? これは、実用的な利点がほとんどないように見えるものに対して、多くの肥大化のように見えます. すでに MIME タイプを使用しているため、私には意味がありません。

4

1 に答える 1

10

xml に山かっこがたくさんあるのはなぜでしょうか。人間ではなく、パーサーによって読み取られることを意図していたからです。

あなたのサンプルはrdf(rdfはフレームワークです)ではなく、rdf/xmlであり、フレームワーク内のグラフのシリアライズの1つです。 Turtle/n3はよりきれいなシリアライズです。N-Triplesはとてもシンプルです。

実際の詳細をカバーしていない非常に小さな例がいくつかありますが...

RDF/XML:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://www.w3.org/2001/sw/RDFCore/ntriples/">
    <dc:creator>Art Barstow</dc:creator>
    <dc:creator>Dave Beckett</dc:creator>
    <dc:publisher rdf:resource="http://www.w3.org/"/>
  </rdf:Description>
</rdf:RDF>

N-トリプル

<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Dave Beckett" .
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Art Barstow" .
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/publisher> <http://www.w3.org/> .

N3

@prefix dc: <http://purl.org/dc/elements/1.1/>

<http://www.w3.org/2001/sw/RDFCore/ntriples/> 
     dc:creator "Dave Beckett";
     dc:creator "Art Barstow";
     dc:publisher <http://www.w3.org/>.

編集:読むのをやめることができます。これは、異なるシリアル化で OP によって提供された単なる例です。質問に答えるには

dcterms:IMT と rdf:value 部分の両方が必要なのはなぜですか?

「空白のノード」がある場合、rdf/xml は一種のスタッターステップを実行する必要があります。以下で、N-Triples が空白のノードを書き出し、n3 が関係をより明確にしようとしていることがわかります。これらはすべて、同じ rdf グラフのシリアル化です。

RDF/XMLをわずかに変更 (名前空間を追加) したため、以下を解析します。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:pgterms="http://www.gutenberg.org/rdfterms/">
<pgterms:file rdf:about="/home/me/dirs/3/1/9/0/31900/31900-8.zip">
  <dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format>
  <dc:format><dcterms:IMT><rdf:value>application/zip</rdf:value></dcterms:IMT></dc:format>
  <dcterms:extent>193120</dcterms:extent>
  <dcterms:modified><dcterms:W3CDTF><rdf:value>2010-04-06</rdf:value></dcterms:W3CDTF></dcterms:modified>
  <dcterms:isFormatOf rdf:resource="#etext31900" />
</pgterms:file>
</rdf:RDF>

N-トリプル

</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.gutenberg.org/rdfterms/file> .
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/elements/1.1/format> _:LqSOByLi19 .
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/elements/1.1/format> _:LqSOByLi20 .
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/isFormatOf> <#etext31900> .
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/modified> _:LqSOByLi21 .
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/extent> "193120" .
_:LqSOByLi21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/W3CDTF> .
_:LqSOByLi21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2010-04-06" .
_:LqSOByLi20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/IMT> .
_:LqSOByLi20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "application/zip" .
_:LqSOByLi19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/IMT> .
_:LqSOByLi19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "text/plain; charset=\"iso-8859-1\"" .

N3/タートル

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix pgterms: <http://www.gutenberg.org/rdfterms/> .

</home/me/dirs/3/1/9/0/31900/31900-8.zip> a pg:file;
    dc:format 
        [ a dcterms:IMT;  rdf:value "text/plain; charset=\"iso-8859-1\"" ],
        [ a dcterms:IMT;  rdf:value "application/zip" ];
    dcterms:extent "193120";
    dcterms:isFormatOf <#etext31900>;
    dcterms:modified [ a dcterms:W3CDTF; rdf:value "2010-04-06" ] .

注: N3 は色を付けるとさらにきれいになります

編集 2: 上記は、bnode があることを説明していますが、なぜあるのかについては....上記のN3dcterms:modifiedシリアライゼーションの最後の行の述語は、(私が望む) 次のように表示できます。

dcterms:modified "2010-04-06"^^dcterms:W3CDTF
# vs
dcterms:modified [ a dcterms:W3CDTF; rdf:value "2010-04-06" ]

rdf:value が存在する理由は、次のようなトリプルのためです。

exproduct:item10245   exterms:weight   [rdf:value        "2.4"^^xsd:decimal
                                        exterms:units    exunits:kilograms] .

object単位に加えて、ノードはトリプルの精度またはその他の特性を示すことができます。

rdf:valueええ、私は認識論的純粋性を支持して理解と実用性を損なうものを嫌います.

于 2012-07-02T23:36:36.577 に答える