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 回答