This paper presents the declarative extension of the deductive database system LOLA to the object-oriented deductive database system O!-LOLA. The model used for O!-LOLA is “objects as theories”, extended by state evolution. O!-LOLA combines logic programming and OO programming in two different ways: First, methods are implemented as logic programs. These methods can be inherited, encapsulated and overloaded. Second, logic programs can be defined over classes, meta-classes, instances, attributes and values. Dynamic updates of attributes of objects and dynamic instantiations of classes are supported.
O!-LOLA is implemented as a preprocessor. O!-LOLA programs are transformed into LOLA rules and facts, which are evaluated set-oriented and bottom-up, using fixpoint semantics. Some object-oriented features concerning dynamic aspects are handled via built-in predicates in LOLA.
We describe the applied theory, the system and the preprocessor, including an example of how methods are translated and we discuss dynamic updates of objects in O!-LOLA.
The benefits of our system in contrast to others are: a single integrated language, clear semantics and a set-oriented evaluation. O!-LOLA uses fixpoint semantics (not any procedural semantics like other systems) and still evaluates set-oriented (and not in a mixed manner like other systems). Thus, we can fully use all optimization techniques developed for deductive databases and gain a very efficient system.