Distributed logic programming (DLP) may be characterized by the pseudo-equation [] DLP = LP + OO + || stating that distributed logic programming combines logic programming (LP), object oriented programming (OO) and parallelism ( || ). The application area we have in mind for DLP encompasses the implementation of knowledge-based systems, including expert systems and systems for distributed problem solving.

Logic Programming,

because of its declarative nature, has established itself as an important implementation method for problems in Artificial Intelligence, knowledge based systems, and in particular expert systems. C.f.  [Bu83]. Its major representative is Prolog. See  [CM81].

Object Oriented Programming

has recently become a paradigm for developing complex systems. Objects integrate data and methods that operate on these data in a protected way. This allows to organize a program as a collection of objects, representing the conceptual structure of the problem. Part of the popularity of object oriented languages is due to the facilities for code sharing as offered by the inheritance mechanism. See  [We87].

Parallelism

is somehow of independent interest. Most of the developments in parallel logic programming are based on exploiting the parallelism inherent in the computation model of logic programming languages. Parallelism in DLP is achieved by extending the notion of object to that of a process, in a similar fashion as the approach taken for POOL  [Am87]. In developing the language DLP we have strived for compatibility with the backtracking behavior of Prolog. Our approach is in this respect distinct from the efforts of extending concurrent logic programming languages with object oriented features, since these support only the so-called {\it don't care}, or committed choice, non-determinism inherited from their base languages, instead of the {\it don't know} non-determinism of Prolog. In the next section we present the basic notions around which DLP is built. A summary of the contents of this thesis is given in section \ref{des/intro/ov}.