Journal:Informatica
Volume 9, Issue 1 (1998): Special Issue on Programming Theory, Information System Engineering, Software Engineering, and Artificial Intelligence, pp. 107–117
Abstract
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.