Как объединить две или более модели в RDF4J (ранее Sesame)?

В Apache Jena есть способ добавить одну модель к другой, например, просто вызвав model1.add(model2).

Возможно ли это также с RDF4J, если вы интерпретируете модель просто как набор утверждений?


person phly    schedule 02.02.2017    source источник


Ответы (1)


В Eclipse RDF4J используется модель. коллекция Java (похожая на 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);
person Jeen Broekstra    schedule 02.02.2017