2012-07-26 41 views
0

試圖讓我的頭繞RDF語句。鑑於一些命名空間:RDF/XML - 類的正確語法

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:ex="http://example.org/#" 
    xmlns:people="http://example.org/people/#" 
> 

有語句之間的區別:

<rdf:Description rdf:about="people:James_Brown"> 
    <rdf:type rdf:resource="ex:person"> 
</rdf:Description> 

和:

<ex:person rdf:resource="people:James_Browm" /> 
+0

除非你在學習RDF/XML語法時死心塌地,我可以推薦你將精力集中在學習RDF的另一種語法上,比如Turtle或N-Triples?這些更加可讀和緊湊。 RDF/XML不是你需要手工編寫的東西。 – 2012-07-26 20:55:27

+0

謝謝。我不打算自己編寫它,但是我已經合理地標記了需要分析的XML文檔,以便在三重存儲或圖形數據庫中保存關係和事物。我真的只是在探索這些技術,看看它們是如何工作的。 – user888734 2012-07-27 08:47:26

回答

1

我不知道你想做出什麼樣點,但我很確定這兩種說法都完全不同。命名空間通常是附加到標籤的前綴,如<c:name>Bill Gates</c:name>,這裏的命名空間是c。您試圖以某種方式將名稱空間組合到您的實際節點的值中,這不是正確的方式。每當你有像"people:James_Brown"這樣的引號時,你就會說這個整個語句就是這個節點的價值。因此你內部的任何名稱空間引用都是無用的。命名空間更多地用於將一組節點分組在一起,而不是像您所做的那樣嘗試標記每個數據條目。我建議瀏覽並尋找一些XML文檔來查看命名空間/值關係,因爲我不認爲你在這裏是標準的。然後我又是新的,可能是完全錯誤的。

+0

哎呦 - 主要知識缺口。感謝您的高舉。 – user888734 2012-07-26 17:39:15

+0

沒問題,我們都在那裏 – dudebroman 2012-07-27 16:20:48

5

隨着

<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:ex="http://example.org/#" 
    xmlns:people="http://example.org/people/#" 
> 
<ex:person rdf:resource="people:James_Browm" /> 
</rdf:RDF> 

W3C validator回報:

Error: {E201} rdf:resource not allowed as attribute here.[Line = 6, Column = 48] 

它應該是:

<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:ex="http://example.org/#" 
    xmlns:people="http://example.org/people/#" 
> 
<ex:person rdf:about="people:James_Browm" /> 
</rdf:RDF> 

一個RDF是一個三元組(主語,謂語,賓語)和@resource是一個主題的URI。