1

特定の人から複数レベルの影響関係を取得しようとしています。大まかに、このクエリは私が達成しようとしていることを説明しています

{ "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}] }] }

MQL を使用して Freebase グラフをトラバースする効率的な方法はありますか?

4

1 に答える 1

1

与えられた数のプライアウトに対して影響を受け、影響を受けたいと思いますか? いいえ、mql でこれを行うことはできません。何らかの再帰と自己参照が必要になります。

ただし、次の構文を使用して複数の ID を渡すことができます [{ 'id|=' : ['id1', 'id2', ...] }]

このようにして、シードを指定して最初にクエリを実行して人のリストを取得し、クエリを再実行して、選択した特定の ID のグラフをクロールできます。

これが (人によって) 対話的に行われることを目的としていない場合は、おそらく freebase データ ダンプを使用して、すべてをオフラインで事前に計算する必要があります。

于 2011-05-24T22:59:53.367 に答える