Naive evaluation of recursively defined relations
On knowledge base management systems: integrating artificial intelligence and d atabase technologies
Decidability and expressiveness aspects of logic queries
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A generalization of the differential approach to recursive query evaluation
Journal of Logic Programming
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
A framework for testing safety and effective computability of extended datalog
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Functional computations in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient evaluation of right-, left-, and multi-linear rules
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Rule ordering bottom-up fixpoint evaluation of logic programs
Proceedings of the sixteenth international conference on Very large databases
Right-, left-, and multi-linear rule transformations that maintain context information
Proceedings of the sixteenth international conference on Very large databases
Journal of Logic Programming
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
How to forget the past without repeating it
Journal of the ACM (JACM)
Optimizing existential datalog queries
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A linear space algorithm for computing maximal common subsequences
Communications of the ACM
Composite Event Specification in Active Databases: Model & Implementation
VLDB '92 Proceedings of the 18th International Conference on Very Large Data Bases
Generalization of ZYT-linearizability for bilinear datalog programs
Information and Computation
Hi-index | 0.00 |
In the bottom-up evaluation of logic programs and recursively defined views on databases, all generated facts are usually assumed to be stored until the end of the evaluation. Discarding facts during the evaluation, however, can considerably improve the efficiency of the evaluation: the space needed to evaluate the program, the I/O costs, the costs of maintaining and accessing indices, and the cost of eliminating duplicates may all be reduced. Given an evaluation method that is sound, complete, and does not repeat derivation steps, we consider how facts can be discarded during the evaluation without compromising these properties. We show that every such space optimization method has certain components, the first to ensure soundness and completeness, the second to avoid redundancy (i.e., repetition of derivations), and the third to reduce “fact lifetimes” (i.e., the time period for which each fact must be retained during evaluation). We present new techniques based on providing bounds on the number of derivations and uses of facts, and using monotonicity constraints for each of the first two components, and provide novel synchronization techniques for the third component of a space optimization method. We describe how techniques for each of the three components can be combined in practice to obtain a space optimization method for a program. Our results are also of importance in applications such as sequence querying, and in active databases where triggers are defined over multiple “events.”