1

我想查询freebase,以获取有关名人的一些基本信息。例如,我想知道麦当娜的出生地和性别。

我通过以下方式获得了麦当娜的朋友:

https://www.googleapis.com/freebase/v1/mqlread ?&query={"id":"/en/madonna","name":null,"type":"/base/popstra/celebrity"," /base/popstra/celebrity/friendship":[{"participant":[]}]}

但是,我对这个请求的理解非常糟糕。我怎样才能改变它以获得我上面谈到的信息?

我在想:

https://www.googleapis.com/freebase/v1/mqlread ?&query={"id":"/en/madonna","name":null,"type":"/base/popstra/celebrity"," /base/popstra/celebrity/gender":[{"gender":}], "/base/popstra/celebrity/place_of_birth":[{"出生地":}]}

但它不起作用。

4

1 回答 1

3

以下是为 Freebase 主题构建 MQL 查询的方法:

  1. 查找符合您查询的示例主题(例如,麦当娜
  2. 转到查询编辑器并为该主题的 ID 构建一个简单的查询:

    [{ "id": "/en/madonna", "name": null }]​</p>

  3. 转到示例主题页面,单击“编辑此主题”并找到您要查询的事实(例如出生日期)

  4. 您可以看到出生日期是人员 (/people/person) 类型的一部分。
  5. 单击 Person 右侧的小扳手图标以转到该类型的架构页面
  6. 从那里,您可以看到存储出生日期的属性称为 /people/person/date_of_birth。
  7. 将您想要的属性添加到查询中,如下所示:

    [{ "id" "/en/madonna", "name": null, "/people/person/date_of_birth": null, "/people/person/gender": null }]​</p>

  8. 查询还可以指定一个默认类型(例如 /people/person),这使得属性路径更短:

    [{ "id" "/en/madonna", "name": null, "type": "/people/person", "date_of_birth": null, "gender": null }]​</p>

  9. 但是每个级别的查询只能有一个默认类型,所以如果你想混合其他类型的属性,你需要使用完整的属性 ID:

    [{“id”:“/en/madonna”,“name”:null,“type”:“/people/person”,“date_of_birth”:null,“gender”:null,“/base/popstra/celebrity/友谊”:[{“参与者”:[]}]}]​</p>

  10. 当您的查询在查询编辑器中工作时,只需单击右上角的“链接”菜单即可获取 MQLRead 链接,该链接将对该 API 进行查询。

于 2012-10-16T16:16:37.857 回答