存在属性路径时,SPARQL查询不返回任何结果

时间:2014-10-17 14:09:00

标签: sparql

以下查询返回一些具有skos的结果:更广泛的设置为类别:历史记录

select ?subject
where 
{
      ?subject skos:broader category:History .
}

但是,将skos:broader替换为skos:broader+skos:broader*不会返回任何结果。为什么是这样?我希望ethier至少可以获取第一个查询中返回的结果。

我在这里使用SPARQL前端:http://dbpedia.org/sparql

1 个答案:

答案 0 :(得分:1)

Virtuoso(DBpedia使用的端点)具有一些特性,支持一些非标准语法(这常常让人们想知道为什么在DBpedia上工作的查询不能与其他库一起工作),并且(我认为) )不支持 SPARQL 1.1的所有。这可能是您遇到某些内部限制的情况。但是,您可以通过以下查询来估算所需的结果:

select ?category { ?category skos:broader{,7} category:History }

这仅遵循长度为7或更小的路径。属性路径的{m,n}表示法不是SPARQL 1.1的一部分,但是在早期草稿中,Virtuoso支持它。 方便用于限制回答查询时使用的资源,这是一个很好的用例。