3

我目前正在使用 freebase 转储开发一个项目,我将断言插入到 per-mid 排序的 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

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

请问有什么线索吗?

4

2 回答 2

1

我不是 100% 确定,但我不认为架构实际上在四元转储中。我知道以前从来没有。

您需要使用这样的查询来查找名称。不幸的是,人类可读的名称仅以英语存在,因此您需要跳过更多的障碍才能获得其他语言。为此,您可以尝试按照这个稍微复杂的查询

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

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

于 2012-02-03T20:29:34.507 回答
0

如果您主要对使用属性(而不是类型)的示例(一个人是/曾经是...)这样的情况感兴趣,那么在您的情况下(后者通过 cvt):

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

无论如何,这可能是您想要的更多,除非您还想显示例如艾伦图灵是“文学主题”。

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

于 2012-02-15T20:17:56.307 回答