首页 > 解决方案 > 如何从 Wikidata 中获取属性的标签?

问题描述

我可以rdfs:label用来获取对象的文本值,例如:

SELECT DISTINCT * WHERE {
  wd:Q19675 rdfs:label ?label . 
  FILTER (langMatches( lang(?label), "ES" ) )  
}

会给我这个值Museo del Louvre,因为它是对象的标签Q19675

但是如果我想获得一个属性的标签怎么办?(不工作)示例:

SELECT * WHERE {
  wdt:P131 rdfs:label ?label . 
}

我应该怎么做才能获取属性的文本值(标签)P131?此属性的标签应为located in the administrative territorial entity

标签: sparqlwikidata

解决方案


我自己找到了解决方案:

SELECT ?wdLabel WHERE {
  VALUES (?wdt) {(wdt:P131)}
   ?wd wikibase:directClaim ?wdt .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

我们SERVICE wikibase:label...只需要为了指定我们的属性标签的语言。


推荐阅读