如何在RDF4J(以前的芝麻)中合并两个或更多模型?

时间:2017-02-02 20:07:06

标签: java rdf jena sesame rdf4j

在Apache Jena中,有一种方法可以通过调用model1.add(model2)将一个模型附加到另一个模型。

如果您将模型解释为一组语句,是否也可以使用RDF4J?

1 个答案:

答案 0 :(得分:1)

在Eclipse RDF4J中,Model是Java集合(类似于SetList)。因此,您可以使用标准的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);