1

我正在寻找sparql-graph-crud详细说明如何向 Openlink Virtuoso SPARQL 端点提交查询的详细文档或其他机制。

简而言之,我想学习如何WHERE通过(通过 HTTP)向 Openlink Virtuoso 发送 SPARQL 查询(带子句)curl并以 JSON 格式获取结果。

例如,我想SELECT * FROM <http://www.example.com/ABC> where { ?s ?p ?o } LIMIT 100向 Openlink Virtuoso at提交查询localhost

OpenLink Virtuoso 页面上提供的示例(如下)不足以满足我的查询。

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

4

2 回答 2

0

Virtuoso 文档中所述,/sparql-graph-crud端点专门用于SPARQL 1.1 图形存储 HTTP 协议。如果您只想像示例一样执行SELECT查询,您可以简单地使用/sparql端点,&query=加上查询的 URI 转义字符串,并&format=application/rdf+json在 URI 中以 JSON 形式获取结果。

/sparql在 Web 浏览器(即http://localhost:8890/sparql )中使用 Virtuoso查询表单提交查询请求默认 (HTML) 输出,然后仅通过更改&format=参数来调整生成的 URI,这可能是指导性的,作为 -

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 用户邮件列表也是寻找特别了解 Virtuoso 的人(包括许多 Virtuoso 开发人员)的好地方。

于 2019-07-01T15:14:22.537 回答
0

根据@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;
于 2019-07-02T07:31:11.213 回答