我想问一个用于大型数据集的好的三元组,它应该:
- 扩展性好(数百万个三元组)
- 有一个Java接口
您应该考虑使用OpenLink Virtuoso商店。它可通过开源许可证获得,并可扩展到数十亿个三元组。您可以通过 Sesame 和 Jena API 使用它。
有关大型三联店的概述,请参见此处。Virtuoso 绝对比 BigData 更容易设置。除此之外,我还使用了 Sesame NativeStore,它的扩展性不太好。
4Store也是一个不错的选择,虽然我没用过。Virtuoso 优于 4Store 的一个好处是您可以轻松地将标准关系模型与 RDF 混合,因为 Virtuoso 是一个关系数据库。
引用 4store Web ...
4store 的主要优势在于其性能、可扩展性和稳定性。除了 RDF 存储和 SPARQL 查询之外,它没有提供许多功能,但如果您正在寻找可扩展、安全、快速和高效的 RDF 存储,那么 4store 应该在您的候选名单上。
我个人用非常大的数据库(多达 20 亿个三元组)测试了 4store,结果非常好。4store 是用 C 编写的,在 Linux/Unix 64 位平台上运行,当前版本 1.1.1 已部分实现SPARQL 1.1。
4store 可以部署在商品服务器集群上,这可以提高查询的性能,并且断言吞吐量可以达到 100 KTriples/秒。但是,即使您在单个服务器中使用它,您也将获得相当不错的性能。
在南安普顿大学,我们选择在研究项目中使用非常大的数据集,对于我们的网站管理员团队也是如此,请参阅南安普顿数据存储和 ECS 开放数据。
您还可以在此处列出所有可用于查询和管理 4store客户端库的库。此外,4store 的 IRC 频道有一个活跃的用户社区,如果您遇到任何问题,他们会提供帮助。
如果你是 Linux/Unix 用户,4store 绝对是一个不错的选择。
我也会推荐 4store,但本着充分披露的精神,我是首席架构师 :)
如果您想利用 RDF 存储的标准化,那么您应该考虑使用实现 SPARQL 的 Java 库,而不是使用本机公开 JAVA API 的库。
否则,由于在它们之间移动的努力,您最终可能会被您首先选择的任何存储卡住,这是典型的 SQL 迁移地狱。
我个人对GraphDB非常满意。它在具有 150 亿个三元组的中型硬件(256GB 内存服务器)上运行良好。这可以通过 sesame 和 jena 接口访问。(虽然耶拿是测试版)。
如果您负担得起,Oracle 12c实例也不错。并且可能适合现有的 Oracle 基础设施(备份等)。
Virtuoso 7.1的可扩展性非常好,可以以合理的成本处理海量数据。不幸的是,它的 SPARQL 标准合规性参差不齐
@Steve - 不知道如何评论,所以我想我会一次回答 2 个问题。
SPARQL 的 JDBC 驱动程序如下:
http://code.google.com/p/jdbc4sparql/
支持 SPARQL 协议和 SPARUL(通过 SPARQL 协议作为更新,而不是通过 SPARUL 协议)。
@myahya
强烈推荐 4Store,因此值得作为候选人进行评估。
Virtuoso 还具有原生 JDBC 驱动程序并支持大型数据集(多达 120 亿个三元组)
www.openlinksw.com/wiki/main/Main/
此外,甲骨文有一些东西,但要准备好花大价钱:
http://www.oracle.com/technetwork/database/options/semantic-tech/index.html
除了 4Store、Virtuoso 和 Owlim,Bigdata也值得关注。