通过 GeoNames ID 查询维基数据

Query Wikidata by GeoNames ID

我尝试通过 GeoNames ID 查询维基数据中的城市。

我可以看到 属性 的 id 是 P1556: https://www.wikidata.org/wiki/Property:P1566

所以我对柏林的查询(作为示例)是:

SELECT * WHERE {
   ?id wdt:P1566 wd:2950157
   }

但我没有匹配到。

我做错了什么?

Wikidata 上的一个简单试错结果如下:不需要 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" .
    }
 }