2

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

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

4

1 回答 1

3

在 Eclipse RDF4J 中,模型是一个 Java 集合(类似于 aSet或 a 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);
于 2017-02-02T21:30:39.667 回答