  We formulate query-subquery nets and use them to create the first framework
for developing algorithms for evaluating queries to Horn knowledge bases with
the properties that: the approach is goal-directed; each subquery is processed
only once and each supplement tuple, if desired, is transferred only once;
operations are done set-at-a-time; and any control strategy can be used. Our
intention is to increase efficiency of query processing by eliminating
redundant computation, increasing flexibility and reducing the number of
accesses to the secondary storage. The framework forms a generic evaluation
method called QSQN. To deal with function symbols, we use a term-depth bound
for atoms and substitutions occurring in the computation and propose to use
iterative deepening search which iteratively increases the term-depth bound. We
prove soundness and completeness of our generic evaluation method and show
that, when the term-depth bound is fixed, the method has PTIME data complexity.
We also present how tail recursion elimination can be incorporated into our
framework and propose two exemplary control strategies, one is to reduce the
number of accesses to the secondary storage, while the other is depth-first
search.
