The Jadex Project: Programming Model
Intelligent Systems Reference Library
This chapter describes the priciples of the Jadex programming model. The programming model can be considered on two levels. The intra-agent level deals with programming concepts for single agents and the inter-agent level deals with interactions between agents. Regarding the rst, the Jadex beliefdesire-intention (BDI) model will be presented, which has been developed for agents based on XML and Java encompassing the full BDI reasoning cycle with goal deliberation and means-end reasoning. The
... cess of the BDI model in general also led to the development goal based workow descriptions, which are converted to traditional BDI agents and can thus be executed in the same infrastructure. Regarding the latter, the Jadex active components approach will be introduced. This programming model facilitates the interactions between agents with services and also provides a common back box view for agents that allows dierent agent types, being it BDI or simple reactive architectures, being used in the same application. Alexander Pokahr, Lars Braubach, and Kai Jander important for programming in Jadex, followed by a more general motivation about the relevance of the concept itself. A related work section is presented for each concept, trying to give an overview of the eld with pointers to other relevant works in the area. Afterwards the approach as implemented in Jadex is covered in detail and further illustrated by example applications that have been built. Each section closes with a short summary. In particular, the following topics are described in this chapter. Section 1.2 discusses the behavior model of agents which, in Jadex, was initially realized according to the belief-desire-intention (BDI) model that was extended for Jadex in several substantial ways. With workows, Section 1.3 addresses an interesting application area for agents regarding the support of e.g. complex and dynamic business processes. The last topic in Section 1.4 is called active components and introduces a unication of agent concepts with concepts from service-and component-based software engineering. Finally, Section 1.5 summarizes the chapter and identies important challenges with respect to the programming model that remain to be tackled for promoting industrial take-up of agent technology. Agent Programming: BDI Architecture The ever increasing computational power causes an ever increasing complexity of software systems. The tasks performed by computer systems become more and more advanced including e.g. automating complex processes or providing intelligent support for humans during their execution of activities. Engineering science strives to develop new concepts, methods and tools for dealing with the increasing complexity of systems. All systems are ultimately built by humans for humans. Therefore, ideas from disciplines like philosophy or psychology have been applied to engineering for better supporting the process of comprehension of typical human system engineers and human system users. One well known example is the so called Intentional Stance coined by Daniel Dennett  . When applied to software systems, it allows considering system components as intentional entities that have certain responsibilities with respect to local and overall system goals and that act rationally and independently of each other towards achieving these goals. This approach ts well to the way how humans conceive their own thinking processes (a.k.a. folk psychology) and thus simplies reasoning and discussing about system designs. Intentional approaches haven proven useful early on, for example with respect to goal-driven requirements engineering  . When considering more and more complex systems, where typically autonomous and/or adaptive behavior is required from the system's components, it becomes apparent that intentional notions such as goals and rational action are useful also for improving system design and implementation. An intentional approach simpli-1 The Jadex Project: Programming Model 3 es tracing requirements to design and implementation artifacts, as each are based on the same mental model of responsibilities, system goals and rational action. As an additional advantage, systems start to behave like humans would do, i.e. they behave understandably according to the mental models of system designers and system users. This further simplies, e.g. debugging of the system and leads to an intuitive usage. Related Work The term agent architecture is used to describe the concepts and constructs for specifying behavior. In this respect between internal and social agent architectures is distinguished. The rst refers to architectures that deal with concepts for programming a single agent while the latter are concerned with how group behavior and teamwork can be described and programmed. With regard to dierent application contexts, simple or complex agent architectures may be better suited. Figure 1.1 shows an overview of well-known agent architectures. The gure highlights how the architectures are inuenced by theories from dierent disciplines, such as philosophy and psychology. E.g. the agent architectures AOP , 3-APL , IRMA  and PRS  incorporate the Intentional Stance and are therefore related to philosophical theories like the belief-desire-intention (BDI) model. Theories from the eld of psychology focus on lower-level cognitive processes such as learning and have led to architectures like SOAR  that largely dier from those that originate from philosophical theories. For social architectures that focus on coordination in multi-agent systems, organization theory and sociology have been sources of inspiration, e.g. the Joint Intentions theory  as incorporated in the Joint Responsibility model . Finally, the Subsumption architecture  is a biologically inspired architecture for building simple reactive insect-like agents. The BDI model  is a good trade-o between complexity and expressiveness as it is based on a simple set of intuitive concepts with a natural meaning (e.g. beliefs representing the knowledge of an agent about the world). The rst implemented system based on a BDI-like model was the procedural reasoning system PRS  . The mapping to BDI was later made explicit and formalized in  . A number of successor systems have transported original PRS ideas to newer runtime infrastructures, e.g. the Java-based JAM  and the commercial JACK  . In addition, with AgentSpeak(L) a BDIstyle programming language has been proposed in  , which is supported by interpreters such as Jason  .