freebase死亡年份

时间:2012-10-22 12:23:04

标签: freebase

freebase用户!

我想要得到这个结果:

  • 2011年去世的所有人员名单
  • 2011年去世的所有美国人名单

我使用简单查询的python代码:

import freebase
r = freebase.mqlreaditer({"/people/deceased_person/date_of_death":'2011', "name":None})
for i in r:
    print i

但输出给了我20个名字。比较结果与本文(http://en.wikipedia.org/wiki/Category:2011_deaths) - 5,612个名称,显然有一些错误。

任何想法如何获得正确的结果?

1 个答案:

答案 0 :(得分:1)

您撰写的查询:

{
  "name": null,
  "/people/deceased_person/date_of_death": "2011"
}​

这只发现将死亡日期记录在Freebase中的人为“2011”。您打算查询的是2011年1月1日或之后但2012年1月1日之前死亡的人。该查询如下所示:

{
  "id": null,
  "name": null,
  "type": "/people/deceased_person",
  "date_of_death": null,
  "date_of_death>=": "2011",
  "date_of_death<": "2012"
}​

您可以进一步优化该查询,以便只搜索这样的美国人:

{
  "id": null,
  "name": null,
  "type": "/people/deceased_person",
  "date_of_death": null,
  "date_of_death>=": "2011",
  "date_of_death<": "2012",
  "/people/person/nationality": {
    "id": "/en/united_states"
  }
}​

请注意,由于国籍是/ people / person的一部分,而不是/ people / deceased_person(声明的类型),我需要使用完整的属性ID,而date_of_death可以使用缩短的ID。