Remote predicates for prolog : a basis for declarative client/server applications
Date
1994
Authors
Rintoul, Kevin
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
A number of recent implementations of Prolog contain primitives that allow Prolog to be used to write distributed applications. Many of these implementations are concerned with improving the execution times of Prolog programs but most of this work has necessitated a fairly comprehensive extension to Prolog to cope with the issues raised by parallel and distributed execution. In contrast, this thesis is concerned with the implementation of simple primitives that enable Prolog to be used to write client-server applications. The
implementation presented in this thesis is based on the client-server model and consists of three levels. At the top level, two Prolog predicates rcall/2 and listen_to/1, are provided that allow for the remote execution of Prolog predicates. The semantics of these predicates closely approximate the semantics of Prolog's call predicate with the exception that the predicate submitted for remote execution, executes against a remote Prolog database. Communication between the client and server is provided by an extension to the standard Edinburgh I/O model. Communication between the client and server is hidden from the user by the top level implementation The remote predicates are portable and have been successfully implemented on a number of different computer platforms.