Получение информации о связанных темах по одному запросу
Итак, скажем, я ищу Город, используя Freebase API. Скажи, Сан-Франциско:
Я получаю кучу данных, в том числе "/ 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 с их типами (или вы можете явно фильтровать только те из них, которые являются страной или штатом).