O-DEVICE is a system developed by Georgios Meditskos and Nick Bassiliades, members of the Intelligent Systems and Knowledge Processing (ISKP) group of the Department of informatics of Aristotle University of Thessaloniki.

Home | Predefined schema | Rule Abstract Syntax | O-DEVICE Rules | Dynamic Rules | Query Language

Dynamic Rule Generation Approach

By dynamically generating inference rules, we want to speed up the rule activation procedure of O-DEVICE by restricting the search space. Based on template rules and on the information from the ontology, we create actual rules that are loaded into the system and executed. For example, consider a general rule for handling symmetric properties. This rule would have a conditional element for the symmetric property and two more conditional elements for finding the appropriate objects, e.g.:

(defrule
  (object(is-a owl:SymmetricProperty)(name ?p)(rdfs:domain ?d))
  (object(is-a ?d)(name ?o1)(?p $?v1))
  (object(is-a ?d)(name ?o2)(?p $?v2))
....
The problem is that CLIPS does not allow the use of variables in place of properties, e.g. ?p in the second and third conditional element. We are able to implement such rule in CLIPS following an indirect approach, but in this way we introduce a great overhead in the system due to the ammount of combinations it requires in order to match all the available variables. For this reason, we have implemented template rules that contain terms wherever is necessary, which are substituted at runtime with actual values from the ontology, creating an actual rule. Below there are all the template rules for each case. Each term inside "<" and ">" is substituted by a value from the ontology.
Symmetric Property
Transitive Property
Subproperty
Inverse Property
Equivalent Property
owl:allValuesFrom Property
owl:someValuesFrom Property
owl:minCardinality and owl:cardinality Properties
Instance Classification
Functional Property
Inverse Functional Property