GraphDB Free 8.8 Sparql INSERT возвращает 400. INSERT не поддерживается? - PullRequest
0 голосов
/ 13 февраля 2019

Я использую GraphDB Free и пытаюсь вставить некоторые тройки в магазин с помощью sparql.Запрос выглядит как простой INSERT:

//Some Prefixes
INSERT DATA { subject predicate object }

Я использовал Postman для отправки запроса в теле запроса к конечной точке SPARQL и dotNetRdf для отправки запроса к конечной точке SPARQL в коде.

Я получаю следующую ошибку обоими вышеперечисленными способами:

MALFORMED QUERY: Encountered " "insert" "INSERT "" at line 5, column 1.
Was expecting one of:
    "base" ...
    "prefix" ...
    "select" ...
    "construct" ...
    "describe" ...
    "ask" ...

При отправке одинаковых INSERT DATA {...} в Workbench в форме SPARQL работает, как и ожидалось, поэтому INSERT в порядке.

В документации Соответствие GraphDB Sparql упоминается, что поддерживается обновление SPARQL 1.1 (включая INSERT DATA).Разве конечная точка Sparql не поддерживает упомянутую спецификацию обновления SPQQRL 1.1?Все еще просматривал документацию, не уверен, что я пропустил ...

1 Ответ

0 голосов
/ 14 февраля 2019

GraphDB использует RDF4J REST API - это расширение протокола SPARQL 1.1 и протокола хранилища графиков SPARQL.Конечная точка для операций обновления SPARQL отличается от конечной точки для запросов.Вам необходимо отправить обновление по адресу:

http://<host>/repositories/<repId>/statements

вместо просто:

http://<host>/repositories/<repId>

Также: запросы отправляются с использованием параметра ?query=.Обновления, однако, используют параметр ?update=.

Пример примера запроса обновления SPARQL приведен в документации REST API.

...