Rdf 合并两个Jena模型

Rdf 合并两个Jena模型,rdf,jena,Rdf,Jena,我的目标是创建两个模型m1和m2:m1从ActiveMQ读取消息,m2使用SPARQL查询从数据库提取附加信息。然后我想把这两个模型合并成一个模型。 模型的语法如下所示: <http://purl.org/dc/elements/1.1/records/teste> <http://purl.org/dc/elements/1.1/creator> ?o0. ?o0。 ?O0A。 我怎样才能合并它们,使结果的模型是这样的 <http://purl.org

我的目标是创建两个模型m1和m2:m1从ActiveMQ读取消息,m2使用SPARQL查询从数据库提取附加信息。然后我想把这两个模型合并成一个模型。 模型的语法如下所示:

<http://purl.org/dc/elements/1.1/records/teste>   <http://purl.org/dc/elements/1.1/creator>  ?o0.
?o0。
?O0A。
我怎样才能合并它们,使结果的模型是这样的

<http://purl.org/dc/elements/1.1/records/teste>   <http://purl.org/dc/elements/1.1/creator>  ?o0.
?o0  a   <http://purl.org/dc/elements/1.1/person>.
?o0。
?O0A。
在“编辑到”中,我注意到模型只是三元组的集合,您可以将它们添加到一起以合并它们。在本例中,您似乎有一些想要加入模型的条件。从yoru问题的措辞来看,两种模型中都使用了一组一致的URI(即:
?o0

如果确实存在这样一个自然的标准来连接两个模型,那么没有什么可以阻止您使用两个模型的并集来回答您的问题:

final Model amqp = ModelFactory.createDefaultModel();
// do things to populate this from your AMQP store
final Model dbresult = ModelFactory.createDefaultModel();
// do things to populate this from your query

final Model union = ModelFactory.createUnion(amqp, dbresult);
此外,由于RDF数据模型仅将模型定义为一组RDF
语句
s,因此您可以将这两个模型添加到一起

final Model amqp = ModelFactory.createDefaultModel();
final Model dbresult = ModelFactory.createDefaultModel();

final Model union = ModelFactory.createDefaultModel();
union.add(amqp);
union.add(dbresult)
如果URI不对齐,那么您将需要手动定义一些条件来加入它们。您要么需要编写对该标准敏感的自定义代码,并基于该标准手动编写新模型,要么需要为它们的等价性定义一些本体理性,并使用推理器

final Model amqp = ModelFactory.createDefaultModel();
final Model dbresult = ModelFactory.createDefaultModel();

final Model union = ModelFactory.createDefaultModel();
union.add(amqp);
union.add(dbresult)