我想编写一个查询来获取有关某个主题的所有知识(只需要深入一层。
在Freebase MQL Editor工作时,他们为“我们所知道的关于Jimi Hendrix的一切”提供了以下示例:
{
"*" : null,
"name" : "Jimi Hendrix",
"type" : "/music/artist"
}
问题是查询绑定到“/ music / artist”类型,并且只返回与该类型相关的属性。如果您将查询更改为使用其他类型,则会得到完全不同的结果集。
{
"*" : null,
"name" : "Jimi Hendrix",
"type" : "/people/person"
}
如何编写一个真正可以获取Freebase了解Jimi Hendrix所有内容的查询?
答案 0 :(得分: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页面上,以便将信息量保持在可管理的水平。
答案 1 :(得分:3)
Freebase主题API可能就是您所追求的目标:
http://www.freebase.com/experimental/topic/standard?id=/en/jimi_hendrix
主题API将获取与图表中主题直接相关的所有属性。 API包装了一系列MQL查询以获取JSON中的所有数据和输出。
Google“ Freebase主题HTTP API ”以获取更多信息。
答案 2 :(得分:2)
过了一段时间,我们认为这是一个典型的用例,所以我们为此做了一个全新的API:
http://www.freebase.com/docs/topic_api
这将为您提供上述查询的所有属性,以及调解员和其他好东西。
请注意,如果您想要Freebase中所有主题的所有属性,那么您应该使用data dumps而不是运行时查询语言(它会快很多倍)。