Programming internet distributed DAI applications in Qu-Prolog

Keith L. Clark, Peter Robinson and Richard Hagen


This paper presents the unique collection of additional features of Qu-Prolog, a variant of the AI programming language Prolog, and illustrates how they can be used for implementing distributed DAI applications. By this we mean applications comprising communicating information servers, or expert systems, or agents, with sophisticated reasoning capabilites and internal concurrency. Such an application exploits the key features Qu-Prolog: support for the programming of sound non-clausal inference systems, multi-threading, and high level inter-thread message communication between Qu-Prolog query threads anywhere on the internet. The inter-thread communication uses email style symbolic names for threads, allowing easy construction of distributed applications using public names for threads. How threads react to received messages is specified by a disjunction of reaction rules which the thread periodically executes. A communications API allows smooth integration of components written in C, which to Qu-Prolog, look like remote query threads.

Presented at the Australian DAI WS, Brisbane, 1998. In in Multi-agent systems, (ed. C. Zhang and D. Lukose), Springer-Verlag LNAI 1544.

Click here for a compressed PostScript version of the paper (, 16798 bytes).