freebase获取类型的简单名称并按共性排序

时间:2012-03-08 17:28:29

标签: api freebase mql

我希望能够从freebase ID

获取其常用名称的类型列表
{
  "id":    "/m/02mjmr", #obama
  "type":[]
}​

如何返回类型的名称而不是ID?以上返回

0: "/common/topic"xp
1: "/people/person"xp
2: "/user/robert/default_domain/presidential_candidate"xp
3: "/book/author"xp
4: "/award/award_winner"xp
5: "/book/book_subject"xp
6: "/user/robert/x2008_presidential_election/candidate"xp
7: "/government/politician"xp
8: "/organization/organization_member"xp
9: "/user/robert/default_domain/my_favorite_things"xp

最后,我怎么能按计数对它们进行排序?或者可能的显着性?

是的,

President
Nobel Prize Winner
Author
Person

等?

可能类似于值得注意的类型API,但看起来它会消失?

http://wiki.freebase.com/wiki/Notable_types_API

2 个答案:

答案 0 :(得分:3)

您可以使用

获取名称和实例计数
{
  "id": "/m/02mjmr",
  "type": [{
    "name":          null,
    "id":null,
    "/type/type/domain":{"key":[{"namespace":"/","limit":0}],"id":null}
    "/freebase/type_profile/instance_count": null,
    "sort":"/freebase/type_profile/instance_count"
  }]
}​

“值得注意的”的一个定义是低频,因此您可以反转实例计数排序以获得显着性。将此限制为Freebase“commons”中的类型将排除嘈杂的用户类型。识别公共类型的一种方法是查找根名称空间中的/ type / type / domain属性值(即像/ government这样的单个路径段)

对于您的示例,最低频率公共类型是:

 43 /government/us_president     US President    /government 
 51 /people/appointer    Appointer   /people  
 73 /architecture/building_occupant  Building Occupant   /architecture 
204 /government/political_appointer  Political Appointer     /government
230 /book/poem_character     Poem character  /book  
254 /event/public_speaker    Public speaker  /event

您可以通过将您认为不适合您的应用程序的类型列入黑名单来进一步优化过滤。目前有2134种公共类型,其中一些是原始数据类型或用于系统使用的东西,因此您不需要花费很长时间就可以完成整个列表的操作。

答案 1 :(得分:1)

您可能也有兴趣查看Freebase Search API,它会为每个结果返回一个或多个值得注意的类型。您可以通过MID搜索特定主题,如下所示:

https://www.googleapis.com/freebase/v1/search?query=/m/02mjmr&indent=true