freebase用户!
我想要得到这个结果:
我使用简单查询的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个名称,显然有一些错误。
任何想法如何获得正确的结果?
答案 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。