【问题标题】:Find relation between two entities in Freebase在 Freebase 中查找两个实体之间的关系
【发布时间】:2014-06-19 14:50:01
【问题描述】:

我是 Freebase 的新手,我有一个简单的问题。我想使用 Freebase KB 来查找两个实体之间的关系。例如,如果我有名称实体 "Washington" 和 "United States" ,我想向 Freebase 发送查询并获取: Location/Location/Capital 或 Null 在没有关系的情况下。

非常感谢。

【问题讨论】:

  • 您找到解决方案了吗?

标签: api freebase mql


【解决方案1】:

如果您只想出去一层(即最近的邻居),如果您使用的是 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

【讨论】:

  • 谢谢汤姆,但你能给我一个关于查询的建议吗?我正在使用在线 API 来访问 Freebase,并且可以说我希望实体之间的最大距离为 3 级,如上所述 (Location/Location/Contain)。我有实体的 Guid,所以我可以按 GUID 搜索
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2014-10-20
相关资源
最近更新 更多