按Wikidata中的类型过滤属性值

时间:2019-08-01 16:48:00

标签: sparql wikidata

我正在尝试建立一个SPARQL查询,该查询列出指定国家的博物馆。我的主要目标是找到博物馆所在的城市。

我是wikidata的新手,刚刚开始。 到目前为止,我已经使用属性?located_in_the_administrative_territorial_entity来查找城市。问题是,对于许多国家来说,这不仅给了我城市,而且给了我州,例如在瑞士,它给了我苏黎世和另一个苏黎世州。 是否可以限制搜索范围,使其只给我城市信息?

prefix schema: <http://schema.org/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

SELECT ?museum ?museumLabel ?located_in_the_administrative_territorial_entity ?located_in_the_administrative_territorial_entityLabel 
        WHERE {
  ?museum wdt:P17 wd:Q39;   # countries          
          wdt:P31 ?type.
          ?type (wdt:P279*) wd:Q33506.

         # If available, get the "en" entry, use native language as fallback:
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en,de". }

  # get location if available
  OPTIONAL { ?museum wdt:P131 ?located_in_the_administrative_territorial_entity. } 

}
order by ?museum

我希望每个博物馆都有一行,其中包括博物馆所在的城市。我不希望同一博物馆的几行显示不同的地理等级(州/市)。

0 个答案:

没有答案