Multi-threaded communicating agents in Qu-Prolog
Keith L. Clark, Peter Robinson and Silvana Zappacosta Amboldi
In this tutorial paper we summarise the key features of the multi-threaded Qu-Prolog language for implementing multi-threaded communicating agent applications. Internal threads of an agent communicate using the shared dynamic database used as a generalisation of Linda tuple store. Threads in different agents, perhaps on different hosts, communicate using either a thread-to-thread store and forward communication system, or by a publish and subscribe mechanism in which messages are routed to their destinations based on content test subscriptions.
We illustrate the features using an auction house application. This is fully distributed with multiple auctioneers and bidders which participate in simultaneous auctions. The application makes essential use of the three forms of inter-thread communication of Qu-Prolog. The agent bidding behaviour is specified graphically as a finite state automaton and its implementation is essentially the execution of its state transition function. The paper assumes familiarity with Prolog and the basic concepts of multi-agent systems.
In the Computational Logic in Multi-agent systems, ed F Toni and P. Torrini, LNAI 3900, Springer
for a PDF version of the paper (auctionsInQuP.pdf, 290K bytes).