我試圖合併2個現有的RDF/XML模型。我嘗試了不同的解決方案:將模型添加到現有模型中RDF
model1.union(model2)
model1.add(model2) //adding a complete model
model1.add(model2.listStatements())
我在Java中使用耶拿。
我從第二個模型中刪除了包絡標籤(如Equipment
),但我總是有同樣的問題:結果模型沒有真正合並:它包含每個添加模型的包絡。例如,我有2個文件,但有不同的端點。他們應該合併有一個文件,它包含了所有的數據:
bookid123在endpointA
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="http://www.w3schools.com/rdf/">
<rdf:Description rdf:about="http://endpointA/bookid123">
<si:title>W3Schools.com</si:title>
</rdf:Description>
</rdf:RDF>
bookid123在endpointB
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="http://www.w3schools.com/rdf/">
<rdf:Description rdf:about="http://endpointB/bookid123">
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
至於結果,我是這樣的:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="http://www.w3schools.com/rdf/">
<rdf:Description rdf:about="http://endpointA/bookid123">
<si:title>W3Schools.com</si:title>
</rdf:Description>
<rdf:Description rdf:about="http://endpointB/bookid123">
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
但我需要像th是:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="http://www.w3schools.com/rdf/">
<rdf:Description rdf:about="http://couldbeanything/bookid123">
<si:title>W3Schools.com</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
難道還有比得到的model1
每個語句,將其添加到model2
一個更聰明的辦法,除了因爲源-URI的它們是不同的語句?
兩者都不這些片段是有效的RDF/XML,所以我懷疑第一個是你得到的,我懷疑第二個是你想要的!您可能已經知道RDF是用主謂謂詞對象三元組來定義的,所以如果您說出每個模型中的三倍,以及最終模型中您想要的三倍,這將有所幫助。談論XML標籤只是混淆了事情。另外,你在使用什麼庫?我猜這是Apache Jena,但是那裏有很多RDF庫。 – cygri
我編輯了我的示例並添加了更多信息。你說得對,我正在Java項目中使用jena庫。 – wassermine