考虑以下代码段

ASK WHERE { wd:Q734774 wdt:P31 wd:Q3918. }


works fine in WikiData。我想在此代码段中使用某些path syntax。具体来说,我想限制路径中使用“ wdt:P31”的次数。根据准则,这应该是正确的语法:

ASK WHERE { wd:Q734774 wdt:P31{,3} wd:Q3918. }


但这给了我weird error messages。有任何想法吗?

最佳答案

final version of SPARQL 1.1 Property Paths可让您使用the following query进行此操作-

ASK WHERE
  { wd:Q734774
       wdt:P31? / wdt:P31? / wdt:P31?
          wd:Q3918
  }


为了清楚起见,我将完整的属性路径谓词(wdt:P31? / wdt:P31? / wdt:P31?)放在主题(wd:Q734774)和对象(wd:Q3918)之间的单独一行上。尾随的?要求wdt:P31谓词的一个或零个实例,而/要求一个序列,因此此完整路径要求一个零或一个或两个或一个序列。 -三个实例。

08-25 14:01