Sparql Wikidata端点中的路径查询?

Sparql Wikidata端点中的路径查询?,sparql,wikidata,Sparql,Wikidata,考虑以下代码段 ASK WHERE { wd:Q734774 wdt:P31 wd:Q3918. } 这个。我想使用此代码段中的一些。具体来说,我想限制路径中使用“wdt:P31”的次数。根据指南,这应该是正确的语法: ASK WHERE { wd:Q734774 wdt:P31{,3} wd:Q3918. } 但它给了我很多。有什么想法吗?可以让您用-- 为清楚起见,我将完整属性路径谓词(wdt:P31?/wdt:P31?/wdt:P31?)放在主语(wd:Q734774)和宾语(wd:Q

考虑以下代码段

ASK WHERE { wd:Q734774 wdt:P31 wd:Q3918. }
这个。我想使用此代码段中的一些。具体来说,我想限制路径中使用“wdt:P31”的次数。根据指南,这应该是正确的语法:

ASK WHERE { wd:Q734774 wdt:P31{,3} wd:Q3918. }
但它给了我很多。有什么想法吗?

可以让您用--


为清楚起见,我将完整属性路径谓词(
wdt:P31?/wdt:P31?/wdt:P31?
)放在主语(
wd:Q734774
)和宾语(
wd:Q3918
)之间的单独一行。后面的
请求
wdt:P31
谓词的一个或零个实例,
/
请求序列,因此此完整路径请求零个或一个或两个或三个实例的序列。

查询正确;它(相同的格式)在DBPedia中工作。也许wikidata上的解析器有什么问题?不,你错了。您阅读了属性路径语法的草稿(来自2010年)。对属性路径长度的限制没有使其成为最终版本(3年后):@AKSW I see。。。那我怎么能模仿这样的行为呢?(除了多次查询,以及一次查询固定路径长度之外,显然)您无法通过SPARQL有效地完成这项工作。这就是属性路径的限制。正如您所说,唯一的方法是手工构建查询。另一种选择是直接在SPARQL查询中计算路径长度,正如JohuaTaylor在这里建议的那样:但这可能无法扩展到大响应。深图形。@AKSW-不太正确。。。看看我的答案。谢谢@Talted的回答。不过有一个问题。假设
ASK其中{wd:Q734774 wdt:P31*wd:Q3918.}
返回true。如何查询将两个实体
wd:Q3918
wd:Q734774
连接在一起的路径的长度?这是一个非常不同的问题,需要。
ASK WHERE 
  { wd:Q734774 
       wdt:P31? / wdt:P31? / wdt:P31? 
          wd:Q3918 
  }