维基数据上的 SPARQL:一个国家/地区的官方语言按通用性排序

问题描述 投票:0回答:1

我正在尝试获取某个国家/地区使用的语言。返回的结果要按顺序返回。此顺序应该是国家/地区给出的官方语言顺序(如果可以获得),或者是使用该语言的人数给出的顺序。第一种语言之后的语言顺序并不是特别重要,但返回的第一种语言必须是主要官方语言,或者如果没有定义,它应该是最常用的语言。

以瑞士为例,官方语言顺序(可能由使用该语言的人数决定)是,根据维基百科:德语、法语、意大利语、罗曼语。

瑞士的维基数据页面按以下顺序显示官方语言:德语、意大利语、法语、罗曼语。这不是维基百科中显示的顺序。然而,在我看过的维基数据页面上,列出的第一种语言始终是主要语言(参见 Spain 的示例)。

以下 SPARQL 查询检索瑞士的官方语言(在这里尝试):

SELECT *
{
  BIND(wd:Q39 as ?country)
  
  OPTIONAL {
    ?country wdt:P37 ?officialLanguages.
    ?officialLanguages wdt:P424 ?officialLanguagesCode.
  }
}

此查询返回另一种语言排序,不同于维基数据页面排序。结果是:法语、德语、意大利语、罗曼语。 第一语言不再是主要语言,不像维基数据页面中显示的那样。

第一个问题

为什么此查询返回的顺序与维基数据页面中语言的顺序不同?

第二个问题

如何获得一个国家/地区使用的官方语言的有序列表?

sorting sparql multilingual wikidata country
1个回答
1
投票

为什么此查询返回的顺序与维基数据页面中语言的顺序不同?

当你询问一个查询时,输出顺序是不相关的(你得到一组结果)。获得所需内容的唯一方法是明确此信息,在知识图中添加更多数据。

如何获得一个国家/地区使用的官方语言的有序列表?

唯一的方法是手动向维基数据添加更多信息。例如,在 Q39#P37 中,我刚刚添加了属性 proportion (P1107) 作为限定符。现在您可以提交以下查询(按

DESC(?proportion)
排序):

SELECT *
{
  BIND(wd:Q39 as ?country)
  
  OPTIONAL {
    ?country p:P37 [
      ps:P37 ?officialLanguage ;
      pq:P1107 ?proportion
    ] .
    ?officialLanguage wdt:P424 ?officialLanguageCode .
  }
}
ORDER BY ?country DESC(?proportion)

还有其他方法可以将数据添加到维基数据。向

official languages
添加排序的另一个(我认为次优)选项可能是添加一个series ordinal (P1545) 限定符以指示重要性顺序(1、2、3 等)。

目前,您在其他项目中看不到任何限定词,因为显然到目前为止还没有人提出这个问题。因此,您可以大胆并添加此类限定符,或者在维基数据的某个地方打开一个新主题,看看共识是如何演变的。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.