Distributed Object Oriented Logic Programming

Keith Clark and Tzone Wang


In this paper we introduce a programming language/system DK_Parlog++ which is an experimental testbed for distributed applications, particularly distributed AI and distributed knowledge base applications. The language is designed to have the concurrent computation ability of the Concurrent Logic Programming(CLP) languages, the knowledge representation and problem solving ability of Prolog, both enriched with the program and knowledge structuring capabilities of Object Oriented programming. The basic building blocks of an application are a collection of 'classes' and 'servers' which can be distributed over a network of machines. The location of a class or server is specified in its definition. Classes and servers have unique public names, such as student, department and db_manager. Classes can be linked using single inheritance. Servers are like classes except they have no instances (which is why we do not call them classes) and no inheritance links. They are used to implement publically named interface processes; for example, an interface process to a dialogue handler, or to an external data base. This paper introduces the key features of the language illustrated through the progressive development of part of a distributed knowledge base for a University. Finally we show how a server could be used as a query manager for the knowledge base, and how the system could be extended to interface with an external object oriented data base. Via such servers the language could be used as a harness for distributed heterogeneous knowledge base systems.

Presented at the FGCS94 Workshop on Cooperating Heterogeneous Information Systems, Tokyo, 1994.

Click here for a compressed PostScript version of the paper (fgcs94.ps.Z, 54545 bytes).