Моя команда внедряет вариант отслеживания референтов Ceusters. В нашей реализации исходный URI объекта может быть изменен (на нечто, содержащее UUID), хотя ссылка на исходный URI всегда сохраняется.
Например:
:Joey rdf:type :person .
:New_York_City rdf:type :locality .
:Joey :hometown :New_York_City .
может стать:
:Joey :replacedWith :ABC123 .
:ABC123 rdf:type :person .
:New_York_City :replacedWith :FFF555 .
:FFF555 rdf:type :locality .
:ABC123 :hometown :FFF555 .
Я пишу несколько интеграционных тестов Scala, чтобы проверить, правильно ли наше программное обеспечение отслеживает референты.
В частности, я знаю, что должен ожидать этого CorrectPattern
:
:Joey :replacedWith ?person .
?person rdf:type :person .
:New_York_City :replacedWith ?locale .
?locale rdf:type :locality .
?person :hometown ?locale .
Но я не знаю, какими будут значения ?person
и ?locale
.
Я могу SPARQL ASK
за CorrectPattern
... это скажет мне, присутствует ли шаблон. Но я также хочу подтвердить, что больше ничего не было добавлено.
Я думал, что смогу CONSTRUCT { ?s ?p ?o }
, MINUS
из CorrectPattern
и проверить пустой результат, но Blazegraph говорит:
java.util.concurrent.ExecutionException: org.openrdf.query.MalformedQueryException: CONSTRUCT WHERE разрешает только шаблоны инструкций в предложении WHERE.
Любые идеи? Я хочу проверить, что весь тройной магазин содержит не больше и не меньше, чем CorrectPattern
, но я думаю, что CorrectPattern
должен содержать переменные.
SELECT
, чтобы использовать расширенные функции. - person UninformedUser   schedule 23.06.2017select
, если я хочу вставить данные, содержащие функцию SPARQL, например now()? Я не могу заставить работать операторinsert data
, содержащийbind(now() as ?insertDate)
. - person Mark Miller   schedule 26.06.2017