我试图合并 2 个现有的 RDF/XML 模型。我尝试了不同的解决方案:
model1.union(model2)
model1.add(model2) //adding a complete model
model1.add(model2.listStatements())
我在 Java 中使用 Jena。
我从第二个模型中删除了包络标签(如Equipment
),但我总是遇到同样的问题:生成的模型并没有真正合并:它包含每个添加模型的包络。例如,我有 2 个文档,但端点不同。应该将它们合并为一个包含所有数据的文档:
端点 A 中的 bookid123
<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>
端点 B 中的 bookid123
<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>
但我需要这样的东西:
<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 而不同的语句?