This project has retired. For details please refer to its Attic page.
Apache Stanbol - Rules


Stanbol Rules is a component that supports the construction and execution of inference rules. An inference rule, or transformation rule, is a syntactic rule or function which takes premises and returns a conclusion. Stanbol Rules allows to add a layer for expressing business logics by means of axioms, which encode the inference rules. These axioms can be organized into a container called recipe, which identifies a set of rules that share the same business logic and interpret them as a whole.

Usage Scenarios

Integrity check from data fusion

With Stanbol Rules the administrator can define integrity checks for data fetched from heterogeneous and external sources in order to prevent unwanted formats or inconsistent data. In such a way the administrator is able to configure the CMS in order filter knowledge retrieved in Linked Data, e.g., via the Enhancer, that satisfies some integrity driven constraint. The constraint can be defined by means of Stanbol Rules. For instance in a CMS which collects core knowledge about musicians it might possible to define integrity check rules which keep only entities that are typed as Musicians in DBpedia [5] and have an associated image, a birth place and the instrument played. Any other entity not satisfying the constraints is discarded.

Vocabulary harmonization

Supposing we want to use some dataset in Linked Data as external knowledge bases for a generic CMS enhanced with Stanbol. Now the problem how to use data from those datasets expressed with some external and heterogeneous vocabularies or ontologies within the CMS has. Furthermore the CMS has its own way to formalize knowledge, namely the its Ontology Network managed by Stanbol OntoNet. The solution is provided by Refactor which allows to interpret the rules of inference as refactoring rules in order harmonize external data to the Stanbol's ontologies.

Also, Stanbol Rules can be used to derive new knowledge or integrate information from different semantically enhanced contents.


Stanbol allows to provide rules to other component, i.e., Stanbol Reasoners, or to third parties in three different formats.

The rule pattern used for representing rules is the modus ponens, e.g. if condition then consequent . For example the axiom "every person has a father" can be expressed with the modus ponens in the following way:

if X is a person then X has a father

and by means of predicate calculus as:

∀x∃y.Person(x) ⇒ hasFather(x, y)

where Person and hasF ather are two predicates.

The Stanbol Rules component allows to add a layer which enables Stanbol to express business logics by means of axioms, i.e., rules. These axioms can be organized into a container called Recipe, which groups and identifies set of rules which share the same business logic and interprets them as a whole.



[1] SWRL
[2] Jena Rules
[4] Linked Data
[5] DBpedia

Back to components