2
Apache Jenaには、例えば、model1.add(model2)
を呼び出すだけで、あるモデルを別のモデルに追加する方法があります。RDF4J(旧ゴマ)で2つ以上のモデルをマージするにはどうすればよいですか?
RDF4Jでは、モデルを単に文のセットとして解釈することも可能ですか?
Apache Jenaには、例えば、model1.add(model2)
を呼び出すだけで、あるモデルを別のモデルに追加する方法があります。RDF4J(旧ゴマ)で2つ以上のモデルをマージするにはどうすればよいですか?
RDF4Jでは、モデルを単に文のセットとして解釈することも可能ですか?
Eclipse RDF4Jでは、ModelはJavaコレクション(Set
またはList
に似ています)です。したがって、標準のJavaコレクション操作を使用できます。 2つのモデルを追加するには、次のようにします。
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);