Получение информации о связанных темах по одному запросу

Итак, скажем, я ищу Город, используя 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/containedby&filter=/travel/travel_destination/tourist_attractions

Я получаю кучу данных, в том числе "/ location / location / containsby", которая указывает, какими другими объектами эта содержит. Вот так я могу узнать, к какому штату и стране принадлежит город.

Проблема заключается в том, что я получаю только те имена name и mid, но не '/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' в связанные сущности. В моем случае это сэкономит массу запросов и времени конечному пользователю.

Спасибо за ваше время!

2 ответа

Решение

На самом деле вы можете получить эти результаты, используя новый выходной параметр в Freebase Search API. Как это:

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

Попробуйте это

Я бы предложил использовать MQL Read API, если вы хотите лучше контролировать возвращаемую информацию. Затем вы можете указать вложенные запросы, которые запрашивают о возвращении местоположения contains_by с их типами (или вы можете явно фильтровать только те из них, которые являются страной или штатом).

Другие вопросы по тегам