【问题标题】:Relate two entities using properties in Freebase使用 Freebase 中的属性关联两个实体
【发布时间】:2013-04-13 05:06:25
【问题描述】:

我想了解一下苏文锦和集美大学在 Freebase 中的关系。我发现 Wenjin SU 有一个类型/business/board_member/,它有属性/business/board_member/leader_of。如何在 Freebase MQL 中使用这些信息来提取集美大学的学期或学期?

【问题讨论】:

    标签: freebase mql


    【解决方案1】:

    如果您转到 Wenjin SU 的 Freebase 页面,您会看到他的类型为 /business/board_member/,并在该部分下将他列为 /business/board_member/leader_of Jimei University

    您应该做的第一件事是转到 Query Editor 并为该关系创建一个骨架 MQL 查询:

    {
      "id": "/m/0sxhm9v",
      "name": null,
      "/business/board_member/leader_of": [{}]
    }
    

    当您运行此查询时,您会得到以下结果:

    {
      "result": {
        "name": "Wenjin SU",
        "/business/board_member/leader_of": [{
          "name": null,
          "type": [
            "/organization/leadership"
          ],
          "id": "/m/0sxhm9s"
        }],
        "id": "/m/0sxhm9v"
      }
    }
    

    这不是您所要求的。据说他是leader_of 一个未命名的话题/m/0sxhm9s。现在,如果您访问该主题的 Freebase 页面,您会看到它是一个中介节点,将个人及其角色与特定日期范围内的组织联系起来。您还会注意到,集美大学在此页面上被列为/organization/leadership/organization

    我们现在可以将此中介属性添加到我们的 MQL 查询中以获得您正在寻找的完整关系:

    {
      "id": "/m/0sxhm9v",
      "name": null,
      "/business/board_member/leader_of": [{
        "/organization/leadership/organization": {
        }
      }]
    }
    

    如果您要构建的应用程序具有这样一组预先确定的关系,那么您可以使用探索 Freebase 数据的过程来为这些关系构建 MQL 查询。如果您希望在 Freebase 中找到任意两个实体之间的任意连接,则需要下载 Freebase Data Dumps 并在整个图表上运行 shortest path algorithm

    【讨论】:

    • 感谢@Shawn 的精彩回答。不过,以某种方式从另一个 MQL 获取类型:/organization/leadership/organization 而不必去该页面并找出它,那将是很棒的。有什么办法吗?
    • 可以使用 /type/reflect/any_master 找到关系,如下所述:stackoverflow.com/questions/15732477/… 但我不推荐这种方法,因为它是一种 hack,会在那个时候产生大量请求 -出来。
    • /organization/leadership/organization 是与/organization/leadership/ 关联的属性。您可以通过查询架构或使用 "*":[{}] 惯用语来获取它的属性,但您仍然需要知道哪些返回的属性对您很重要才能知道在哪里查看结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多