如何从Freebase获取所有电影ID列表?

dds*_*swy 5 rdf freebase mql

在我几年前开展的一个项目中,我正在构建一组关于Freebase电影的数据.一个简单的shell脚本下载了"film.tsv"文件(来自http://download.freebase.com/datadumps/latest/browse/film/film.tsv).然后我使用该文件中的"id"字段为每部电影构建必要的MQL请求(检索我感兴趣的其他属性,例如演员,流派).

在看了今天的开发人员指南之后,我意识到Freebase已经发生了相当大的变化,我发现之前使用的转储文件已经不再可用了.我还看到转储文件格式现在是RDF,据我所知,转储文件现在只能作为单个22GB存档使用.

如果可能的话,我想避免每次我想重建我的数据集时下载22G文件,那么是否可以再检索单个转储文件,例如film.tsv文件?

如果没有,是否有其他方法可以获得完整的电影ID列表?

Sha*_*ter 4

目前没有计划替换 film.tsv。您可以从RDF 转储中获取当前的电影 ID 列表,如下所示:

zgrep $'\ttype\.object\.type\tfilm\.film' freebase-rdf.gz
Run Code Online (Sandbox Code Playgroud)

然后,当您需要更新列表时,您可以查询MQL Read API以获取自上次更新以来添加的新电影列表:

[{
  "type": "/film/film",
  "id": null,
  "name": null,
  "timestamp": null,
  "timestamp>=": "2013-12",
  "sort": "-timestamp"
}]
Run Code Online (Sandbox Code Playgroud)

由于 API 一次返回 200 个结果,因此您需要使用游标来获取完整的结果列表。