Search strategy
Christopher John Hogger · 1990
Abstract Given any program P and any query Q, the choice of some computation rule determines a unique SLD-tree rooted at Q. This tree represents all the SLD computations that can be derived using that computation rule. In general, different computation rules applied to a given input set {P, Q} will determine different SLD-trees, although-as observed previously-all those trees will agree upon the computed answer set. A typical interpreter implements some fixed computation rule, although there are some interpreters which allow the user to choose a rule from a range of alternatives. A common way of specifying one’s own computation rule without considering the interpreter is to define that rule via a meta-program M interposed between the interpreter and the object program {P, Q); the interpreter then executes M using its own rule, and this action in turn drives the execution of the object program in accordance with the defined rule. Whichever such arrangement is made, however, we always know that some unique SLD-tree has to be incrementally constructed by the interpreter in order that it may search for answers.