首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于RDF4J SPARQLRepository的查询标记逻辑

基于RDF4J SPARQLRepository的查询标记逻辑
EN

Stack Overflow用户
提问于 2017-01-13 14:31:46
回答 2查看 248关注 0票数 1

我尝试通过sparql端点和rdf4j(2.1.4)中的sparql存储库查询marklogic服务器(version 8),但是marklogic端点似乎不接受这些sparql查询。

代码示例:

代码语言:javascript
复制
String sparqlEndpoint = "http://url/v1/graphs/sparql";
SPARQLRepository repo = new SPARQLRepository(sparqlEndpoint);
repo.initialize();
repo.getConnection().hasStatement(null, null, null, false);

这将导致以下错误:

"errorResponse":{"statusCode":400,“状态”:“坏请求”,"messageCode":"REST-UNSUPPORTEDPARAM","message":"REST-UNSUPPORTEDPARAM:(err: for 0000)端点不支持查询参数:无效参数: queryLn,推断请求“}}

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 23:20:31

正如大卫·恩尼斯在回答中所解释的那样,问题是RDF4J的SPARQL端点客户端在其请求中发送了几个参数,这些参数不是W3C SPARQL 1.1协议的一部分;它们是RDF4J REST ( SPARQL协议的扩展)的一部分。

虽然大多数SPARQL端点实现只是忽略不属于标准的参数(或记录警告),但MarkLogic实现了更严格的策略,并且干脆拒绝响应此类请求。

在您的情况下,一个解决方案是升级到RDF4J 2.2。这个新版本实现了改进#721,它确保只向非RDF4JSPARQL端点发送符合标准的参数,并且(假设MarkLogic是符合标准的),这将解决与MarkLogic端点通信中的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-01-13 19:51:46

MarkLogic不接受名为queryLn (查询语言)的参数。

这些语言是SARQL和StructuredQueries,并使用不同的参数传递这两种语言。

请参阅这里的文档:https://docs.marklogic.com/REST/GET/v1/graphs/sparql

我建议您找到一种方法来抑制进行调用的代码中的queryLn参数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41636896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档