从id中检索freebase四转储类型名称

时间:2012-02-03 14:08:58

标签: semantics freebase leveldb

我目前正在使用freebase转储开发一个项目,我将断言插入到每个中间有序的LevelDB中。我的目标是能够像Bob Dylan这样的特定名称检索与其名称相关联的每个类型。

例如,“Bob Dylan”将对应于“Musician”,“Film Producer”等,每个人都对应于“/ music / artist”,“/ film / producer”等类型...

不幸的是,如果很容易找到Bob Dylan中途进入四轮转储

/m/bobdylanmid        /common/topic/notable_types   /music/artist
/m/bobdylanmid        /common/topic/notable_types   /film/producer

我希望现在能够找到各种语言的类型名称。但我找不到在转储中检索它们的逻辑方法。

有任何线索吗?

2 个答案:

答案 0 :(得分:1)

我不是百分之百确定,但我不认为架构实际上是在四重转储中。我知道它从未像现在这样。

您需要使用this之类的查询查找名称。不幸的是,人类可读的名字只存在于英语中,所以你需要跳过更多的箍来获得其他语言。为此你可以试试这个slightly more complicated query

的内容
[{
  "id":   "/music/artist",
  "/freebase/type_profile/equivalent_topic": {
    "name": {
      "lang":  null,
      "value": null
    }
  },
  "name": null
}]​

这取决于所填写的“等效主题”属性,但并非所有类型都属于这种情况。如果您只需要几种语言,则可以修改查询以明确返回这些语言(“Musician”有45种不同的语言变体)。

答案 1 :(得分:0)

如果你主要对你的例子(一个人是/是......)这样的情况感兴趣,那么使用属性(而不是类型)就可以完成工作,在你的情况下(后者通过cvt):

/people/person/profession
/people/person/employment_history /business/employment_tenure/title

这可能更符合您的要求,除非您还希望显示例如阿兰图灵是一个“文学主题”。

对于相应的实例(使用types / business / job_title,/ people / profession),您可以获得不同语言的名称(如果存在)。

相关问题