问题#1
找我使用的人
SELECT ?item WHERE {
?item (wdt:P31/wdt:P279*) wd:Q5.
}
但要找人还活着我想排除人们没有在这个属性570,509,20中定义一个。我该怎么办?
问题#2
为了找到我使用的网球锦标赛
SELECT ?item
WHERE
{
?item wdt:P31 wd:Q13219666.
}
不幸的是,有些锦标赛没有直接识别,因此使用:
SELECT ?item
WHERE
{
?item wdt:P31/wdt:P279 wd:Q13219666.
}
然而,我也回到了锦标赛的版本,比如'2000 wimbledon','2001 wimbledon'等,而我想只获得'wimbledon'。我能怎么做?
谢谢
正如评论中所提供的......
FILTER NOT EXISTS {?item wdt:P570|wdt:P509|wdt:P20 ?o}
这是数据质量问题。这appears to be a workaround:
SELECT DISTINCT ?item ?itemLabel WHERE { ?item wdt:P31?/wdt:P279? wd:Q13219666 . FILTER NOT EXISTS { ?item wdt:P585 [] } SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } } # uncomment the following line if desired # VALUES (?item) { (wd:Q41520) }