【问题标题】:Freebase - query media_common on book_edition to get /book/book?Freebase - 在 book_edition 上查询 media_common 以获取 /book/book?
【发布时间】:2014-11-12 10:13:39
【问题描述】:

这里是freebase 的完整初学者,试图了解如何通过/book_edition/media_common/cataloged_instance/isbn13 进行查询以查找/book/book

我尝试了这个查询并得到了这个错误:Type /book/book_edition does not have property media_common:

[{
  "type": "/book/book",
  "editions": [{
    "media_common": [{
      "cataloged_instance": [{
        "isbn13": "9780812519112" //example isbn13 from ender's game - https://www.freebase.com/m/04v8gr6
      }]
    }]
  }],
  "id": null
}]

编辑:这是我用来获取 book_edition 上已弃用的 ISBN 字段的查询

[{
  "type": "/book/book",
  "editions": [{
    "ISBN": "0312932081"
  }],
  "id": null
}]

【问题讨论】:

    标签: freebase mql


    【解决方案1】:

    该属性实际上是/media_common/cataloged_instance/isbn13,您可以通过探索架构来发现它。因为它来自与 /book/book/editions 的预期类型不同的类型(即 /book/book_edition,您需要使用完全限定名称。我添加到下面的查询中的 author 属性也是如此。

    [{
      "type": "/book/book",
      "editions": [{
        "/media_common/cataloged_instance/isbn13": "9780812519112"
      }],
      "id": null,
      "name": null,
      "/book/written_work/author": null
    }]
    

    不使用允许我们在属性名称上删除类型前缀的简写符号,这个查询看起来像:

    [{
      "/book/book/editions": [{
        "/media_common/cataloged_instance/isbn13": "9780812519112"
      }],
      "/type/object/id": null,
      "/type/object/name": null,
      "/book/written_work/author": null
    }]
    

    将属性名称扩展为完全限定的版本是由查询处理器机械地完成的,而不需要对架构有任何真正的了解。相反,图遍历将属性名称视为不透明的字符串。

    【讨论】:

    • 谢谢汤姆,它有效。如果您能解释原因,我将不胜感激...我在示例中使用的嵌套语法与将其全部作为一键执行有何不同...(我也有editions > media_common > cataloged_instance > isbn13,我认为它做同样的事情
    • 您将链接/边缘跟踪(这是嵌套所做的)与属性命名混淆了。它们(大部分)彼此无关。该物业的全名是/media_common/cataloged_instance/isbn13。没有类型 /book_edition' (it's /book/book_edition') 并且 isbn13 属性与类型 /media_common/cataloged_instance 相关联。出于图遍历的目的,属性名称只是一个没有结构的不透明字符串。
    • 嗯。我已经使用该语法来查询常规 ISBN 值(在 book_edition 上),看起来我还有很多东西要学。谢谢
    • 如果您发布一个指向有效查询的链接,我可以尝试解释它与此示例的不同之处。
    • 好的,不用担心。第二个查询的唯一微妙之处在于 MQL 知道通过 /book/book/editions 链接的事物的“预期类型”是 /book/book_edition,因此您的 ISBN/book/book_edition/ISBN 的简写
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2015-02-10
    • 1970-01-01
    • 2021-03-20
    • 2017-01-12
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多