Как отправить запросы SPARQL через curl (через HTTP) в Openlink Virtuoso и получить результаты в формате JSON - PullRequest
0 голосов
/ 01 июля 2019

Я ищу обширную sparql-graph-crud документацию или другой механизм, который подробно описывает, как отправлять запросы в конечную точку Openlink Virtuoso SPARQL.

Короче говоря, я хотел бы узнать, как отправлять запросы SPARQL (с предложениями WHERE) через curl (через HTTP) в Openlink Virtuoso и получать результаты в формате JSON.

Например, я хотел бы отправить запрос, например SELECT * FROM <http://www.example.com/ABC> where { ?s ?p ?o } LIMIT 100, в Openlink Virtuoso по адресу localhost.

Пример (ниже), представленный на странице OpenLink Virtuoso, недостаточен для моих запросов.

curl --verbose --url "http://localhost:8890/sparql-graph-crud?graph-uri=urn:graph:update:test:post"

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Следуя совету @ TallTed , я составил следующее решение.

date;time curl -X POST "http://localhost:8890/sparql" \
   -H "Content-Type: application/x-www-form-urlencoded" \
   -H "Accept:application/sparql-results+json" \
   --data-urlencode 'format=json' \
   --data-urlencode 'default-graph-uri=http://www.example.com/ABC' \
   --data-urlencode 'query=SELECT * FROM <http://www.example.com/ABC> WHERE { ?s ?p ?o } LIMIT 5' \
   --write-out '%{url_effective};%{http_code};%{time_total};%{time_namelookup};%{time_connect};%{size_download};%{speed_download}\n';date;
0 голосов
/ 01 июля 2019

Как указано в документации Virtuoso , конечная точка /sparql-graph-crud предназначена специально для HTTP-протокола SPARQL 1.1 Graph Store . Если вы просто хотите выполнить SELECT запросов, подобных вашему примеру, вы можете просто использовать конечную точку /sparql, с &query= плюс экранированную URI строку вашего запроса и &format=application/rdf+json в URI, чтобы получить результаты в виде JSON .

Можно использовать форму запроса Virtuoso /sparql в веб-браузере (например, http://localhost:8890/sparql)), чтобы отправить запрос с выводом по умолчанию (HTML), а затем настроить полученный URI, просто изменив &format= аргумент, как -

curl --verbose --url "http://localhost:8890/sparql-graph-crud?default-graph-uri=&query=SELECT+*+FROM+%3Chttp%3A%2F%2Fwww.example.com%2FABC%3E+where+%7B+%3Fs+%3Fp+%3Fo+%7D+LIMIT+100&format=application/rdf+json&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on&run=+Run+Query+"

Также обратите внимание, что вы можете загрузить вышеуказанный URI, изменив только &query= на &qtxt=, чтобы увидеть всю форму, заполненную в вашем браузере .

Для довольно обширной документации есть веб-сайт Virtuoso и Руководство по продукту Virtuoso .

Форум сообщества OpenLink и Список рассылки Virtuoso Users также является хорошим местом для поиска людей (включая многих разработчиков Virtuoso), которые особенно хорошо осведомлены о Virtuoso.

...