2
在Apache Jena中,例如,只需调用model1.add(model2)
就可以将一个模型追加到另一个模型。如何在RDF4J(以前称为芝麻)中合并两个或更多模型?
如果您将模型解释为一组语句,RDF4J也可以这样做吗?
在Apache Jena中,例如,只需调用model1.add(model2)
就可以将一个模型追加到另一个模型。如何在RDF4J(以前称为芝麻)中合并两个或更多模型?
如果您将模型解释为一组语句,RDF4J也可以这样做吗?
在Eclipse RDF4J中,Model是Java Collection(类似于Set
或List
)。所以你可以使用标准的Java收集操作。要附加两个模型,只需执行:
model1.addAll(model2);
请注意,此操作只附加语句。如果model2
包含您希望复制的任何名称空间声明,则必须单独执行该操作。例如,有model2
空间声明简单复制,在model1
覆盖任何现有的宣言:
model2.getNamespaces().stream().forEach(model1::setNamespace);
或者,如果你只是想对那些前缀这model1
没有申报尚未复制:
model2.getNamespaces().stream()
.filter(ns -> !model1.getNamespace(ns.getPrefix()).isPresent())
.forEach(model1::setNamespace);