eJason: An Implementation of Jason in Erlang

In this paper we describe eJason, a prototype implementation of Jason, the well-known agent-oriented programming language, in Erlang, a concurrent functional programming language. The reason for choosing Erlang as the implementation vehicle is the surprising number of similarities between Jason and Erlang, e.g., both have their syntactical roots in logic programming, and share an actor-based process and communication model. Moreover, the Erlang runtime system implements lightweight processes and fast message passing between processes. Thus, by mapping Jason agents and agent-to-agent communication onto Erlang processes and Erlang process-to-process communication, we can create a very high-performing Jason implementation, potentially capable of supporting up to a hundred thousand concurrent actors. In this paper we describe in detail the implementation of Jason in Erlang, and provide early feedback on the performance of the implementation.

[1]  Mike Williams,et al.  Use of Prolog for developing a new programming language , 1992 .

[2]  Nicholas R. Jennings,et al.  Intelligent agents: theory and practice , 1995, The Knowledge Engineering Review.

[3]  A. S. Roa,et al.  AgentSpeak(L): BDI agents speak out in a logical computable language , 1996 .

[4]  Trevor J. M. Bench-Capon,et al.  On the Instantiation of Knowledge Bases in Abstract Argumentation Frameworks , 2013, CLIMA.

[5]  Michael Wooldridge,et al.  Reasoning about rational agents , 2000, Intelligent robots and autonomous agents.

[6]  Corrado Santoro,et al.  ERESYE: artificial intelligence in Erlang programs , 2005, ERLANG '05.

[7]  Agostino Poggi,et al.  JADE - A Java Agent Development Framework , 2005, Multi-Agent Programming.

[8]  P. D. O'Brien,et al.  FIPA — Towards a Standard for Software Agents , 1998 .

[9]  Michael Wooldridge,et al.  Programming Multi-Agent Systems in AgentSpeak using Jason (Wiley Series in Agent Technology) , 2007 .

[10]  Jomi Fred Hübner,et al.  Um modelo de reorganização de sistemas multiagentes. , 2003 .

[11]  Jürgen Dix,et al.  Multi-Agent Programming , 2009, Springer US.

[12]  Fabio Bellifemine,et al.  Developing Multi-Agent Systems with JADE (Wiley Series in Agent Technology) , 2007 .

[13]  Walter Van de Velde,et al.  Agents Breaking Away , 1996, Lecture Notes in Computer Science.

[14]  Francesco Cesarini,et al.  Erlang Programming , 2009 .

[15]  Anand S. Rao,et al.  BDI Agents: From Theory to Practice , 1995, ICMAS.

[16]  Rafael Heitor Bordini,et al.  Verifying Multi-agent Programs by Model Checking , 2006, Autonomous Agents and Multi-Agent Systems.

[17]  Rafael H. Bordini,et al.  BDI agent programming in AgentSpeak using Jason , 2006 .

[18]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[19]  Agostino Poggi,et al.  Developing Multi-agent Systems with JADE , 2007, ATAL.