Multi-threaded Communicating Agents in Qu-Prolog
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.
KeywordsReserve Price Bidding Behaviour Agent Application Internal Thread Call Price
Unable to display preview. Download preview PDF.
- 1.Robinson, P.J.: Ergo Reference Manual. Technical report, ITEE, University of Queensland, http://www.itee.uq.edu.au/~pjr/HomePages/ErgoFiles/cover.html
- 4.Segall, B., et al.: Content based routing with elvin4. In: Proceedings AUUG2K. Canberra, Australia (2000), Downloadable from http://elvin.dstc.com/doc/papers/auug2k/auug2k.pdf
- 7.Finin, T., Fritzson, R., McKay, D., McEntire, R.: KQML as an agent communication language. In: Proceedings 3rd International Conference on Information and Knowledge Management (1994)Google Scholar
- 8.FIPA. Fipa communicative act library specification. Technical report, Foundation for Intelligent Physical Agents (2002), http://www.fipa.org
- 9.McCabe, F.G.: ICM Reference Manual. Fujitsu laboratories Ltd. (1999) Downloadable from, http://sourceforge.net/projects/networkagent/
- 11.Coffey, S., Gaertner, D.: Using pheromones, broadcasting and negotiation for agent gathering tasks. In: Toni, F., Torroni, P. (eds.) CLIMA 2005. LNCS (LNAI), vol. 3900, Springer, Heidelberg (2006)Google Scholar
- 13.Tarau, P.: BinProlog 9.x Professional Edition: User Guide. Technical report, BinNet Corp (2002), Available from http://www.binnetcorp.com/BinProlog
- 15.Roy, P.V., Haridi, S.: Mozart: A programming system for agent applications. In: International Workshop on Distributed and Internet Programming with Logic and Constraint Languages. Part of International Conference on Logic Programming (ICLP 1999) (1999), http://www.mozart-oz.org/papers/abstracts/diplcl99.html
- 16.Cabenza, D., Hemenegildo, M., Carro, M.: On the uses of attributed variables in parallel and concurrent logic programming systems. In: Sterling, L. (ed.) Proceedings of ICLP 1995, pp. 631–645. MIT Press, Cambridge (1995)Google Scholar