首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的SPARQL查询引擎给出了不同的描述查询结果

不同的SPARQL查询引擎给出了不同的描述查询结果
EN

Stack Overflow用户
提问于 2014-01-22 02:55:00
回答 1查看 223关注 0票数 3

我在两个不同的引擎中尝试了一个SPARQL查询:

  1. Proge4.3- SPARQL查询选项卡
  2. 耶拿2.11.0

虽然查询是相同的,但这两个工具返回的结果是不同的。

我尝试了如下所示的DESCRIBE查询:

代码语言:javascript
复制
DESCRIBE ?x
WHERE { ?x :someproperty "somevalue"}

参与者的结果给出了以?x为主语/对象的元组,而来自耶拿的元组仅以?x为主语。

我的问题是:

  1. SPARQL的语法统一吗?
  2. 如果我想让DESCRIBE像在抗议者中一样工作,我应该在耶拿做什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 03:14:42

要回答第一个问题,是的,SPARQL语法是统一的,因为您在这两个工具中都使用了相同的查询。然而,我认为您实际上要问的是,这两种工具的结果是否不同?即SPARQL的语义是否是一致的?

DESCRIBE的情况下,是的,SPARQL规范显式地允许结果不同,也就是说,SPARQL的语义不一致,但这只是在DESCRIBE的情况下。

参见SPARQL规范的第16.4节(内容丰富),该规范声明如下:

查询模式用于创建结果集。DESCRIBE表单接受解决方案中标识的每个资源以及任何由IRI直接命名的资源,并通过获取一个可以来自任何可用信息(包括目标RDF数据集)的“描述”来组装一个RDF图。描述由查询服务确定。

其中的重要部分是最后几个句子,这些句子说描述是由查询服务决定的。这意味着,抗议者和耶拿的答案都是正确的,因为他们可以选择如何形成描述。

更改耶拿描述处理

要回答问题的第二部分,您可以通过实现自定义的DESCRIBE和相关的DescribeHandlerFactory来改变Jena处理DescribeHandlerFactory查询的方式。然后,您需要按以下方式注册工厂:

代码语言:javascript
复制
DescribeHandlerRegistry.get().set(new YourDescribeHandlerFactory());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21273303

复制
相关文章

相似问题

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