易于安装/使用是这里最重要的因素 - 而不是性能。
小是可以的,因为不需要大型数据集。
我还推荐sesame,它轻量级,非常易于安装,并且为小型数据集提供了良好的性能。Sesame 1.2.x 的查询性能比 Sesame 2.x 好得多,因为 2.x 系列增加了上下文支持。
我已经使用 tomcat、resin 和 jetty 测试了 sesame 的安装/部署,并且它们都可以轻松地工作。我不建议绑定到诸如 Postgres 或 MySQL 之类的 RDBMS 组件,至少在 1.x 系列中,性能是不可接受的,即使对于原型应用程序也是如此。内存和本机实现提供了良好的查询性能并提供了简单的持久性,尽管它们缺乏真正的事务。
Jena有一个不错的 API,对数据库、推理器等有更多的支持,但占用空间更大,总体上使用起来也比较麻烦。
ARC2作为 PHP/MySQL 产品给我留下了深刻的印象。该项目网站有一个有用的“入门”,可以让您快速启动和运行,并且可以在邮件列表中快速解决问题/问题。根据您要执行的操作,SPARQLscript,一个用于处理查询结果的 ARC2 迷你语言插件可能非常有用。
老问题,但只是作为更新:
我尝试过 Virtuoso、OpenRDF Sesame 和 4store(都在 2012 年 6 月的版本中),发现 4store 最适合使用,因为加载数据、启动和停止服务器等非常简单。
查看SWI-Prolog 语义网络库。应该很容易使用,即使对 Prolog 知之甚少。
如果您熟悉 Ruby,RDF.rb库可以很快上手;通过 RubyGems 安装非常简单:
$ sudo gem install rdf
除了处理内存中的 RDF 数据,当前可用的 RDF.rb 存储适配器包括 SQLite、PostgreSQL、MongoDB、Cassandra、RedStore 和 Sesame。
从 Web 加载和解析 RDF 数据也再简单不过了:
graph = RDF::Graph.load("http://datagraph.org/jhacker/foaf.rdf")
有关教程、代码示例和 API 文档,请参阅 RDF.rb 项目页面。
我尝试了 Virtuoso Open Source、Jena 和 Sesame....而后者,也多亏了这个...更容易安装。
如果您是 .NET 开发人员,您可能对Intellidimensions Semantic SDK感兴趣。如果你想在内存中加载一个图,然后对该图执行 SPARQL 查询,代码很简单:
var gds = new GraphDataSource();
gds.Read<RdfXmlReader>(File.ReadAllText(@"C:\graph.owl"));
Table results = gds.Query("select ?s ?p ?o where {?s ?p ?o} limit 10");
如果您是学生或研究人员,他们通常会在您联系他们时提供免费许可证。
4store 是我合作过的最简单、最快的三联商店