Indexing PROLOG Procedures into DAGs by Heuristic ClassificationMichael Sintek
DFKI, DFKI Technical Memos (TM), Vol. 93-05, 1993.
This paper first gives an overview of standard PROLOG indexing and then shows, in a step-by-step manner, how it can be improved by slightly extending the WAM indexing instruction set to allow indexing on multiple arguments. Heuristics are described that overcome the difficulty of computing the indexing WAM code. In order to become independent from a concrete WAM instruction set, an abstract graphical representation based on DAGs (called DAXes) is introduced. The paper includes a COMMON LISP listing of the main heuristics implemented; the algorithms were developed for RELFUN, a relational-plus-functional language, but can easily be used in arbitrary PROLOG implementations.