Freebase:以特定语言在一个查询中获取姓名和维基百科ID

Ber*_*ant 2 freebase mql

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

Tom*_*ris 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,
  }
}]?
Run Code Online (Sandbox Code Playgroud)

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

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

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

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