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

Description
The deductive rule language of O-DEVICE supports querying and reasoning over OWL instances represented as objects and defines materialized views over them that can be incrementally maintained. The conclusions of deductive rules represent derived classes, i.e. classes whose objects are generated by evaluating these rules over the current set of objects. Each deductive rule in O-DEVICE is implemented as a CLIPS production rule that inserts a derived object when the condition of the deductive rule is satisfied. More details can be found in [].

Of course, the answers to a rule depend on the time the query runs. If further OWL instances are added and the query is re-run, a different answer will be obtained. This means that the answer involves only the currently existing instances, i.e. it follows the closed-world assumption. However, the non-monotonic semantics of our rule language (incremental materialization) compensates for future changes in the knowledge base, thus we are able to cope with the open-world semantics of OWL.

To demonstrate the use of the deductive rule language, we give as an example the first query defined in the LUBM. This query retrieves all the instances of the class GraduateStudent that have on the property takesCourse the value GraduateCourse0. The definition of this query (namespaces have been removed) using the O-DEVICE deductive rule language is shown below:

1: (export-rdf "export-result.rdf" result)
2: (ntm-deductiverule r1
3: ?id <- (GraduateStudent (takesCourse $? [GraduateCourse0] $?))
4: =>
5: (result (x ?id)))


Line 1 of the query defines the name of the file where the results will be exported and the name of the class of the derived objects that will be exported. Line 2 states that this rule is about a non-truth maintainable deductive rule with name r1. Line 3 defines the body of the rule. Variable ?id refers to the OID of the instance that satisfies the restriction on the property takesCourse, namely to have [GraduateCourse0] among its values. Line 5 defines the conclusion of the rule, namely the pattern of the derived object, having on the slot x the name of the instance that satisfies the condition. Thus, the result of this query consists of objects of the class result that have on the property x the names of the actual instances that satisfy the condition of the rule.

The above rule is transformed into a CLIPS production rule and is executed by CLIPS. When the execution of the rule is finished, the system tracks the derived objects of the class result and exports them into the defined file export-results.rdf. In the following, we show a sample of the exported results (without namespaces):

Here you can find all the LUBM queries in the O-DEVICE query language.