使用语言属性时Freebase无法正常工作

时间:2015-09-01 14:11:56

标签: database freebase

我想获取有关电影的信息,但如果我使用语言属性(这对我来说很重要),则此查询无效。有没有办法实现这个目标?

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

1 个答案:

答案 0 :(得分:0)

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

假设您使用的是MQLread API,则查询会出现一些问题:

  • 没有名为“终结者”的电影您可以将查询更改为“终结者”或使用单词匹配运算符
  • 类型language(或/film/film
  • 没有属性/type/object
  • 英语的标识符为/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
}]