考虑以下代码段
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
谓词的一个或零个实例,而/
要求一个序列,因此此完整路径要求一个零或一个或两个或一个序列。 -三个实例。