以下查询返回一些具有skos的结果:更广泛的设置为类别:历史记录
select ?subject
where
{
?subject skos:broader category:History .
}
但是,将skos:broader
替换为skos:broader+
或skos:broader*
不会返回任何结果。为什么是这样?我希望ethier至少可以获取第一个查询中返回的结果。
我在这里使用SPARQL前端:http://dbpedia.org/sparql
答案 0 :(得分:1)
Virtuoso(DBpedia使用的端点)具有一些特性,支持一些非标准语法(这常常让人们想知道为什么在DBpedia上工作的查询不能与其他库一起工作),并且(我认为) )不支持 SPARQL 1.1的所有。这可能是您遇到某些内部限制的情况。但是,您可以通过以下查询来估算所需的结果:
select ?category { ?category skos:broader{,7} category:History }
这仅遵循长度为7或更小的路径。属性路径的{m,n}表示法不是SPARQL 1.1的一部分,但是在早期草稿中,Virtuoso支持它。 方便用于限制回答查询时使用的资源,这是一个很好的用例。