如何在Wikidata中获取非英语语言的标签性别

时间:2019-03-12 19:20:55

标签: sparql wikidata wikidata-api

我想知道如何获得Wikidata结果的性别。例如

SELECT ?s ?sLabel 
WHERE
{
  ?s wdt:P31 wd:Q6256 ; rdfs:label ?sLabel .
   FILTER (lang(?sLabel) = 'fr') .
  } limit 10

我不仅要获得法文标签,而且要获得其性别,像这样

Canada        Masculin
Bangladesh    Masculin
Norvège       Feminin

反正有使用Wikidata查询执行此操作吗?

1 个答案:

答案 0 :(得分:2)

SELECT ?country_label ?language_code ?gender_label {
  ?s wdt:P31 wd:Q6256 ;
     rdfs:label ?country_label .
  FILTER (lang(?country_label) = ?language_code)
  ?lexeme ontolex:sense?/wdt:P5137 ?s ;
          dct:language/wdt:P424 ?language_code .
  OPTIONAL { 
     ?lexeme wdt:P5185 ?gender .
     ?gender rdfs:label ?gender_label .
     FILTER (lang(?gender_label) = ?language_code)
  }
} VALUES (?language_code) {('de')}

Try it

更多信息:https://www.wikidata.org/wiki/Wikidata:Lexicographical_data