遍历Freebase图表

时间:2011-05-24 16:37:51

标签: graph traversal freebase mql

我正在尝试从特定的人那里获取多个级别的影响关系。 粗略地说,这个查询解释了我正在努力实现的目标

{ "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图的有效方法?

1 个答案:

答案 0 :(得分:1)

我认为您希望受到特定数量的层数的影响和影响?不,它不可能在mql中执行此操作,它需要某种递归和自引用。

但是,您可以使用此语法传递多个ID  [{'id | =':['id1','id2',...]}]

通过这种方式,您可以在给定种子的情况下第一次获取运行查询的人员列表,然后重新运行查询以针对所选的任何给定ID对图表进行爬网。

如果这不是以交互方式(由某人)完成的,那么您应该使用freebase数据转储来预先计算离线的整个事物。