1

所以,假设我使用 Freebase API 搜索城市。说,旧金山:

https://www.googleapis.com/freebase/v1/topic/m/0d6lp?limit=20&filter=/common/topic/description&filter=/common/topic/article&filter=/location/location/geolocation&filter=/location/location/ containsby&filter=/travel/travel_destination/tourist_attractions

我得到一堆数据,包括“/location/location/containedby”,它指的是这个实体包含在哪些其他实体中。这就是我可以找出城市属于哪个州和国家的方法。

问题是我只得到那些实体的名称和中间值,而不是'/common/topic/notable_for',因此,我必须对每个实体进行单独的查询,只询问 notable_for 属性,找出其中一个是国家、州或其他我不需要的东西。

例如,这是确定美国是一个国家/地区的查询之一: https ://www.googleapis.com/freebase/v1/topic/m/09c7w0?filter=/common/topic/notable_for 这是每个城市执行 3 到 6 次。

有没有办法告诉 API 在某个主题上包含有关这些链接实体的更多信息?就像在这种情况下,在链接实体上包含“/common/topic/notable_for”。在我的情况下,它将为最终用户节省大量查询和时间。

感谢您的时间!

4

2 回答 2

0

您实际上可以使用Freebase Search API上的新输出参数获得这些结果。像这样:

query=/m/0d6lp
output=(description /location/location/geolocation (/location/location/containedby notable))

试试看

于 2013-04-11T03:12:32.363 回答
0

如果您想更好地控制返回的信息,我建议您使用 MQL 读取 API。然后,您可以指定嵌套查询,要求将 contains_by 位置与其类型一起返回(或者您可以显式过滤到仅属于国家或州的位置)。

于 2013-04-10T19:42:12.147 回答