从Wikidata SPARQL获取一个国家/地区使用的语言列表

时间:2018-08-16 13:59:37

标签: sparql wikidata

我正在尝试使用SPARQL和wikidata查找某个国家/地区的所有语言。 例如阿布贾语中的语言。

#languages in world
SELECT ?Lang ?LangLabel
WHERE {
  ?Lang wdt:P31/wdt:P31* wd:Q34770 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

这给了我巨大的数据集,我该如何过滤呢?

运行代码:https://query.wikidata.org/#%23languages%20in%20world%0ASELECT%20%3FLang%20%3FLangLabel%0AWHERE%20%7B%0A%20%20%3FLang%20wdt%3AP31%2Fwdt%3AP31%2a%20wd%3AQ34770%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20%7D%0A%7D

编辑:我正在寻找一个国家中使用的所有语言,而不仅仅是官方语言

2 个答案:

答案 0 :(得分:0)

此查询利用所使用的语言(P2936)属性返回尼日利亚使用的语言:

SELECT ?language ?languageLabel
WHERE { 
  wd:Q1033 wdt:P2936 ?language . 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

它似乎不适用于城市

答案 1 :(得分:0)

对于官方语言,按国家/地区:

SELECT DISTINCT ?countryLabel ?languageLabel
{
  ?country wdt:P31 wd:Q6256 ;
           wdt:P37 ?language .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
ORDER BY ?countryLabel

对于所有语言,按国家/地区:

SELECT DISTINCT ?countryLabel ?languageLabel
{
  ?country wdt:P31 wd:Q6256 ;
           wdt:P2936 ?language .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
ORDER BY ?countryLabel