LOLA(ID:3564/lol002)For LOgic LAnguage Burkhard Freitag Munich University 1991 Runtime Language for Deductive Databases Structures: References: in DASFAA 1991 view details in DASFAA 1991 view details in LPAR 1992 view details in Workshop on Programming with Logic Databases (Informal Proceedings), ILPS 1993 view details in Workshop on Programming with Logic Databases (Informal Proceedings), ILPS 1993 view details in Workshop on Programming with Logic Databases (Informal Proceedings), ILPS 1993 view details in Workshop on Programming with Logic Databases (Informal Proceedings), ILPS 1993 view details The LOLA system has been designed as the query answering component of a deductive database system and integrates ideas from logic programming and relational query processing. LOLA is based on a clausal logic programming language with function symbols, negation, grouping and aggregation, special predicates for accessing multiple external relational databases, and user-definable computed predicates. Query processing has two phases: In the compilation phase a query against a program is translated into an evaluating expression thereby proceeding top-down from the query to the base relations or user-defined predicates. In the evaluation phase, the resulting expression computes the set of answer tuples corresponding to the query and the current extensional database. Extensional relations can reside in main memory or in any external relational database system accessible via SQL. The basic evaluation scheme is set-oriented, bottom-up based on semi-naive fixpoint iteration, but a closer look reveals that query processing in LOLA consists of a demand-driven and a data-driven part. For simple programs, this can be achieved by applying a form of the magic set transformation and using the core bottom-up engine to evaluate the transformed program. However, it is well-known that the magic set transformation does not harmonize with negation. As will be described in this paper, the LOLA compiler splits the program into partitions that can be safely magic set transformed and processed bottom-up whereas the communication between the partitions is compiled into function calls that realize top-down control. This technique is correct for modularly stratified negation (w.r.t.\ the well-founded semantics) and group-stratified aggregation. Current work addresses generalizations of the currently implemented approach that are suitable to evaluate general logic programs. in LPNMR 1997 view details Resources
|