2

我想编写一个查询来获取有关某个主题的所有已知信息(只需要一个级别的深度。

在使用Freebase MQL 编辑器时,他们为“我们所知道的关于 Jimi Hendrix 的一切”提供了以下示例:

{
  "*" : null,
  "name" : "Jimi Hendrix",
  "type" : "/music/artist"
}

问题是查询绑定到“/music/artist”类型,并且只获取与该类型相关的属性。如果您更改查询以使用不同的类型,您将获得完全不同的结果集。

{
  "*" : null,
  "name" : "Jimi Hendrix",
  "type" : "/people/person"
}

我怎样才能编写一个查询来真正获取 Freebase 所知道的关于 Jimi Hendrix 的所有信息?

4

3 回答 3

4

为此,您需要一种更高级的查询类型,它查看构成 Freebase 图的底层链接 (/type/link)。每个链接都有一个源、一个目标和一个分配给它的属性,可以像这样查询它们:

[
  {
    "master_property" : null,
    "source" : {
      "id" : "/en/jimi_hendrix"
    },
    "target" : null,
    "target_value" : null,
    "type" : "/type/link"
  }
]

这些被称为传出链接,代表您通常在 Freebase UI 中看到的大部分值,但您也可以交换源和目标以获取传入链接链接列表:

[
  {
    "master_property" : null,
    "source" : null,
    "target" : {
      "id" : "/en/jimi_hendrix"
    },
    "type" : "/type/link"
  }
]

这些链接包括将 Jimi Hendrix 视为其价值的其他主题的属性,并且这些值并未全部显示在 Freebase Jimi Hendrix 页面上,以将信息量保持在可管理的水平。

于 2009-03-29T04:56:51.313 回答
3

Freebase 主题 API 可能是您所追求的:

http://www.freebase.com/experimental/topic/standard?id=/en/jimi_hendrix

主题 API 将获取与图表中的主题直接相关的所有属性。API 包装了一系列 MQL 查询以获取 JSON 格式的所有数据和输出。

谷歌“ Freebase 主题 HTTP API ”以获取更多信息。

于 2010-07-31T21:53:33.460 回答
2

一段时间后,我们认为这是一个典型的用例,因此我们引入了一个全新的 API 来执行此操作:

http://www.freebase.com/docs/topic_api

这将为您提供上述查询中的所有属性,以及中介和其他好东西。

请注意,如果您想要 Freebase 中所有主题的所有属性,您应该使用数据转储而不是运行时查询语言(它会快很多倍)。

于 2011-06-22T23:38:51.717 回答