2

我在我的项目中使用 Dbpedia,我想创建一个本地 sparql 端点,因为在线端点不可靠。我下载了数据转储(大型 NT 文件)并决定使用 Jena TDB。使用 NetBeans IDE 使用输入流读取源 NT 文件,然后使用以下代码行将 NT 文件加载到 datasetGraph 中:

 TDBLoader.load(indexingDataset, inputs, true);

我让它运行了大约 5 个小时,但它仍然没有完成。虽然在我的笔记本电脑上执行此操作似乎会减慢速度,这可能是因为它占用了我所有的物理内存空间。有没有更快的方法来做到这一点???

文档说要使用 tdbloader2,但在使用 windows 时它仅适用于 linux。如果有人可以告诉我如何使用 cygwin 在 Windows 中使用此工具,那将非常有帮助。请考虑到我从未在 Windows 中真正使用过 Cygwin。

4

1 回答 1

6

最新版本的 TDB 有两个用于批量加载的命令行实用程序:tdbloader 和 tdbloader2。第一个是纯 Java,它可以在 Windows 以及任何带有 JVM 的机器上运行。第二种是 Java 和 UNIX shell 脚本的混合(特别是它使用 UNIX 排序)。它在 Linux 上运行,我不确定它在 Cygwin 上运行。我建议你在 64 位机器上使用 tdbloader,尽可能多的 RAM。:-)

最新版本的 TDB 可在此处获得:http: //www.apache.org/dist/incubator/jena/jena-tdb-0.9.0-incubating/jena-tdb-0.9.0-incubating-distribution.zip

TDB 的开发版本有一个额外的批量加载器命令:tdbloader3。这是 tdbloader2 的纯 Java 版本。我们没有使用 UNIX 排序(仅适用于文本文件),而是对二进制文件使用纯 Java 外部排序。有关 tdbloader3 的更多详细信息,请搜索 JENA-117 问题。

您可以在 Apache 快照存储库中找到 TDB 的 SNAPSHOT,警告您尚未发布。

对于更喜欢冒险的人来说,还有 tdbloader4,它不包含在 Apache Jena 中,它被认为是一个实验原型。tdbloader4 使用 MapReduce 构建 TDB 索引(即 B+Tree 索引)(这稍微扩展了 MapReduce 模型,但它可以工作)。你可以在这里找到 tdbloader4:https ://github.com/castagna/tdbloader4

最后,在 Windows 上,我对您的建议是:下载最新的 TDB 官方版本,并在具有大量 RAM 的 64 位机器上使用 tdbloader。如果您没有,请使用 m1.xlarge EC2 实例(即 15 GB 的 RAM)(或等价物)。

如需更多帮助,我邀请您加入官方的 jena-users@incubator.apache.org 邮件列表,我相信您将获得更好更快的支持。

于 2012-03-11T10:15:14.183 回答