2013-03-31 91 views
2

我是Freebase的新手,我一直在试图找到2个节点之间没有成功的关系。[Freebase]:查找节点之间的关系

例如,我想要找出路易斯汉密尔顿(/ 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 
}] 

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

我也不能使用了几个他们的应用程序可以这样做,因为它每次都会返回“超出用户访问量限制”。应用程序是:

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

。你们有什么建议?

回答

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 

的游离碱不支持递归查询,以便有找话题之间的这些多连杆的路径没有什么好办法。您尝试的应用程序通过使用日益嵌套的子查询生成查询来模拟递归。不幸的是,它们已经过时,并且错过了正确的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 
    }] 
} 

这些类型的查询可能需要很长的时间来运行,并可能会更好,如果在Freebase data dumps本地运行。现在

+0

感谢您的解释肖恩!但是,假设汉密尔顿和F1之间的路线完全如你所描述的那样,是不是2个链接分开?搜索将如何进行?谢谢! – Cassio

+0

我已经更新了答案,以显示如何进行嵌套链接查询。我不建议你使用这种方法,因为它很慢并且容易超时。 –

+0

我也在寻找类似的东西。 Freebase没有任何有用的API能够做出Google迄今为止还没有做过的重要事情。 我会建议获取您关心的freebase数据,准备您自己的重要实体的小图数据库。 –

1

的游离碱将返回不过503S,所以这是一个有点难以实验,但

  • 上Freebaseapps所有的应用程序都是开源的,所以看着来源为您找到应该给你的应用程序一些好的提示。应用程序目录是https://www.freebase.com/apps(但不是现在渲染)

  • Freebaseapps上的所有应用程序都可以通过单击进行克隆。几乎每个在基础设施上编写的应用程序停止工作时,谷歌切换到新的API和开发人员不太可能修复它们,如果他们没有看过多年,但你可能会感兴趣的工作通过克隆他们,b)注册一个API密钥,以及c)将该API密钥添加到克隆的应用程序。

相关问题