2014-01-27 97 views
1

我怎麼能通過代碼嵌套屬性生成?像這樣:耶拿嵌套屬性

<geo:Departement rdf:about="DEP_05"> 
    <geo:code_departement>05</geo:code_departement> 
    <geo:subdivision> 
     <geo:Arrondissement rdf:about="ARR_051"> 
      <geo:code_arrondissement>051</geo:code_arrondissement> 
      <geo:nom xml:lang="fr">Briançon</geo:nom> 
     </geo:Arrondissement> 
    </geo:subdivision> 
    <geo:subdivision> 
     <geo:Arrondissement rdf:about="ARR_052"> 
      <geo:code_arrondissement>052</geo:code_arrondissement> 
      <geo:nom xml:lang="fr">Gap</geo:nom> 
     </geo:Arrondissement> 
    </geo:subdivision> 
</geo:Departement> 

我的所有屬性(使用「createProperty」創建)都處於同一級別。

回答

3

你不清楚你是什麼意思的子屬性。

主語謂語對象

您的實例數據,包括:認識到,RDF是基於表單的標記,指示,邊稱爲三元組基於圖形的數據表示是非常重要的三倍

DEP_05 rdf:type     geo:Department 
DEP_05 geo:code_department  "05" 
DEP_05 subdivision    ARR_O51 
ARR_051 rdf:type    geo:Arrondissement 
ARR_051 geo:code_arrondissement "051" 

RDF/XML提供了很多不同的方式來寫相同的圖形。例如,寫你的數據(我已經添加了適當的前綴)的一個方法是:

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:geo="https://stackoverflow.com/q/21383685/1281433/"> 
    <geo:Departement rdf:about="https://stackoverflow.com/q/21383685/1281433/DEP_05"> 
    <geo:code_departement>05</geo:code_departement> 
    <geo:subdivision> 
     <geo:Arrondissement rdf:about="https://stackoverflow.com/q/21383685/1281433/ARR_051"> 
     <geo:code_arrondissement>051</geo:code_arrondissement> 
     <geo:nom xml:lang="fr">Briançon</geo:nom> 
     </geo:Arrondissement> 
    </geo:subdivision> 
    <geo:subdivision> 
     <geo:Arrondissement rdf:about="https://stackoverflow.com/q/21383685/1281433/ARR_052"> 
     <geo:code_arrondissement>052</geo:code_arrondissement> 
     <geo:nom xml:lang="fr">Gap</geo:nom> 
     </geo:Arrondissement> 
    </geo:subdivision> 
    </geo:Departement> 
</rdf:RDF> 

的另一種方式,這恰好使用「快捷方式」是RDF/XML允許的少,就是:

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:geo="https://stackoverflow.com/q/21383685/1281433/" > 
    <rdf:Description rdf:about="https://stackoverflow.com/q/21383685/1281433/ARR_052"> 
    <rdf:type rdf:resource="https://stackoverflow.com/q/21383685/1281433/Arrondissement"/> 
    <geo:code_arrondissement>052</geo:code_arrondissement> 
    <geo:nom xml:lang="fr">Gap</geo:nom> 
    </rdf:Description> 
    <rdf:Description rdf:about="https://stackoverflow.com/q/21383685/1281433/ARR_051"> 
    <rdf:type rdf:resource="https://stackoverflow.com/q/21383685/1281433/Arrondissement"/> 
    <geo:code_arrondissement>051</geo:code_arrondissement> 
    <geo:nom xml:lang="fr">Briançon</geo:nom> 
    </rdf:Description> 
    <rdf:Description rdf:about="https://stackoverflow.com/q/21383685/1281433/DEP_05"> 
    <rdf:type rdf:resource="https://stackoverflow.com/q/21383685/1281433/Departement"/> 
    <geo:code_departement>05</geo:code_departement> 
    <geo:subdivision rdf:resource="https://stackoverflow.com/q/21383685/1281433/ARR_051"/> 
    <geo:subdivision rdf:resource="https://stackoverflow.com/q/21383685/1281433/ARR_052"/> 
    </rdf:Description> 
</rdf:RDF> 

雖然這些是不同的XML文檔,它們是同一個RDF圖的序列化。還有非XML序列化。在龜系列化,你的數據是:

@prefix geo: <https://stackoverflow.com/q/21383685/1281433/> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 

geo:ARR_051 a     geo:Arrondissement ; 
     geo:code_arrondissement "051" ; 
     geo:nom     "Briançon"@fr . 

geo:DEP_05 a     geo:Departement ; 
     geo:code_departement "05" ; 
     geo:subdivision  geo:ARR_051 , geo:ARR_052 . 

geo:ARR_052 a     geo:Arrondissement ; 
     geo:code_arrondissement "052" ; 
     geo:nom     "Gap"@fr . 

重要的是要認識到,這些都是相同圖是非常重要的。 RDF處理工具不關心你使用哪一個。也就是說,使用更易讀的格式會更好,所以我傾向於選擇Turtle。如果您仍然需要使用RDF/XML,那麼您可以使用「RDF/XML-ABBREV」語言來序列化模型。爲此,請指定"RDF/XML-ABBREV"作爲參數Model.write(OutputStream out, String lang)lang參數。根據JavaDoc:

write

Model write(OutputStream out, String lang) 

寫此模型的序列化表示形式在指定的語言。

模型的寫入語言由參數lang 指定。預定義的值是「RDF/XML」,「RDF/XML-ABBREV」, 「N-TRIPLE」,「TURTLE」,(和「TTL」)和「N3」。由null表示的缺省值 是「RDF/XML」。

參數:

  • 了 - 到了RDF寫入
  • 郎輸出流 - 輸出語言

返回:

  • 這型號

相關問題

一些相關的問題,以前曾在這裏出現,你可能會發現他們中的一些有幫助的。我很快發現的是:

+0

感謝Joshua爲完整的答案。事實上,我有3個屬性,每個屬性可用於不同的日期,我想按日期分組。但是當你開始談論三倍時,我意識到這確實不是一個正確的RDF思維方式。所以我工廠化處於同一級別的一切: ... ... ... ... ...等等。不漂亮,但高效。 – paradise

+0

@paradise我不得不承認,我不太清楚你的解決方案是什麼。把RDF三元組想象成短句。如果你有兩種以上的關係,你可以看看[定義語義網上的N元關係](http://www.w3.org/TR/swbp-n-aryRelations/)。 –

+0

我需要什麼: 「」 - >於2002年,2008年和2010年 我如何做的: 「 」 不是可擴展的,但是這是不是目的。 – paradise