Procedural programming languages, such as FORTRAN, Pascal, and C, expect the programmer to build a representation of the solution to a problem using a model of the execution process of a computer. The goal of logic programming is to provide a higher level formalism, in which the solution is represented using a formal representation that was in use before computers were invented: human reasoning. The present volume starts with an explanation of how...