Skip to main content

Go! for Multi-threaded Deliberative Agents

  • Conference paper
Declarative Agent Languages and Technologies (DALT 2003)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2990))

Included in the following conference series:

Abstract

Go! is a multi-paradigm programming language that is oriented to the needs of programming secure, production quality, agent based applications. It is multi-threaded, strongly typed and higher order (in the functional programming sense). It has relation, function and action procedure definitions. Threads execute action procedures, calling functions and querying relations as need be. Threads in different agents communicate and coordinate using asynchronous messages. Threads within the same agent can also use shared dynamic relations acting as memory stores.

In this paper we introduce the essential features of Go! illustrating them by programming a simple multi-agent application comprising hybrid reactive/deliberative agents interacting in a simulated ballroom. The dancer agents negotiate to enter into joint commitments to dance a particular dance (e.g. polka) they both desire. When the dance is announced, they dance together. An agent’s reactive and deliberative components are concurrently executing threads which communicate and coordinate using belief, desire and intention memory stores. We believe such a multi-threaded agent architecture represents a powerful and natural style of agent implementation, for which Go! is well suited.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. McCabe, F., Clark, K.: April - Agent PRocess Interaction Language. In: Wooldridge, M.J., Jennings, N.R. (eds.) ECAI 1994 and ATAL 1994. LNCS (LNAI), vol. 890, pp. 324–340. Springer, Heidelberg (1995)

    Google Scholar 

  2. Chu, D., Clark, K.L.: IC-Prolog II: a multi-threaded Prolog system. In: Succi, G., Colla, G. (eds.) Proceedings of the ICLP 1993 Workshop on Concurrent & Parallel Implementations of Logic Programming Systems, pp. 115–141 (1993)

    Google Scholar 

  3. McCabe, F.: L&O: Logic and Objects. Prentice-Hall International, Englewood Cliffs (1992)

    Google Scholar 

  4. Haugeneder, H., Steiner, D.: Co-operative agents: Concepts and applications. In: Jennings, N.R., Wooldridge, M.J. (eds.) Agent Technology, pp. 175–202. Springer, Heidelberg (1998)

    Google Scholar 

  5. Willmott, S.N., Dale, J., Burg, B., Charlton, C., O’Brien, P.: Agentcities: A Worldwide Open Agent Network. Agentlink News, 13–15 (2001)

    Google Scholar 

  6. Milner, R.: A theory of type polymorphism in programming. Computer and System Sciences 17, 348–375 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  7. Minsky, M.: A framework for representing knowledge. In: Winston, P. (ed.) Psychology of Computer Vision, pp. 211–277. MIT Press, Cambridge (1975)

    Google Scholar 

  8. Clark, K., McCabe, F.: Go! – a multi-paradigm programming language for implementing multi-threaded agents. Annals of Mathematics and Artificial Intelligence (2004) (to appear)

    Google Scholar 

  9. Bratman, M.E., Israel, D.J., Pollack, M.E.: Plans and resource bounded practical reasoning. Computational Intelligence 4, 349–355 (1988)

    Article  Google Scholar 

  10. Carriero, N., Gelernter, D.: Linda in context. Communications of the ACM 32, 444–458 (1989)

    Article  Google Scholar 

  11. Omicini, A., Zambonelli, F.: Coordination for internet application development. Autonomous Agents and Multi-agent systems 2, 251–269 (1999)

    Article  Google Scholar 

  12. 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 

  13. Armstrong, J., Virding, R., Williams, M.: Concurrent Programming in Erlang. Prentice-Hall International, Englewood Cliffs (1993)

    MATH  Google Scholar 

  14. Pereira, F., Warren, D.H.: Definite clause grammars compared with augmented transition network. Artificial Intelligence 13, 231–278 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  15. Clark, K., McCabe, F.: Ontology representation and inference in Go! Technical report, Dept. of Computing, Imperial College, London (2003)

    Google Scholar 

  16. Roa, A.S., Georgeff, M.P.: An abstract architecture for rational agents. In: Proceedings of Knowledge Representation and Reasoning (KR&R 1992), pp. 349–349 (1992)

    Google Scholar 

  17. Clark, K.L., Robinson, P.J., Hagen, R.: Multi-threading and message communication in Qu-Prolog. Theory and Practice of Logic Programming 1, 283–301 (2001)

    Article  MATH  Google Scholar 

  18. Tarau, P., Dahl, V.: Mobile Threads through First Order Continuations. In: Proceedings of APPAI-GULP-PRODE 1998, Coruna, Spain (1998)

    Google Scholar 

  19. Carro, M., Hermenegildo, M.: Concurrency in Prolog using Threads and a Shared Database. In: Schreye, D.D. (ed.) Proceedings of ICLP 1999, pp. 320–334. MIT Press, Cambridge (1999)

    Google Scholar 

  20. Eskilson, J., Carlsson, M.: Sicstus MT - a multithreaded execution environment for SICStus Prolog. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 36–53. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  21. Van Roy, P., Haridi, S.: Mozart: A programming system for agent applications. In: International Workshop on Distributed and Internet Programming with Logic and Constraint Languages (1999), http://www.mozart-oz.org/papers/abstracts/diplcl99.html ; Part of International Conference on Logic Programming (ICLP 1999)

  22. Zoltan Somogyi, F.H., Conway, T.: Mercury: an efficient purely declarative logic programming language. In: Proceedings of the Australian Computer Science Conference, pp. 499–512 (1995)

    Google Scholar 

  23. LLoyd, J.W.: Programming in an integrated functional and logic programming language. Journal of Functional and Logic Programming, 1–49 (1999)

    Google Scholar 

  24. Hanus, M.: A unified computation model for functional and logic programming. In: Proc. 24st ACM Symposium on Principles of Programming Languages (POPL 1997), pp. 80–93 (1997)

    Google Scholar 

  25. Lloyd, J.: Interaction and concurrency in a declarative programming language. Unpublished report, Dept. of Computer Science, Bristol University, London (1988)

    Google Scholar 

  26. Fisher, M.: A survey of concurrent MetateM- the language and its applications. In: Gabbay, D.M., Ohlbach, H.J. (eds.) ICTL 1994. LNCS (LNAI), vol. 827, pp. 480–505. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  27. Constantini, S., Tocchio, A.: A logic programming language for multi-agent systems. In: Flesca, S., Greco, S., Leone, N., Ianni, G. (eds.) JELIA 2002. LNCS (LNAI), vol. 2424, pp. 1–13. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  28. Kinny, D.: VIP:A visual programming language for plan execution systems. In: 1st International Joint Conf. Autonomous Agents and Multi-agent Systems, pp. 721–728. ACM Press, New York (2002)

    Google Scholar 

  29. Roa, A.S.: AgentSpeak(L): BDI agents speak out in a logical computable language. In: Perram, J., Van de Velde, W. (eds.) MAAMAW 1996. LNCS (LNAI), vol. 1038, pp. 42–55. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  30. Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.J.C.: Formal semantics for an abstract agent programming language. In: Rao, A., Singh, M.P., Wooldridge, M.J. (eds.) ATAL 1997. LNCS, vol. 1365, pp. 215–230. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  31. Leite, J.A., Alferes, J.J., Pereira, L.M.: Minerva-A dynamic logic prorgamming agent architecture. In: Meyer, J.-J.C., Tambe, M. (eds.) ATAL 2001. LNCS (LNAI), vol. 2333, pp. 141–157. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  32. De Giacomo, G., Lesperance, Y., Levesque, H.: Congolog, a concurrent programming language based on the situation calculus. Artificial Intelligence 1-2, 109–169 (2000)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Clark, K.L., McCabe, F.G. (2004). Go! for Multi-threaded Deliberative Agents. In: Leite, J., Omicini, A., Sterling, L., Torroni, P. (eds) Declarative Agent Languages and Technologies. DALT 2003. Lecture Notes in Computer Science(), vol 2990. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25932-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25932-9_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22124-1

  • Online ISBN: 978-3-540-25932-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics