What is Graal?

Graal is a Java toolkit dedicated to querying knowledge bases within the framework of existential rules, aka Datalog+/-.
It is an open source library published under CeCILL v2.1 license (GPL compatible).

Graal has been designed in a modular way, in order to facilitate software reuse and extension. It shoud make it easy to test new scenarios and techniques, in particular by combining algorithms.

The main features of Graal are currently the following:

Graal supports the following IO formats:

The existential rule framework

Existential rules are positive and conjunctive rules that allow to assert the existence of not-yet-known individuals. The framework also includes negative constraints and equality rules (these last rules not being processed by Graal yet). It extends plain datalog rules, as well as Horn description logics, as those at the core of OWL 2 tractable profiles (OWL 2 QL, EL and RL).

This framework is particularly relevant to ontology-mediated query answering. Instead of querying databases, we query knowledge bases composed of facts (data) and ontological knowledge expressed by existential rules. Currently, the considered queries are (unions of) conjunctive queries.

[More: A brief overview of the existential rule framework and its encoding in Dlgp]

The following papers provide introductions to the theoretical foundations of existential rules:

Standalone tools built with Graal

In addition to Graal modules, several standalone tools are available

Keep me informed

Subscribe to Graal newsletter