使用SPARQL列出维基数据中的所有哈佛大学讲师

时间:2016-05-01 11:50:56

标签: sparql wikipedia dbpedia wikidata

我想用哈佛大学的所有讲师的名字和学术头衔来查询。

这是我到目前为止所得到的:

SELECT ?item ?degree WHERE { 
  ?item <http://www.wikidata.org/prop/direct/P803> <http://www.wikidata.org/entity/Q13371>. 
  ?degree <http://www.wikidata.org/prop/direct/P512> <http://www.wikidata.org/entity/Q13371>.
}

不幸的是,它没有找到任何记录。

可以玩here

2 个答案:

答案 0 :(得分:2)

经过多次尝试,我觉得维基数据并不包含您要查找的数据。

首先,?degree的三重模式似乎是错误的。这种关系应该是一个人&#34;有一个学位&#34; ;你拥有的是学位&#34;拥有学位&#34; 哈佛大学

您可以尝试的查询是

SELECT ?person ?degree ?relationship WHERE { 
  ?person <http://www.wikidata.org/prop/statement/P512> ?degree .
  ?person ?relationship <http://www.wikidata.org/entity/Q13371>. 
}

选择所有已知学位的人及其与哈佛大学的关系。您可以看到返回的唯一关系是&#34;由&#34;或者&#34;在&#34;受过教育,其中任何一个都不是&#34;是&#34;的讲师。你正在寻找的关系。倒转到<http://www.wikidata.org/entity/Q13371> ?rel ?person也没有帮助。

因此,除非我们错过了另一个学位的属性,否则我不认为维基数据可以给你答案。

答案 1 :(得分:1)

我怀疑维基数据是否有您想要的信息,但您至少可以获得维基数据认为已被哈佛聘用的人员名单。鉴于他们的“显着性”规则,他们几乎可能是所有教授(可能还有一些高级管理人员)。

此查询将为您提供超过3,000人:

SELECT ?itemLabel WHERE { 
  ?item <http://www.wikidata.org/prop/direct/P108> <http://www.wikidata.org/entity/Q13371>. 

    SERVICE wikibase:label {
        bd:serviceParam wikibase:language "en" .
    }
}