2

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

4

2 回答 2

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 提供的任何查找工具,例如通过 Wikipedia 键之一查找或使用 "name~=":"white house" 来查找包含该字符串的所有主题或适用于您的起始数据和使用的任何其他内容案子。

于 2011-12-02T15:43:37.483 回答
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
  }
}]
于 2011-12-02T10:07:57.997 回答