Sparql Wikidata查询未命中结果

Sparql Wikidata查询未命中结果,sparql,wikidata,Sparql,Wikidata,我正在尝试从Wikidata()查询所有国家: 不幸的是,缺少结果,例如瑞士(Q39): 查看瑞士数据,它有三个:实例(第31页)国家(Q6256)。 您能帮我理解为什么结果中没有出现Q39 谢谢 在WikiData中,通常有所谓的语句。这些允许对这些声明进行限定。 例如,在瑞士是一个国家的情况下,条件是该声明的级别应为“正常”,而不是首选。 引用瑞士的首选方式是主权国家(wd:Q3624078),并且WikiData看起来在实体与其“首选等级”分类之间只有wdt:P31关系,如图所示 我认为

我正在尝试从Wikidata()查询所有国家:

不幸的是,缺少结果,例如瑞士(
Q39
):

查看瑞士数据,它有三个:
实例(第31页)
国家(Q6256)。
您能帮我理解为什么结果中没有出现
Q39


谢谢

在WikiData中,通常有所谓的语句。这些允许对这些声明进行限定。 例如,在瑞士是一个国家的情况下,条件是该声明的级别应为“正常”,而不是首选。 引用瑞士的首选方式是主权国家(wd:Q3624078),并且WikiData看起来在实体与其“首选等级”分类之间只有wdt:P31关系,如图所示

我认为这可能是因为“国家”是一个更一般的概念,例如威尔士是一个国家,但不是一个主权国家

然而,不要害怕,因为这个问题:

SELECT DISTINCT ?item
WHERE { 
  ?item p:P31/ps:P31 wd:Q6256. 
}
还返回wd:Q39。此查询所做的是通过该语句从瑞士导航到该国。 也就是说,我们的数据中有:

wd:Q39 p:P31 wds:Q39-fbe1ac75-4a8a-93c4-6009-81055d79f9cb .
wds:Q39-fbe1ac75-4a8a-93c4-6009-81055d79f9cb ps:P31 wd:Q6256 .
但不是:

wd:Q39 wdt:P31 wd:Q6256 .
试试这个:

SELECT DISTINCT *
WHERE { 
  ?item p:P31 ?y .
  ?y ps:P31 wd:Q6256 ;
     ?p ?o .
  VALUES ?item {wd:Q39}
}

在WikiData中,通常有所谓的语句。这些允许对这些声明进行限定。 例如,在瑞士是一个国家的情况下,条件是该声明的级别应为“正常”,而不是首选。 引用瑞士的首选方式是主权国家(wd:Q3624078),并且WikiData看起来在实体与其“首选等级”分类之间只有wdt:P31关系,如图所示

我认为这可能是因为“国家”是一个更一般的概念,例如威尔士是一个国家,但不是一个主权国家

然而,不要害怕,因为这个问题:

SELECT DISTINCT ?item
WHERE { 
  ?item p:P31/ps:P31 wd:Q6256. 
}
还返回wd:Q39。此查询所做的是通过该语句从瑞士导航到该国。 也就是说,我们的数据中有:

wd:Q39 p:P31 wds:Q39-fbe1ac75-4a8a-93c4-6009-81055d79f9cb .
wds:Q39-fbe1ac75-4a8a-93c4-6009-81055d79f9cb ps:P31 wd:Q6256 .
但不是:

wd:Q39 wdt:P31 wd:Q6256 .
试试这个:

SELECT DISTINCT *
WHERE { 
  ?item p:P31 ?y .
  ?y ps:P31 wd:Q6256 ;
     ?p ?o .
  VALUES ?item {wd:Q39}
}
亲自去看看