2012-10-04 87 views
0

我知道我做錯了什麼,但我不知道是什麼... 我正在嘗試使用Data Cube詞彙表生成RDF文件。Jena,RDF,Data Cube詞彙表

的事情是,輸出應該是這樣的:

<qb:DataSet rdf:about="about..."> 
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">label.</rdfs:label> 
<dcterms:subject rdf:resource="http://purl.org/linked-data/sdmx/2009/subject#2.2"/> 

...

但是,我得到的是:

<qb:DataSet rdf:about="about..."> 
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">.</rdfs:label> 
    <dcterms:subject> 
     <rdf:Thing rdf:about="http://purl.org/linked-data/sdmx/2009/subject#2.2"/> 
    </dcterms:subject> 

我公司可提供的代碼示例,但這可能夠了......問題不應該那麼難。我需要的資源與其他資源......

最佳, Srecko

回答

4

這兩種形式的RDF基本上都是相同的。第二種形式包含一些附加信息,即額外三重:

<http://purl.org/linked-data/sdmx/2009/subject#2.2> rdf:type rdf:Thing . 

這不會傷害,雖然Thing不在RDF命名空間的標準術語 - 你可能意味着owl:Thing。 RDF的一般經驗法則是不用擔心輸出的確切語法形式,因爲給定的RDF模型可能有許多不同的序列化,它們都解析到完全相同的三元組集合,因此在語義上具有相同的含義。 XML序列化尤其如此。除非你出於某種原因需要XML(例如,用你的工具鏈的另一部分進行處理),否則我會建議使用Turtle輸出序列化。它更緊湊,更人性化。

如果您需要關於您生成的模型的更具體的建議,如果您發佈代碼,這將有所幫助。

順便說一句,如果你需要XML,這樣就可以與其他XML工具處理它,你可能會想自己生成的輸出,而不是依賴於Model.write()。這是因爲模型內容的細微變化可能會導致write生成的XML發生不平凡的更改。這可能會使編寫XSLT樣式表等成爲一大難題。更好地生成自己的序列化,因爲那樣你就可以使用你對特定領域模型的瞭解來更好地控制輸出。

+0

謝謝伊恩。我知道這兩種形式基本上是相同的,但有點令人沮喪......我在做同樣的事情,產出也不同。 我會嘗試實現我自己的序列化。 – Srecko

+1

以特定形式使用XML輸出的用例是什麼?我應該提到關於XML編寫器選項的文檔:http://jena.apache.org/documentation/io/iohowto.html#advanced-rdfxml-output –