查询MarkLogic 7 SPARQL端点

时间:2014-07-22 15:50:01

标签: curl sparql marklogic

这适用于查询Virtuoso SPARQL端点:

  

curl --url [http host port] / sparql --data-urlencode query@all.q

all.q就是这样:

  

选择*其中{?s?p?o}

这不能用于查询MarkLogic 7 SPARQL端点(我正在使用 MarkLogic 7语义开发人员指南的5.3.6.1中的示例,第112页,作为我的指南) :

  

curl -H“Content-type:application / sparql-query”-H“接受:   application / sparql-results + xml“--data-binary'@。/ all.q'[http host   端口] / V1 /图形/ SPARQL

结果是:

<sparql xmlns="http://www.w3.org/2005/sparql-results#"><head/><results/></sparql>

查询在MarkLogic 7 qconsole 中运行良好。文档是否与软件略微不同步,或者我做错了什么?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

您使用的是哪个版本的MarkLogic?

您确定您的应用服务器已连接到正确的数据库吗?

安全性怎么样?您可能正在以管理员用户身份运行qconsole。 curl请求将作为您指定的任何用户运行,可以通过curl --digest -u或通过应用服务器配置进行身份验证和默认用户。如果该用户没有权限查看数据,则可以解释空结果。例如,您是否已将应用服务器配置为以nobody运行所有请求?

我能够在7.0-3实例上设置REST端点并从curl访问它。我使用https://docs.marklogic.com/sem:graph-insert中的示例来插入一些数据。通过qconsole和curl使用您的查询显示相同的数据。卷曲请求的结果是:

<?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="s"/> <variable name="p"/> <variable name="o"/> </head> <results> <result> <binding name="s"> <uri>urn:isbn:9780080540160</uri> </binding> <binding name="p"> <uri>http://purl.org/dc/elements/1.1/title</uri> </binding> <binding name="o"> <literal datatype="http://www.w3.org/2001/XMLSchema#string">Query XML,XQuery, XPath, and SQL/XML in context</literal> </binding> </result> </results> </sparql>

或者在JSON中,使用application/sparql-results+json

{ "head": { "vars": [ "s", "p", "o" ] }, "results": { "bindings": [ { "s": { "type": "uri", "value": "urn:isbn:9780080540160" }, "p": { "type": "uri", "value": "http:\/\/purl.org\/dc\/elements\/1.1\/title" }, "o": { "type": "literal", "value": "Query XML,XQuery, XPath, and SQL\/XML in context", "datatype": "http:\/\/www.w3.org\/2001\/XMLSchema#string" } } ] } }