Re: controlled sequencing of rule execution and OWL reasoning

Re: controlled sequencing of rule execution and OWL reasoning

Hi Geoff,

May be my understanding of what you mean by “to control and sequence rule execution and reasoning” is not correct. However I would like to warn you about potential strategic mistakes in this direction.

First of all, if you would like to leverage the advantages of OWL-DL reasoning, it is recommended to avoid any non-standard control on reasoning. In this case you will achieve better interoperability with other systems. This is the main goal of semantic web technologies, using the OWL 2 standard.

In the case you are looking for the control on the sequence of rule execution, which implies the result of the reasoning would depends on the execution sequence, I would strongly recommend to not go this way because it is a step away from the non-procedural semantics of OWL. Many AI efforts in 1970s relied on production (rule based) systems, where the result of reasoning depends on the sequence of rule execution. That approach was not successful because there are no scalable ways to control the sequence of thousands of rules. Now we need even more – millions of rules in practical industrial systems. That is why OWL DL reasoning, combined with the safe SWRL rules, is designed to be independent of the sequence of the rule execution.

However the advantages of OWL DL + safe SWRL reasoning come with significant limitations on expressivity: during a single run of reasoning, A-box can only be consistently extended (assertions cannot be retracted), and T-box cannot be extended or changed al all. There are approaches, based on meta-reasoning, to overcome these limitations, for example, the Ontology Preprocessing Language (OPPL2). Another meta-reasoning approach is suggested in my project MELO on the Sourceforge.

I'm guessing the answer to my question is NO but I'm interested in comments or references... I want to know if there are any other options (other than using something like Jena) to control and sequence rule execution and reasoning. I'd like to be able to take an ABox and run some SQWRL rules (and using built-ins) to produce a new version of the ABox which is then combined with a TBox and OWL-DL reasoning.

Ultimately, I'd like to be able to combine an ontology (TBox, ABox) with a set of rules, a model containing values for variables, and some kind of sequencing instructions that when executed produces a new version of the ABox (and potentially the TBox as well).