Implementing logic programs as a database system

We show how Horn logic programs can be implemented using database techniques, namely, mostly bottom-up in combination with certain top-down elements (as opposed to the top-down implementations of logic programs prevailing so far). The proposed method is sound and complete. It easily lends itself to a parallel implementation, and is free of nonlogical features, like backtracking. In extension to the common approach to deductive databases, we allow function symbols to appear in programs. An important advantage of this method is that it terminates in many cases in which PROLOG and SLD-resolution do not.