=Paper= {{Paper |id=Vol-204/paper-2 |storemode=property |title=PRACTIONIST: a Framework for developing BDI agent systems |pdfUrl=https://ceur-ws.org/Vol-204/D02.pdf |volume=Vol-204 |dblpUrl=https://dblp.org/rec/conf/woa/MorrealeBFPCCCG06 }} ==PRACTIONIST: a Framework for developing BDI agent systems== https://ceur-ws.org/Vol-204/D02.pdf
                  PRACTIONIST:
   a Framework for Developing BDI Agent Systems
                                     Vito Morreale∗ , Susanna Bonura∗, Giuseppe Francaviglia∗,
                                     Michele Puccio∗, Fabio Centineo∗, Giuseppe Cammarata∗ ,
                                           Massimo Cossentino†, and Salvatore Gaglio†‡
                                     ∗ R&D Laboratory - ENGINEERING Ingegneria Informatica S.p.A.
                                                  † ICAR-Italian National Research Council
                                                       ‡ DINFO-University of Palermo



                           I. T HE FRAMEWORK
   In this abstract we give a brief overview of the PRACTION-
IST framework, which supports programmers in developing
BDI agents and is built on top of JADE [1], a widespread
platform that implements the FIPA1 specifications. Therefore,
our agents are deployed within JADE containers and their main
cycle is implemented by means of a JADE cyclic behaviour
(figure 2).




              Fig. 1.     PRACTIONIST over JADE and Prolog.

   A PRACTIONIST agent is a software component endowed
with the following elements (figure 2):
   • a set of perceptions and the corresponding perceptors that                     Fig. 2.   Components of PRACTIONIST agents.
     listen to some relevant external stimuli;
   • a set of beliefs representing the information the agent
     has got about both its internal state and the external                 Therefore, a developer who wants to design an agent has to
     environment;                                                        develop (i) the Goals the agent could pursue, (ii) the means
   • a set of goals the agent wishes or wants to pursue. They
                                                                         (a set of plans, i.e. the Plan Library) to pursue such goals or
     represent some states of affairs to bring about or activities       to react to the stimuli coming from the environment, (iii) the
     to perform and will be related to either its desires or             Perceptors to receive such stimuli, (iv) the Actions the agent
     intentions (see below);                                             could perform and the corresponding Effectors, and (v) the set
   • a set of goal relations the agent uses during the deliber-
                                                                         of beliefs and rules (Belief Base) to model the information
     ation process and means-ends reasoning;                             about both its internal state and the external world (details on
   • a set of plans that are the means to achieve its intentions;
                                                                         beliefs are given in [2]).
   • a set of actions the agent can perform to act over its
                                                                            In the following section we give an overview of how to pro-
     environment; and                                                    gram some of agent components, with reference to the paper
   • a set of effectors that actually execute the actions.
                                                                         ”Reasoning about Goals in BDI Agents: the PRACTIONIST
                                                                         Framework”, presented at the WOA 2006 [3].
   As shown in figure 2, PRACTIONIST agents are structured
in two main layers: the framework defines the execution logic                     II. I MPLEMENTING AGENT COMPONENTS
and provides the built-in components according to such a logic,
while the top layer includes the specific agent components to              The concepts and the examples given in this section refer to
be implemented, in order to satisfy system requirements.                 the tileworld demonstrator, which is a multi agent system with
                                                                         two types of agents, i.e. an agent that manages the environment
  1 http://www.fipa.org                                                  and player agents.


                                                                     4
   Several simulation parameters can be altered at run time,
such as the appear rate and the life cycle of holes, tiles
and obstacles. These information was represented by beliefs
2
   about the state of the environment represented through the
following predicates:
   • gridSize(width: X, height: Y) represents the size of the
      grid, in terms of width and height,
   • holeBirth(rate: X) and holeLifecycle(rate: X) represent
      the frequency of holes’ birth and their mean life cycle,
   • tileBirth(rate: X) and tileLifecycle(rate: X) represent the
      frequency of tiles’ birth and their mean life cycle,
   • obstacleBirth(rate: X) and obstacleLifecycle(rate: X) rep-
      resent the frequency of obstacles’ birth and their mean life
      cycle,
   • agent(name: X) represents other active player agents.
   The framework provides the support to let agent make
meta-level reasoning. In other words, each player agent, by                           Fig. 3.   The PRACTIONIST Agent Introspection Tool (PAIT).
reasoning on above information, will be able to select the
optimal strategy to increase its score. For example, the plan
FindTileInAmplitudePlan implements a depth search behavior,                     monitoring and debugging tool, which supports the analysis of
while the plan FindTileRandomicallyPlan implements a ran-                       the agent’s state during its execution. In particular, the PAIT
dom search strategy. Thus these plans are used by the player                    can be suitable to display, test and debug the agents’ relevant
to find a tile in several circumstances.                                        entities and execution flow. Each of these components can
   Analogously, agent beliefs about its state refer to the fol-                 be observed at run-time through a set of specific tabs (see
lowing predicates:                                                              figure 3); the content of each tab can be also displayed in an
   • position(xPos: X, yPos:Y) represents the position of the                   independent window.
      player agent,                                                                All the information showed at run-time could be saved
   • score(value: X) represents the current score of the player,                in a file, providing the programmer with the opportunity of
   • hold(obj: tile) states that the player agent holds a tile.                 performing an off-line analysis. Moreover, the PAIT provides
   On the base of such beliefs, some goals are defined as well.                 an area for log messages inserted in the agent source code,
As an example, the HoldTile is a state goal that succeeds when                  according to the Log4j approach. The usage of this console
hold(obj: tile) is believed true by the agent for the same tile.                and the advantages it provides are described in more details
Thus, in the AchieveTilePlan, the player agent has to identify                  in [4].
a tile within the grid to satisfy the HoldTile goal and then hold                                      ACKNOWLEDGMENTS
such a tile by executing the action of picking it up.
                                                                                  This work is partially supported by the Italian Ministry
   The player agent is endowed with the Taker effector, which
                                                                                of Education, University and Research (MIUR) through the
triggers and executes the pick up action and updates the
                                                                                project PASAF.
environment status and its internal state. The agent is also
provided with other effectors (e.g. Mover, Releaser, etc.) to                                               R EFERENCES
be able to perform other actions, such as moving itself in the                  [1] F. Bellifemine, A. Poggi, and G. Rimassa, “JADE - a FIPA-
grid and releasing holding tiles.                                                   compliant agent framework,” in Proceedings of the Practical
   Finally, the cognitive system of the agent includes a set                        Applications of Intelligent Agents, 1999. [Online]. Available:
                                                                                    http://jmvidal.cse.sc.edu/library/jade.pdf
of perceptors that receive stimuli from the environment. As                     [2] V. Morreale, S. Bonura, G. Francaviglia, M. Cossentino, and S. Gaglio,
an example, the player agent is equipped with the perceptors                        “PRACTIONIST: a new framework for BDI agents,” in Proceedings of the
TileLifeCyclePerceptor, HoleBirthPerceptor, etc. to be able to                      Third European Workshop on Multi-Agent Systems (EUMAS’05), 2005,
                                                                                    p. 236.
perceive changes from the environment about tiles’ birth rate,                  [3] V. Morreale, S. Bonura, G. Francaviglia, F. Centineo, M. Cossentino,
the obstacles’ life cycle, and so forth.                                            and S. Gaglio, “Reasoning about goals in BDI agents: the PRACTIONIST
                                                                                    framework,” in Proceedings of Joint Workshop “From Objects to Agents”,
   III. PRACTIONIST AGENT I NTROSPECTION T OOL                                      2006.
                         (PAIT)                                                 [4] V. Morreale, S. Bonura, F. Centineo, A. Rossi, M. Cossentino, and
                                                                                    S. Gaglio, “PRACTIONIST: implementing PRACTIcal reasONIng syS-
  The framework also provides developers with the PRAC-                             Tems,” in Proceedings of Joint Workshop “From Objects to Agents”,
TIONIST Agent Introspection Tool (PAIT), a visual integrated                        2005.

   2 In PRACTIONIST beliefs can be about either predicates or other be-
liefs (expressed by the operator Bel). Moreover, predicates can be ex-
pressed by specifying the role of their arguments, i.e. predicate(role1 :
element1, role2 : element2, ..., roleN : elementN ).



                                                                            5