在Freebase中查找两个实体之间的关系

时间:2014-06-17 10:29:09

标签: api freebase mql

我是Freebase的新手,我有一个简单的问题。我想使用Freebase KB来查找两个实体之间的关系。例如,如果我有名称实体" Washington"和#34;美国" ,我想向Freebase发送查询并获取: 位置/位置/资本或无关系的情况下为空。

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果你只想去一片(即最近的邻居),如果你使用Freebase的在线版本,那么使用反射API这很简单。如果您正在使用批量下载,则需要使用您正在使用的任何查询引擎(可能是SPARQL,除非您将RDF转换为其他内容)。

如果你想找到最短的路径,无论它们是多远,它都会成为图搜索算法。

编辑:如果您只想查找资本,您可以在此查询中填写您的ID:

[{
  "type": "/location/administrative_division_capital_relationship",
  "capital": [{
    "id": null
  }],
  "administrative_division": [{
    "id": null
  }],
  "limit": 1
}]

请注意,对于Washington,D.C。,这将返回null,因为数据不在Freebase中。

如果需要处理任意属性,则需要使用反射。见https://developers.google.com/freebase/mql/ch03#reflection