An Empirical Study of Patterns in Agent Programs

  • Koen V. Hindriks
  • M. Birna van Riemsdijk
  • Catholijn M. Jonker
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7057)


Various agent programming languages and frameworks have been developed by now, but very few systematic studies have been done as to how the language constructs in these languages may and are in fact used in practice. Performing a study of these aspects contributes to the design of best practices or programming guidelines for agent programming. Following a first empirical study of agent programs written in the Goal agent programming language for the dynamic blocks world, in this paper we perform a considerably more extensive analysis of agent programs for the first-person shooter game Unreal Tournament 2004. We identify and discuss several structural code patterns based on a qualitative analysis of the code, and analyze for which purposes the constructs of Goal are typically used. This provides insight into more practical aspects of the development of agent programs, and forms the basis for development of programming guidelines and language improvements.


Achievement Goal Context Condition Belief Condition Belief Base Agent Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    Ben-Ari, M., Ben-David Kolikant, Y.: Thinking parallel: The process of learning concurrency. In: Fourth SIGCSE Conference on Innovation and Technology in Computer Science Education, pp. 13–16 (1999)Google Scholar
  3. 3.
    Bordini, R.H., Dastani, M., Dix, J., Seghrouchni, A.E.F.: Multi-Agent Programming: Languages, Tools and Applications. Springer, Heidelberg (2009)zbMATHGoogle Scholar
  4. 4.
    Bordini, R.H., Hübner, J.F., Wooldridge, M.: Programming Multi-agent Systems in AgentSpeak using Jason. Wiley (2007)Google Scholar
  5. 5.
    Burkert, O., Kadlec, R., Gemrot, J., Bída, M., Havlíček, J., Dörfler, M., Brom, C.: Towards Fast Prototyping of IVAs Behavior: Pogamut 2. In: Pelachaud, C., Martin, J.-C., André, E., Chollet, G., Karpouzis, K., Pelé, D. (eds.) IVA 2007. LNCS (LNAI), vol. 4722, pp. 362–363. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Dastani, M.: 2APL: a practical agent programming language. JAAMAS 16(3), 214–248 (2008)Google Scholar
  7. 7.
    Dignum, V.: A Model for Organizational Interaction: Based on Agents, Founded in Logic. PhD thesis (2004)Google Scholar
  8. 8.
    Hindriks, K.V.: GOAL Programming Guide (2010),
  9. 9.
    Hindriks, K.V., Birna van Riemsdijk, M., Behrens, T., Korstanje, R., Kraaijenbrink, N., Pasman, W., de Rijk, L.: Unreal GOAL agents. In: Proc. of AGS 2010 (2010)Google Scholar
  10. 10.
    Howatt, J.: A project-based approach to programming language evaluation. ACM SIGPLAN Notices 30(7), 37–40 (1995)CrossRefGoogle Scholar
  11. 11.
    Jordan Howell, R., Collier, R.: Evaluating agent-oriented programs: Towards multi-paradigm metrics. In: Proc. of ProMAS 2010, pp. 63–79 (2010)Google Scholar
  12. 12.
    Marshall, M.N.: Sampling for qualitative research. Family Practice 13(6), 522–525 (1996)CrossRefGoogle Scholar
  13. 13.
    Padgham, L., Winikoff, M.: Developing Intelligent Agent Systems: A Practical Guide. Wiley Series in Agent Technology. John Wiley and Sons (2004)Google Scholar
  14. 14.
    Pokahr, A., Braubach, L., Lamersdorf, W.: Jadex: a BDI reasoning engine. In: Multi-Agent Programming. Springer, Berlin (2005)Google Scholar
  15. 15.
    Shoham, Y.: Agent-oriented programming. Artificial Intelligence 60, 51–92 (1993)MathSciNetCrossRefGoogle Scholar
  16. 16.
    van Riemsdijk, M.B., Hindriks, K.V.: An Empirical Study of Agent Programs: A Dynamic Blocks World Case Study in GOAL. In: Yang, J.-J., Yokoo, M., Ito, T., Jin, Z., Scerri, P. (eds.) PRIMA 2009. LNCS, vol. 5925, pp. 200–215. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  17. 17.
    Wasserman, A.I.: Issues in programming language design— an overview. SIGPLAN Notices (1975)Google Scholar
  18. 18.
    Winikoff, M.: JACKTM intelligent agents: an industrial strength platform. In: Multi-Agent Programming: Languages, Platforms and Applications. Springer, Heidelberg (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Koen V. Hindriks
    • 1
  • M. Birna van Riemsdijk
    • 1
  • Catholijn M. Jonker
    • 1
  1. 1.Delft University of TechnologyDelftThe Netherlands

Personalised recommendations