2012-10-22 197 views
1

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

    ,你寫的查詢:

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

    這隻能找到人誰的死亡日期被記錄在遊離鹼爲「2011」。你究竟想要查詢是誰的人或以後2011年1月1日但在此之前死於1月1日,2012年該查詢看起來是這樣的:

    { 
        "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" 
        } 
    }​ 
    

    注意,因爲國籍/人/人,而不是/人/ deceased_person(聲明的類型)的一部分,我需要使用完整的屬性ID,而date_of_death可以使用縮短的ID。