Какой URI использовать для репозитория Sesame при выполнении запроса SPARQL ADD

Я пытаюсь скопировать данные из репозитория Sesame в другой тройной магазин. Я попробовал следующий запрос:

ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/rep_name> TO <http://dydra.com/username/rep_name>

Запрос выполняется с выводом как «истина», но тройки не добавляются.

Итак, я попробовал аналогичный запрос, чтобы узнать, могу ли я переместить данные из одного репозитория Sesame в другой с помощью SPARQL Update:

ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/source_rep> TO <http://my.ip.ad.here:8080/openrdf-workbench/repositories/destination_rep>

Опять же, запрос выполняется, но тройки не добавляются.

Что я здесь делаю неправильно? Подходит ли URL-адрес, который я использую для репозиториев, или нужно что-то еще изменить?


person kurious    schedule 24.12.2015    source источник


Ответы (1)


Операция SPARQL ADD копирует именованные графы (или "контексты", как они называются в Sesame). Обновление работает с одним репозиторием (тот, в котором вы его выполняете) — оно не копирует данные из одного репозитория в другой.

Чтобы скопировать данные из одного репозитория в другой через обновление SPARQL, вам нужно использовать операцию INSERT с предложением SERVICE:

INSERT { ?s ?p ?o }
WHERE { 
   SERVICE <http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name> { ?s ?p ?o }
}

(обратите внимание, что приведенное выше не сохранит информацию о контексте/именованном графике из исходного репо)

Кроме того, вы можете просто скопировать через API или через Workbench, используя http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name/statements в качестве URL-адреса RDF-файла, который вы хотите загрузить. Подробнее об этом в мой ответ на этот связанный вопрос< /а>.

person Jeen Broekstra    schedule 24.12.2015