Using GraphDB (formerly OWLIM) with Semantic Turkey

The following notes are necessary for Semantic Turkey version < 1.0 (the one used with VocBench 2). None of the following is necessary for ST 1.0 and following versions, nor for Vocbench 3

GraphDB is a sesame-compliant triple store. It doesn't even needs a dedicated client and a plain remote connection from the Sesame STOntologyManager of Semantic Turkey is enough to connect to a RDF repository governed by GraphDB. However, there is a foundamental difference from a plain Sesame2 server, in that the default graph (called null context in sesame) is managed differently.

In Sesame2, when queried with inference=true, the default graph returns all triples in the dataset, including:

  • explicit triples from the default graph
  • inferred triples
  • and also explicit triples from other named graphs (though returned as implicit)

In GraphDB, the default graph, when queried with inference=true, does not return the explicit triples of the other graphs

This is being reported here: http://answers.ontotext.com/questions/1166/null-context-inference-and-explicit-triples-from-other-graphs-inconsistency-with-sesame2-semantics

We have solved this issue by providing an additional parameter in sesame2 remote connections, which informs the API on the kind of connected repository, so that they expose a uniform access to the dataset, hiding these idiosyncrasies.

Thus, in order to let Semantic Turkey work with GraphDB (or other triple stores adopting the same management of the default graph), you just need to follow these instructions:

  • create an empty repository in your OWLIM server, then create a new project on ST by selecting a sesame remote connection
  • set the new additional parameter “inferredNullContextContainsAllTriples” to “false”.
  • the parameter is automatically suggested when creating a new project, but its value is set to true by default (sesame internal triplestore behavior)

Finally, if you already have a project (e.g. before this property was introduced in Semantic Turkey 0.10), there is no need to rebuild it from scratch as this parameter only affects the way ST queries the repository and not the way the data is stored. So, you can access the property file at the following path:

SemanticTurkeyData\projects\<yourproject>\model.config

and add the line:

inferredNullContextContainsAllTriples=false

or replace true with false in case it was already set.

From version 0.11 on, Semantic Turkey also allows to modify the project properties from the UI of the system