Home

Awesome

Blazegraph-Based TPF Server

The Blazegraph-Based TPF Server is a Linked Data Fragment (LDF) server that provides a Triple Pattern Fragment (TPF) interface using the Blazegraph graph database as backend.

Compiling

Before you can use the Blazegraph-Based TPF Server, you have to obtain the source code and compile it:

git clone https://github.com/hartig/BlazegraphBasedTPFServer.git
cd BlazegraphBasedTPFServer
mvn package

Configuration

To run an instance of the Blazegraph-Based TPF Server you need a configuration file. This file, usually called config.json, is a JSON document in which you specify the dataset(s) to which your server instance provides a TPF interface. The Blazegraph-Based TPF Server comes with an example of such a file, called config-example.json. Hence, you may copy this file to config.json and adjust it to your needs.

The configuration file contains a section for "datasources" to which you add every dataset as a separate entry. The "settings" section of such an entry for Blazegraph-based data sources contains the typical Blazegraph configuration options (which, in a standard Blazegraph setup, would be given in a properties file). In particular, for persistent, disk-based datasets (Blazegraph buffer mode "DiskRW" or "DiskWORM") the entry "com.bigdata.journal.AbstractJournal.file" has to refer to the corresponding Blazegraph journal file; for in-memory datasets (buffer mode "MemStore") the entry "file" has to refer to an RDF document. In the latter case the data from the document will be imported when you start your Blazegraph-Based TPF Server; for big datasets this import may take a bit of time (hence, your server is not available immediately) and it may require a significant amount of main memory.

Running

The server can be started as follows:

java -server -Xmx4g -jar target/BlazegraphBasedTPFServer-0.1.0.jar config.json

You may have to increase the -Xmx parameter if you use an in-memory dataset.

License

The Blazegraph-Based TPF Server is written by Olaf Hartig and released under the Apache License, Version 2.0.