Re: Implementing OWL2-RL with a RETE rule engine.

The OWL2-RL semantics [1] can be implemented both with forward-chaining
(e.g. RETE)
and with backward-chaining rules. It depends on the type of reasoning
someone wants. For example,
in a forward-chaining implementation, there is a complete materialization of
the semantics in the KB of the rule engine
in advance, whereas in a backward-chaining implementation the reasoning is
performed at runtime upon a request (query).
A good example is the Jena API [2] that provides both a forward- and a
backward-chaining implementation of the pd*
entailments (it provides also a hybrid rule engine that combines forward and
backward chaining rules).

Another idea is to separate the reasoning on the ontology schema (TBox) from
the reasoning on the instances (ABox).
The former can be performed using a DL reasoner (e.g. Pellet [3]) and the
latter with a rule engine (e.g. Jena). Such an implementation
can take advantage of the TBox reasoning capabilities of DL reasoners, which
are quite efficient in computing the terminological
semantics, and the reasoning scalability that a rule engine can offer in
large extensional knowledge bases. This is the idea of
DLEJena [4][5] that uses Pellet for TBox reasoning and the Jena's
forward-chaining rule engine in order to run a set
of domain-dependent forward-chaining entailment rules that are generated at
runtime, based on the Pellet's KB. Such a combination
usually results in better reasoning performance than of implementing
directly the semantics using only rules.

Another interesting issue is whether an implementation invalidates the
conformance requirements for OWL 2 RL or not (Theorem PR1 in [1]).
In most practical cases, the classes of an ontology are not treated as
instances at the same time and the reasoning is performed under the OWL 2
direct semantics. Such an implementation is not a conformant one, since OWL2
RL does not impose such a restriction, but it usually results in
better reasoning performance, since some inferences are omitted.

George

[1]
http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules
[2] http://jena.sourceforge.net/
[3] http://clarkparsia.com/pellet/
[4] http://lpis.csd.auth.gr/systems/DLEJena/
[5] http://dx.doi.org/10.1016/j.websem.2009.11.001

Received on Tuesday, 20 April 2010 18:08:29 UTC