我尝试通过GeoNames ID查询Wikidata的城市。
我可以看到该属性的ID是P1556:https://www.wikidata.org/wiki/Property:P1566
所以我对柏林的查询(例如)是:
SELECT * WHERE {
?id wdt:P1566 wd:2950157
}
但我没有得到一场比赛。
我做错了什么?
答案 0 :(得分:4)
对维基数据进行简单的反复试验会产生以下结果:不需要wd:2950157
,它是文字,因此请仅使用"2950157"
。使用以下内容(SERVICE
用于显示城市名称):
编辑:直截了当的方法:
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 "2950157".
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
编辑结束
使用BIND或FILTER
SELECT ?id ?idLabel WHERE {
Bind ("2950157" as ?x)
?id wdt:P1566 ?x.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
或(较慢的选项)使用FILTER
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 ?x.
filter (?x = "2950157")
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}