GraphDB Enterprise supports consistency violation checks using standard OWL2RL semantics. It is possible to define rulesets which contain consistency rules.
- Materialisation and consistency mix: the rulesets support the definition of a mixture of materialization and consistency rules. This follows the existing naming syntax “id:” and “Consistency:”
- Multiple named rulesets: GraphDB Enterprise supports multiple named rulesets
- No down time deployment: The deployment of new/updated rulesets can be done to a running instance
- Update transaction ruleset: Each update transaction can specify which named ruleset to apply. This is done using “special” RDF statements
within the update transaction
- Consistency violation exceptions: GraphDB Enterprise throws exceptions if a
consistency rule is violated. The exception includes detail as to which RDF statements
violated a rule and which rule has been violated
- Consistency Rollback: if a consistency rule is violated within an update transaction
the transaction will be rolled back and no statements will be committed
GraphDB inference engine background
GraphDB requires the .pie file of each ruleset to be compiled first in order to instantiate an inferencer. The process includes several steps:
#. A generation of a java code out of the pie file contents using the builtin Owlim rule compiler
#. Then, this java code is compiled (it requires JDK instead of JRE so that the java compiler to be available through standard java instrumentation infrastructure)
#. Once compiled, that code is instantiated using a custom bytecode class loader. Current implementation instantiate such inferencer when repository is initialized. The process is slow and may take some time depending on the ruleset used and the rules included.