Artificial Intelligence
Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
The generalized counting method for recursive logic queries
Proceedings on International conference on database theory
An amateur's introduction to recursive query processing strategies
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
The Alexander method-a technique for the processing of recursive axioms in deductive databases
New Generation Computing
A generalization of the differential approach to recursive query evaluation
Journal of Logic Programming
A theorem-proving approach to database integrity
Foundations of deductive databases and logic programming
Performance evaluation of data intensive logic programs
Foundations of deductive databases and logic programming
Query evaluation in recursive databases: bottom-up and top-down reconciled
Data & Knowledge Engineering
Journal of Logic Programming
Efficient bottom-up computation of queries on stratified databases
Journal of Logic Programming
A consequence-finding approach for feature recognition in CAPP
IEA/AIE '94 Proceedings of the 7th international conference on Industrial and engineering applications of artificial intelligence and expert systems
The complexity of ordering subgoals
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
An algorithm for ordering subgoals in NAIL?
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Optimization of Nonrecursive Queries
VLDB '86 Proceedings of the 12th International Conference on Very Large Data Bases
TREAT: A Better Match Algorithm for AI Production Systems; Long Version
TREAT: A Better Match Algorithm for AI Production Systems; Long Version
Hi-index | 0.01 |
Redundant computations in bottom‐up evaluation of logic programs and rule‐based systems can be avoided by caching intermediate joins – i.e., partial rule instantiations – for later use. Joins can be cached either at representation level by program transformation techniques introducing supplementary predicates or at implementation level by specialized implementation techniques using internal memory cells. The efficiency of these state‐saving techniques depends on the selection of premises for storing the joins. In this paper we first present a general program transformation technique for saving joins which heuristically reorders subgoals and performs predicate splitting optimization, an extension of unfolding. This state‐saving transformation can be applied for any goal‐directed and model‐generation evaluation. It does not require any information about the query. We show that the program transformation approach is equivalent to the specialized state‐saving implementations known from production systems and model‐generation theorem provers. To use the efficient and complete bottom‐up evaluation also for query answering, we improve the supplementary extensions of Generalized Magic Sets and Magic Templates rewriting strategies by the presented state‐saving transformation.