SPARQL wikidata返回的国家较少,而不是全部

SPARQL wikidata返回的国家较少,而不是全部,sparql,wikidata,Sparql,Wikidata,我试图列出所有的国家。我尝试了下面的问题。它返回166结果。但是,我认为全世界总共有190200多个国家。但是,为什么它只返回166个国家的名称呢 我做错什么了吗?对于某些人来说,这是一个愚蠢的问题,但我对SPARQL和wikidata还不熟悉 # list all countries SELECT ?country ?countryLabel WHERE { ?country wdt:P31 wd:Q6256 . SERVICE wikibase:label { bd:s

我试图列出所有的国家。我尝试了下面的问题。它返回166结果。但是,我认为全世界总共有190200多个国家。但是,为什么它只返回166个国家的名称呢

我做错什么了吗?对于某些人来说,这是一个愚蠢的问题,但我对SPARQL和wikidata还不熟悉

# list all countries

SELECT ?country ?countryLabel
WHERE
{
    ?country wdt:P31 wd:Q6256 .

    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?countryLabel)

正如@AKSW所指出的,正确返回所有国家/地区的查询是:

SELECT ?country ?countryLabel
WHERE
{
    ?country p:P31/ps:P31 wd:Q6256 .
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?countryLabel)
与您的查询唯一不同的是行
?国家/地区p:P31/ps:P31 wd:Q6256。

那一行中的斜杠(
/
)是一种速记符号。该行可以扩展为:

?country p:P31 ?statement .
?statement ps:P31 wd:Q6256 .
  • 第1行表示“作为报表主体的实体”

  • 第二行的意思是“哪个国家是一个国家”

前缀
p:
ps:
是名称空间。Wikidata的约定是在
p
命名空间中保留实体到语句的连接器,在
ps
命名空间中保留语句到值的连接器。它们必须链接在一起以查询国家列表

这似乎很复杂。你只想找到国家;你不在乎关于国家的声明。因此,为您这样的用例创建了
wdt:
前缀。这个名称空间应该是这些简单的是或否查询的
p:/ps:
链接的摘要

但是有个问题!引自:

这样的三元组使用属性的
wdt:
表示形式,并不是为所有语句创建的,而是仅为该项上属性排名最高且未弃用的语句创建的。虽然不能保证它们是真实的,但它们旨在总结维基数据目前对真相的最佳理解

简而言之,
wdt:
名称空间不完整,您发现了一些漏洞。无论出于何种原因,苏里南和俄罗斯等少数国家被排除在该名称空间的声明之外


编辑:这似乎被指定为“国家”或“主权国家”。使用主权国标识符(而不是
Q6256
)也可以修复您的查询。

正如@AKSW所指出的,正确返回所有国家的查询是:

SELECT ?country ?countryLabel
WHERE
{
    ?country p:P31/ps:P31 wd:Q6256 .
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?countryLabel)
与您的查询唯一不同的是行
?国家/地区p:P31/ps:P31 wd:Q6256。

那一行中的斜杠(
/
)是一种速记符号。该行可以扩展为:

?country p:P31 ?statement .
?statement ps:P31 wd:Q6256 .
  • 第1行表示“作为报表主体的实体”

  • 第二行的意思是“哪个国家是一个国家”

前缀
p:
ps:
是名称空间。Wikidata的约定是在
p
命名空间中保留实体到语句的连接器,在
ps
命名空间中保留语句到值的连接器。它们必须链接在一起以查询国家列表

这似乎很复杂。你只想找到国家;你不在乎关于国家的声明。因此,为您这样的用例创建了
wdt:
前缀。这个名称空间应该是这些简单的是或否查询的
p:/ps:
链接的摘要

但是有个问题!引自:

这样的三元组使用属性的
wdt:
表示形式,并不是为所有语句创建的,而是仅为该项上属性排名最高且未弃用的语句创建的。虽然不能保证它们是真实的,但它们旨在总结维基数据目前对真相的最佳理解

简而言之,
wdt:
名称空间不完整,您发现了一些漏洞。无论出于何种原因,苏里南和俄罗斯等少数国家被排除在该名称空间的声明之外


编辑:这似乎被指定为“国家”或“主权国家”。使用主权国家标识符而不是主权国家标识符
Q624078
,也可以修复您的查询。

您知道缺少哪些县吗?@Alexan Ukraine、塞尔维亚、苏里南、Russiatruthy vs non-truthydata@AKSW你能解释一下吗?
#列出所有国家选择?国家?国家标签在哪里{?国家/地区p:P31/ps:P31 wd:Q6256.服务wikibase:label{bd:serviceParam wikibase:language“en”。}按ASC排序(?国家/地区标签)
你知道哪些县失踪了吗?@Alexan乌克兰、塞尔维亚、苏里南、俄罗斯和非俄罗斯data@AKSW你能解释一下吗?
#列出所有国家选择?国家?国家标签{国家p:P31/ps:P31 wd:Q6256。服务维基库:标签{bd:serviceParam维基库:语言“en”。}按ASC顺序排列(?国家标签)