Dear all,

now with the 3.1 release out I have finally spent some time on working on
MARMOTTA-85, the long awaited exchangeable Sesame backends. I have just
committed a first development prototype of this functionality to the
develop branch. Please feel free to try it out. For now, I have implemented
the following example backends:
- marmotta-backend-kiwi - this is the old database based backend)
- marmotta-backend-native - this backend is based on a Sesame NativeStore
located in the MARMOTTA_HOME, 80% finished and untested
- marmotta-backend-bigdata - this backend is based on the BigData triple
store; since this triple store is licensed under GPL, these modules are not
built by default, you need to run Maven with the profile "-Pnon-free"

Exchanging backends is not completely trivial, because not all backends
support all kinds of functionalities in the same way. For now, I have
decided to use Maven to resolve the dependencies in a proper way. This
means you cannot change backends at runtime. Instead, you need to create
custom launchers with the configuration you want. You can find an example in

launchers/marmotta-webapp-bigdata

You can switch to this directory and simply run "mvn clean tomcat7:run
-Pcleanall" to experiment with this bundle (after installing all of
Marmotta with "mvn clean install -Pnon-free").

A note on the BigData backend: this is a bit of a mess, because:
- BigData only supports the Sesame 2.6 API, so I had to wrap it with the
new Sesame 2.7 methods (HACK!)
- BigData essentially ignores the Sail stack concept of Sesame, but we make
heavy use of it in Marmotta, so I designed the wrapper classes in a way
that the stack will work in most situations - the exception will probably
be SPARQL where BigData uses its own direct access

Feel free to try this out, especially if you have the requirement to work
with bigger amounts of data. But no guarantees from me :-)

Greetings,

Sebastian

Reply via email to