使用语言 属性 时 Freebase 不工作

Freebase not working when language property is used

我想获取有关电影的信息,但如果我使用语言 属性(这对我来说很重要),则此查询不起作用。有什么办法可以实现吗?

[{
  "type": "/film/film",
  "name": "terminator",
  "mid": null,
  "language": "en",
  "starring": [{
    "actor": null,
    "mid": null
  }]
}]

首先,强制性警告 - 所有 Freebase API 都将在不久的将来 消失 ,因此您不应该基于它们编写新代码。

假设您使用的是 MQLread API,您的查询存在一些问题:

  • 没有电影叫 "terminator" 您可以将查询更改为 "The Terminator" 或使用单词匹配运算符
  • 类型/film/film(或/type/object)没有属性language
  • 英文标识符是/lang/en

此查询将对默认语言(英语)进行近似词匹配并显示所有语言的姓名:

[{
  "type": "/film/film",
  "name~=": "terminator",
  "name": {
  },
  "mid": null
}]

如果要更改所有标签的语言,可以使用 lang 查询参数,例如

https://www.googleapis.com/freebase/v1/mqlread/?lang=%2Flang%2Fzh&query=%5B%7B+%22type%22%3A+%22%2Ffilm%2Ffilm%22%2C+%22n1%3Aname%22%3A+%7B+%22value%22%3A+%22The+Terminator%22%2C+%22lang%22%3A+%22%2Flang%2Fen%22+%7D%2C+%22name%22%3A+null%2C+%22mid%22%3A+null+%7D%5D

将语言切换为中文,然后在查询中覆盖它以使用英语查询,如下所示:

[{
  "type": "/film/film",
  "n1:name": {
    "value": "The Terminator",
    "lang": "/lang/en"
  },
  "name": null,
  "mid": null
}]