Отправка запросов SPARQL из C # с использованием stardog: «не удается выполнить запрос на обновление в конечной точке чтения» - PullRequest
0 голосов
/ 04 декабря 2018

, как следует из названия, я пытаюсь создать тройки, используя SPARQL-запросы из visualstudio.Использование тех же самых запросов SPARQL внутри stardog studio работает, но когда я пытаюсь отправить их из visualstudio с помощью stardogconnector, я получаю следующую ошибку:

Необработанное исключение типа 'VDS.RDF.Query.RdfQueryExceptionв dotNetRDF.dll произошла дополнительная информация: при запросе к хранилищу произошла ошибка HTTP (неверный запрос HTTP 400).Store вернул следующее сообщение об ошибке: {"message": "Невозможно выполнить запрос на обновление для конечной точки чтения"}. См. Вышеупомянутую строку состояния или внутреннее исключение для получения дополнительной информации.

Вот код:

StardogConnector stardog = new StardogConnector("http://localhost:5820", "dbtest", "admin", "password");
stardog.Begin();
string query = "INSERT DATA { <http://example/book1> dc:title \"test\"}";
stardog.Query(query);
stardog.Commit();

Как я уже сказал, вставка одного и того же запроса в stardog studio дает правильный результат.База данных в сети, соединение работает (пароль и т. Д. Правильный), ... Я просто не знаю, что означает ошибка.Кто-нибудь может помочь?Я не нахожу много онлайн об этой ошибке.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Когда query включает INSERT, UPDATE или другое запись действие, вы должны изменить stardog.Query(query); (только для чтения) на stardog.Update(query); (по-видимому, только для записи).

0 голосов
/ 04 декабря 2018

Похоже, что dotNetRdf отправляет все запросы к конечной точке /myDb/query, однако начиная с Stardog 5.x вместо этого все запросы на обновление SPARQL должны отправляться на конечную точку /myDb/update.Официальные инструменты Stardog (Studio, stardog.js и т. Д.) Были обновлены в то время.

Не стесняйтесь задавать любые другие вопросы по адресу community.stardog.com.

...