Sesame

From BioAssist
Jump to: navigation, search

Sesame triple store

  • Developed by Aduna under Aduna BSD-style license
  • Universal triple store (i.e. can store and retrieve only triples, no additional metadata or specific information)

1. Available interfaces for different programming languages

  • Simple interface (add triple, remove triple, query triples via SPARQL and SeRQL)
  • Has pure-Java store implementation, e.g. requires no additional libraries to run
  • Can be run in embedded (single client) and standalone mode (multiple clients)
  • Can speak to client via HTTP protocol: easy to implement adapters in other languages (for Perl, PHP, Python, Ruby already done)

2. Scalability

  • Supports farming, that allows results from several repositories to be merged into one

3. Performance

  • Sesame was run LUBM test with 70M triples and shows good results

4. Implemented W3C standards

  • SPARQL, RDFS, partial OWL-Lite (via BigOWLIM)

5. Maintenance and quality of code

  • Big community (support, bug reports, forum, maillist) has gathered ~1300 members past years
  • Approx 10 downloads per months for v2.2.4 (as to SourceForge statistics)
  • Several satellite projects: some of them extend Seame's functionality (e.g. Elmo, Alibaba) while others can be inserted and used as a part of the Sesame framework (e.g. OWLIM, BigData)
  • 4 programmers working on the project (as to JIRA)

Programming with Sesame

Sesame is easy to program. After reading the documentation, you are ready to program. Documentation guides you though all possible usages of Sesame. Some hints and code snapshots can be located in forum and in maillist.

Sesame supports SeRQL query language, which has simpler syntax then SPARQL. The fact that Sesame team has implemented internal query language, features of which are referred in W3C proposals, speaks for high professionalism of Sesame team.

Using Maven2 architecture simplifies integration of Sesame modules into the project.

My personal experience on programming for Sesame are mentioned here.

The details about RDMBS store

RDMBS store can be run in several modes: horizontal (table per predicate) and vertical (one table for all triples) modes. I found both modes non-optimal for querying complicated graph structures.

The details about Native store

Native sore is difficult to profile, as the caller does not know what exact query is executed over the store.

The details about BigOWLIM store

The details about Mulgara store

The details about Jena store