Ease of installation/use is the most important factor here - not performance.
Small is OK as large datasets are not expected.
Ease of installation/use is the most important factor here - not performance.
Small is OK as large datasets are not expected.
I'd also recommend sesame, its lightweight, pretty easy to install, and provides good performance for small datasets. Query performance is far better with Sesame 1.2.x than Sesame 2.x because of the addition of context support to the 2.x series.
I've tested sesame installation/deployment with tomcat, resin, and jetty, and it worked easily with all of them. I don't recommend the bindings to RDBMS components such as Postgres or MySQL, at least in the 1.x series, performance was not acceptable, even for prototype applications. The in-memory and native implementations provide good query performance and offer simple persistence, though they lack true transactions.
Jena has a decent API, and a lot more support for databases, reasoners, etc, but has a larger footprint, and is a little more cumbersome to use on the whole.
I've been impressed with ARC2 as a PHP/MySQL offering. The project website has a helpful "Getting Started" to get you up and running quickly and questions/problems are addressed quickly on the mailing list. Depending on what you are trying to do, SPARQLscript, a mini-language add-on to ARC2 for processing query results may be very useful.
Old question, but just as an update:
I have tried Virtuoso, OpenRDF Sesame, and 4store (all in their June 2012 versions) and found 4store the nicest to work with, as loading data, starting and stopping the server, etc., is quite simple.
Check out the SWI-Prolog Semantic Web Library. Should be very easy to use, even with little knowledge of Prolog.
We use sesame. It is implemented in Java therefore you will have cross-platform support. If you are comfortable working with Tomcat, it should be pretty easy to install.
If you are familiar with Ruby, the RDF.rb library is very quick to get started with; installation via RubyGems is as simple as:
$ sudo gem install rdf
In addition to working with in-memory RDF data, currently available RDF.rb storage adapters include SQLite, PostgreSQL, MongoDB, Cassandra, RedStore and Sesame.
Loading and parsing RDF data from the web also could not be any easier:
graph = RDF::Graph.load("http://datagraph.org/jhacker/foaf.rdf")
See the RDF.rb project page for tutorials, code examples and API documentation.
I tried Virtuoso Open Source, Jena and Sesame....and the latter, also thanks to this...is much more easy to install.
If you are a .NET developer you may be interested in Intellidimensions Semantic SDK. If you want to load a graph in memory and then execute SPARQL queries against that graph the code is as simple as:
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");
If you are a student or researcher they will usually provide a free license if you contact them.
4store is the easiest and fastest triple store I have worked with