【发布时间】:2014-06-19 14:50:01
【问题描述】:
我是 Freebase 的新手,我有一个简单的问题。我想使用 Freebase KB 来查找两个实体之间的关系。例如,如果我有名称实体 "Washington" 和 "United States" ,我想向 Freebase 发送查询并获取: Location/Location/Capital 或 Null 在没有关系的情况下。
非常感谢。
【问题讨论】:
-
您找到解决方案了吗?
我是 Freebase 的新手,我有一个简单的问题。我想使用 Freebase KB 来查找两个实体之间的关系。例如,如果我有名称实体 "Washington" 和 "United States" ,我想向 Freebase 发送查询并获取: Location/Location/Capital 或 Null 在没有关系的情况下。
非常感谢。
【问题讨论】:
如果您只想出去一层(即最近的邻居),如果您使用的是 Freebase 的在线版本,那么使用反射 API 非常简单。如果您使用批量下载,则需要使用您正在使用的任何查询引擎(可能是 SPARQL,除非您将 RDF 转换为其他内容)。
如果你想找到最短路径,不管它们相距甚远,它就变成了一种图搜索算法。
编辑:如果您只想查找首都,您可以在此查询中填写您的 ID:
[{
"type": "/location/administrative_division_capital_relationship",
"capital": [{
"id": null
}],
"administrative_division": [{
"id": null
}],
"limit": 1
}]
请注意,对于华盛顿特区,这将返回 null,因为数据不在 Freebase 中。
如果您需要处理任意属性,则需要使用反射。见https://developers.google.com/freebase/mql/ch03#reflection
【讨论】: