【发布时间】:2012-12-13 07:27:47
【问题描述】:
我目前正在为我的应用程序使用 freebase 数据... 只想要电影、电视等域中的一些信息。发现将来不支持 tsv 转储并且不完整。 quad 转储包含所有需要的信息。问题是更新数据库,应该再次下载整个转储并与已经下载和处理的数据进行交叉检查,然后进行更新。有没有其他方法可以更新数据或获取增量更新?
【问题讨论】:
标签: freebase
我目前正在为我的应用程序使用 freebase 数据... 只想要电影、电视等域中的一些信息。发现将来不支持 tsv 转储并且不完整。 quad 转储包含所有需要的信息。问题是更新数据库,应该再次下载整个转储并与已经下载和处理的数据进行交叉检查,然后进行更新。有没有其他方法可以更新数据或获取增量更新?
【问题讨论】:
标签: freebase
您可以在 API 中查询自上次更新以来在您感兴趣的域中发生的更改,但取决于更改的数量,您可能会遇到配额问题。
没有生成增量转储,因此您需要使用两个完整转储自己生成差异,但这样做会很简单,特别是因为新的 RDF 转储似乎是按主题 MID 排序的,这与四元转储不同。
【讨论】:
正如 Tom 所指出的,新的 RDF 转储按主题排序,这使您可以通过遍历文件来有效地区分整个数据集。基本伪代码如下:
此算法以线性时间运行,内存使用量很少,因此您可以轻松地在本地计算机上处理数 GB 的文件。
获得 RDF 转储的差异后,您需要编写一些代码将补丁应用到现有数据库。由于补丁的排序方式,在尝试添加或删除事实之前,您始终可以依赖数据库中存在的主题。
【讨论】: