Applications using semantic technologies, requires using triple stores. In scope of SALUS project, many different components need triple store as their back-end. Two mainly used triple stores are Virtuoso Quad Store and Jena TDB. Virtuoso Quad Store is scalable, high-performance and open-source triple store; however requires seperate installation of Virtuoso Universal Server and additional libraries to work with Jena RDF API. Jena TDB is native file based triple store of Jena, which is highly scalable and requires no extra tool other than Jena Framework.
Purpose of this project is create a unified interface, which is JenaStore
, which allows to use either Virtuoso Quad Store or Jena TDB as backend and provides Jena compliant Java API to manipulate underlying triple store.
===========
Apache Maven is required to build the triplestore. Please visit http://maven.apache.org/ in order to install Maven on your system.
Under the root directory of the triplestore project run the following:
$ triplestore> mvn install
In order to make a clean install run the following:
$ triplestore> mvn clean install
===========
After building the project, triplestore-1.0.0.jar is found under target directory. To use the triplestore, archive file can be directly added as dependency, or can be specified as maven dependecny by adding following to pom.xml.
<dependency>
<groupId>tr.com.srdc</groupId>
<artifactId>triplestore</artifactId>
<version>1.0.0</version>
</dependency>
since above mentioned installation process deploys triplestore to local maven repository.
Interface for managing triple store is provided by the TripleStoreProvider
. TripleStoreProvider is designed as a singleton
and instance of it can be retrieved by static method TripleStoreProvider.getInstance()
TripleStoreProvider has number of utilty methods which are responsible of creation, retrieval and removal of triple stores with different settings. Detailed explanation for these methods can be found as Javadocs.
Basic methods of TripleStoreProvider are:
-createStore(type, name) : creates a JenaStore with given type and name
-getStore(name) : returns existing store with given name
-removeStore(name) : removes the store with given name and its all related files