Issue No. 04 - August (1994 vol. 6)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/69.298169
<p>Logic programs can be evaluated bottom-up by repeatedly applying all rules, in "iterations", until the fixpoint is reached. However, it is often desirable-and, in some cases, e.g. programs with stratified negation, it is even necessary to guarantee the semantics-to apply the rules in some order. We present two algorithms that apply rules in a specified order without repeating inferences. One of them (GSN) is capable of dealing with a wide range of rule orderings, but with a little more overhead than the well-known seminaive algorithm (which we call BSN). The other (PSN) handles a smaller class of rule orderings, but with no overheads beyond those in BSN. We also demonstrate that by choosing a good ordering, we can reduce the number of rule applications (and thus the number of joins). We present a theoretical analysis of rule orderings and identify orderings that minimize the number of rule applications (for all possible instances of the base relations) with respect to a class of orderings called fair orderings. We also show that though nonfair orderings may do a little better on some data sets, they can do much worse on others. The analysis is supplemented by performance results.</p>
deductive databases; query processing; logic programming; program compilers; bottom-up fixpoint evaluation; logic programs; semantics; GSN; rule ordering; BSN; PSN; base relations; fair orderings; performance results; control expression; cyclic ordering; deductive database; query evaluation
D. Srivastava, S. Sudarshan and R. Ramakrishnan, "Rule Ordering in Bottom-Up Fixpoint Evaluation of Logic Programs," in IEEE Transactions on Knowledge & Data Engineering, vol. 6, no. , pp. 501-517, 1994.