爲什麼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
東西損害理解和實用性,贊成認識論的純度。
你似乎認爲RDF是精心設計的。這個假設是錯誤的。 :) – duskwuff
不知道是疲勞(看@ RDF)還是什麼,但我發現很有趣。 – boatcoder
對於一個更嚴肅的回答:我對RDF不太熟悉(這就是爲什麼我將這個評論而不是答案),但是不同的前綴(「rdf」,「pgterms」,「dc」,「dcterms 「...)表明你正在混合來自一堆不同命名空間的元素,這表明這個混亂的各個部分是獨立開發的。所以整個事情沒有統一的設計。 – duskwuff