【问题标题】:How to merge two or more models in RDF4J (formerly Sesame)?如何在 RDF4J(原 Sesame)中合并两个或多个模型?
【发布时间】:2017-02-02 20:07:05
【问题描述】:

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

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

【问题讨论】:

    标签: java rdf jena sesame rdf4j


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多