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

List all Harvard University lecturers from Wikidata using SPARQL

我想查询哈佛大学所有讲师的姓名和职称。

这是我目前得到的:

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.

经过几次尝试,在我看来,维基数据似乎不包含您要查找的数据。

首先,?degree 的三重模式似乎是错误的。关系应该一个人 "has a degree" ;你拥有的是 学位 "has a degree" 哈佛大学.

您可以尝试的查询是

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

这会选择所有已知学位的人以及他们与哈佛大学的关系。您可以看到返回的唯一关系是 "conferred by" 或 "educated at",它们都不是您要查找的 "is a lecturer at" 关系。反转为 <http://www.wikidata.org/entity/Q13371> ?rel ?person 也无济于事。

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

我怀疑维基数据有你想要的信息,但你至少可以得到一份维基数据认为已被哈佛聘用的人员名单。鉴于他们的 "notability" 规则,他们很可能几乎都是教授(可能还有一些高级管理人员)。

此查询将为您提供 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" .
    }
}