从wikidata SPARQL获取一个国家的语言列表

从wikidata SPARQL获取一个国家的语言列表,sparql,wikidata,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" } } 这给了我一个巨大的数据集,我如何过滤它 运行代码: 编辑:我正在查找一个国家使用的所有语言

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

#languages in world
SELECT ?Lang ?LangLabel
WHERE {
  ?Lang wdt:P31/wdt:P31* wd:Q34770 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
这给了我一个巨大的数据集,我如何过滤它

运行代码:


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

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

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

它似乎不适用于城市,但适用于按国家划分的官方语言:

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
按国家分列的所有语言:

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

查询应该是更多的国家/地区->语言,类似于
SELECT DISTINCT?item?itemlab?officialllanguage,其中{item wdt:P37?officialllanguage;wdt:P31 wd:Q6256。?item rdfs:label?itemlab.FILTER(lang(?itemlab)='en')?officiallanguage rdfs:label?officialllanguage.FILTER(lang(?officiallanguage)='en')}按项目排序?项目标签?官方语言
如果您想为特定国家/地区执行此操作,只需将
?项目
替换为适当的URI(并删除第二个三重模式,这将是多余的)-或使用`值?项目{,,,,}您可以发布一个每个国家/地区排序的工作示例吗?我要一个国家所有的语言,不仅仅是官方语言