Freebase:获取名称&某个语言的一个查询中的维基百科ID

时间:2011-12-01 15:39:49

标签: freebase mql

是否可以在MQL中执行一个查询以从Freebase获取某种语言的名称和维基百科ID?如果可能的话,是否也可以为一组语言(例如德语和英语)执行此操作?

2 个答案:

答案 0 :(得分:6)

询问并回答,但这是一个稍微好一点的查询形式:

[{
  "id": "/en/white_house",
  "mid": null,
  "de:name": {
    "lang": "/lang/de",
    "value": null
  },
  "en:name": null,
  "wiki_de:key": {
    "/type/key/namespace": "/wikipedia/de_id",
    "value":         null,
    "optional": True,
  },
  "wiki_en:key": {
    "/type/key/namespace": "/wikipedia/en_id",
    "value":         null,
    "optional": True,
  }
}]​

如果Wikipedia密钥包含特殊字符,它们将被转义,因此您应该咨询 http://wiki.freebase.com/wiki/MQL_key_escaping了解如何取消它们。

此查询更好的一些原因包括:

  • 英语是默认语言,因此不需要为名称
  • 指定
  • 它消除了命名空间查找的模糊性。您的原始查询实际上是在任何名称空间中查找键“white_house”(并在“/ en”中找到它,它等同于id“/ en / white_house”)

请注意,您无需按ID进行查找。您可以使用MQL提供的任何查找工具,例如通过其中一个维基百科密钥查找或使用“name~ =”:“white house”查找包含该字符串的所有主题或其他适用于您的起始数据和使用的主题情况下。

答案 1 :(得分:0)

在玩了MQL后,我终于想出了以下查询(white_house):

[{
  "id": null,
  "mid": null,
  "de:name": {
    "lang": "/lang/de",
    "value": null
  },
  "en:name": {
    "lang": "/lang/en",
    "value": null
  },

  "key": {
    "value": "white_house"
  },
  "wiki_de:key": {
    "/type/key/namespace": "/wikipedia/de_id",
    "value":         null
  },
  "wiki_en:key": {
    "/type/key/namespace": "/wikipedia/en_id",
    "value":         null
  }
}]