这适用于查询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 中运行良好。文档是否与软件略微不同步,或者我做错了什么?
感谢您的任何建议。
答案 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"
}
}
]
}
}