[Freebase]:查找节点之间的关系

Cas*_*sio 2 freebase semantic-web mql

我是Freebase的新手,我一直试图找到2个节点之间的关系而没有成功.

例如,我想找出Lewis Hamilton(/ en/lewis_hamilton)和一级方程式(/ en/formula_one)之间是否存在链接,这在现实生活中是如此,但我似乎无法找到它.

我尝试了以下MQL代码,也是交替ID:

1)

[{ 
 "type" : "/type/link", 
 "source" : { "id" : "/en/lewis_hamilton" }, 
 "master_property" : null, 
 "target" : { "id" : "/en/formula_one" }, 
 "target_value" : null 
}]
Run Code Online (Sandbox Code Playgroud)

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
  }]
}
Run Code Online (Sandbox Code Playgroud)

我也无法使用他们可以执行此操作的几个应用程序,因为它每次都返回"超出用户速率限制".应用程序是:

  1. http://between.freebaseapps.com
  2. http://shortestpath.freebaseapps.com

你们有什么建议吗?

Sha*_*ter 5

您提供的查询是正确的,只是它们只查看一个链接的关系.令人惊讶的是,现在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
Run Code Online (Sandbox Code Playgroud)

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
  }]
}
Run Code Online (Sandbox Code Playgroud)

这些类型的查询可能需要很长时间才能运行,如果通过Freebase数据转储在本地运行可能会更好.