[Freebase]: поиск отношений между узлами
Я новичок во Freebase и безуспешно пытаюсь найти отношения между двумя узлами.
Например, я хочу выяснить, есть ли связь между Льюисом Хэмилтоном (/en/lewis_hamilton) и Формулой-1 (/ en / Formula_one), которая существует в реальной жизни, но я не могу ее найти.
Я пробовал следующие MQL-коды, а также чередующиеся идентификаторы:
1)
[{
"type" : "/type/link",
"source" : { "id" : "/en/lewis_hamilton" },
"master_property" : null,
"target" : { "id" : "/en/formula_one" },
"target_value" : null
}]
2)
{
"id":"/en/lewis_hamilton",
"/type/reflect/any_master":[{
"link":null,
"name":null
}],
"/type/reflect/any_reverse":[{
"link":null,
"name":null
}],
"/type/reflect/any_value":[{
"link":null,
"value":null
}]
}
Я также не могу использовать пару их приложений, которые могли бы сделать это, потому что он возвращает "превышение предела скорости пользователя" каждый раз. Приложения являются:
Ребята, у вас есть предложения?
2 ответа
Запросы, которые вы задали, верны, за исключением того, что они смотрят только на отношения, которые находятся на расстоянии одной ссылки. Удивительно, но сейчас нет пути от Льюиса Хэмилтона к Формуле-1 во Freebase. Если бы это было так, это могло бы выглядеть примерно так:
/en/lewis_hamilton → /type/object/type → /base/formula1/formula_1_driver
/base/formula1/formula_1_driver → /type/type/domain → /base/formula1
/base/formula1 → /freebase/domain_profile/equivalent_topic → /en/formula_one
Freebase не поддерживает рекурсивные запросы, поэтому нет хорошего способа найти эти многоканальные пути между темами. Приложения, которые вы попробовали, имитируют рекурсию, генерируя запросы со все более вложенными подзапросами. К сожалению, они устарели и отсутствуют правильные ключи API для правильной работы прямо сейчас. Вот как выглядят эти вложенные запросы:
{
"id": "/en/lewis_hamilton",
"name": null,
"/type/reflect/any_master": [{
"link": {
"master_property": null,
"target": {
"id": null,
"name": null,
"/type/reflect/any_master": [{
"link": {
"master_property": null,
"target": {
"id": "//base/formula1",
"name": null
}
},
"name": null
}]
}
},
"name": null
}]
}
Запросы такого рода могут занимать много времени и, вероятно, лучше, если они выполняются локально через дампы данных Freebase.
Freebase сейчас возвращает только 503-е, поэтому экспериментировать немного сложно, но
Все приложения в Freebaseapps имеют открытый исходный код, поэтому поиск источников, которые вы нашли, должен дать вам несколько полезных советов. Каталог приложения находится по адресу https://www.freebase.com/apps (но сейчас не отображается)
Все приложения на Freebaseapps могут быть клонированы одним щелчком мыши. Практически все приложения, написанные на этой инфраструктуре, перестали работать, когда Google переключился на новый API, и разработчики вряд ли исправят их, если их не рассматривали годами, но вы, вероятно, можете заставить интересующие вас работать а) клонированием. их, б) регистрация на ключ API и в) добавление этого ключа API в клонированное приложение.