0
我嘗試查詢維基數據對於一個城市通過了該國地名ID。查詢維基數據由GeoNames的ID
我可以看到屬性的id爲P1556:https://www.wikidata.org/wiki/Property:P1566
所以我對柏林查詢(作爲一個例子)是:
SELECT * WHERE {
?id wdt:P1566 wd:2950157
}
但我沒有得到匹配。
我在做什麼錯?
我嘗試查詢維基數據對於一個城市通過了該國地名ID。查詢維基數據由GeoNames的ID
我可以看到屬性的id爲P1556:https://www.wikidata.org/wiki/Property:P1566
所以我對柏林查詢(作爲一個例子)是:
SELECT * WHERE {
?id wdt:P1566 wd:2950157
}
但我沒有得到匹配。
我在做什麼錯?
維基數據的簡單試驗和錯誤結果如下:不需要wd:2950157
,它是一個字面值,所以只能使用"2950157"
。使用以下(SERVICE
來展現城市的名稱):
編輯:的簡單方法:
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 "2950157".
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
編輯
末使用BIND或過濾
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" .
}
}
爲什麼你使用'BIND'和'的FILTER'而不是用來把文字的三重模式的對象位置最明顯的使用? – AKSW
你說得對,我馬上修改它!我習慣於從耶拿工作,我總是需要查詢中的插件點。 –
@MedianHilal,你可以使用'VALUES',而不是'BIND'或'FILTER' ... –