Обход графа Freebase - PullRequest
       9

Обход графа Freebase

1 голос
/ 24 мая 2011

Я пытаюсь получить несколько уровней отношений влияния от конкретного человека.Грубо говоря, этот запрос объясняет, что я пытаюсь выполнить

{ "id" : "/en/george_orwell",
  "name" : null,
  "type" : "/influence/influence_node",
  "influenced": [{"id": null,"name" : null,
                  "type" : "/influence/influence_node",
                   "influenced": [{"id": null,"name" : null,
                                   "type" : "/influence/influence_node",
                                   "influenced": [{"id": null,"name" : null}],
                                   "influenced_by": [ { "id": null, "name" : null}] }],
                  "influenced_by": [ {"id": null,"name" : null,
                                   "type" : "/influence/influence_node",
                                   "influenced": [{"id": null,"name" : null}],
                                   "influenced_by": [ { "id": null, "name" : null}] }],
  "influenced_by": [{"id": null,"name" : null,
                  "type" : "/influence/influence_node",
                  "influenced": [{"id": null,"name" : null,
                                   "type" : "/influence/influence_node",
                                   "influenced": [{"id": null,"name" : null}],
                                   "influenced_by": [ { "id": null, "name" : null}] }],
                  "influenced_by": [ {"id": null,"name" : null,
                                   "type" : "/influence/influence_node",
                                   "influenced": [{"id": null,"name" : null}],
                                   "influenced_by": [ { "id": null, "name" : null}] }] }

Есть ли эффективный способ обхода графа Freebase с использованием MQL?

1 Ответ

1 голос
/ 25 мая 2011

Полагаю, вы хотите, чтобы на вас влияли и влияли на определенное количество игр? Нет, это невозможно сделать в mql, это потребует некоторой рекурсии и самоссылки.

Однако вы можете передать несколько идентификаторов, используя этот синтаксис [{'id | =': ['id1', 'id2', ...]}]

Таким образом, вы можете получить список людей, запустивших запрос в первый раз с заданным начальным числом, а затем повторно выполнить запрос, чтобы просканировать график для любого заданного идентификатора.

Если это не предназначено для интерактивного выполнения (человеком), то вам, вероятно, следует использовать дампы данных freebase, чтобы предварительно рассчитать все это в автономном режиме.

...