2012-07-02 56 views
3

所以這裏是一個rdf格式的條目。我想知道爲什麼它的某些部分顯得如此複雜。爲什麼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:IMTrdf:value部分?這看起來像是一個很大的膨脹,看起來沒什麼實際的好處。由於它已經在使用MIME類型,所以對我來說沒有意義。

+2

你似乎認爲RDF是精心設計的。這個假設是錯誤的。 :) – duskwuff

+0

不知道是疲勞(看@ RDF)還是什麼,但我發現很有趣。 – boatcoder

+0

對於一個更嚴肅的回答:我對RDF不太熟悉(這就是爲什麼我將這個評論而不是答案),但是不同的前綴(「rdf」,「pgterms」,「dc」,「dcterms 「...)表明你正在混合來自一堆不同命名空間的元素,這表明這個混亂的各個部分是獨立開發的。所以整個事情沒有統一的設計。 – duskwuff

回答

10

爲什麼xml有這麼多的尖括號我的眼睛傷害....因爲它是爲了解析器而不是人類閱讀。

您的示例不是rdf(rdf是框架),它是rdf/xml,它是框架中圖形的一種可能的序列化。 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-Triples

<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-Triples

</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是更漂亮if it's colored

編輯2: 在上面,說明有一個B節點,但是,爲什麼有一個....所述dcterms:modified謂詞在N3系列化以上可以(我希望)被視爲更象的最後一行:

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

該RDF原因是:值甚至存在對於像三元組:

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

除了單元之外,節點還可以指示三元組的object的精度或其他特性。

是啊我有點討厭rdf:value東西損害理解和實用性,贊成認識論的純度。

+1

「爲什麼xml有很多尖括號讓我的眼睛受傷..因爲它意味着被解析器讀取而不是人類讀取。「 +1 – RobV

+0

在這部分表達式中rdf:value的表達目的是什麼?難道它不是rdf:value嗎? '[dcterms:IMT; rdf:價值' – boatcoder

+0

@ Mark0978 - 堅果。我希望你不會回來問這個問題。簡短的回答:這是RDF的錯誤,而不是序列化。我不喜歡rdf:價值,它永遠不會存在。至於它爲什麼存在,我可能會編輯我的帖子(可能從2回到序列化的1個示例集),或者希望我會在我的書籤中找到一個很好的wiki帖子並添加它。 –

相關問題