<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>PRACTIONIST: a Framework for Developing BDI Agent Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vito Morreale</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Susanna Bonura</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giuseppe Francaviglia</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Puccio</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fabio Centineo</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giuseppe Cammarata</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimo Cossentino</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Salvatore Gaglio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I. THE FRAMEWORK</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>. PRACTIONIST over JADE</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Prolog.</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DINFO-University of Palermo</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ICAR-Italian National Research Council</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>R&amp;D Laboratory - ENGINEERING Ingegneria Informatica S.p.A</institution>
        </aff>
      </contrib-group>
      <fpage>4</fpage>
      <lpage>5</lpage>
      <abstract>
        <p>In this abstract we give a brief overview of the PRACTIONIST 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).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>A PRACTIONIST agent is a software component endowed
with the following elements (figure 2):
• a set of perceptions and the corresponding perceptors that
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
environment;
• a set of goals the agent wishes or wants to pursue. They
represent some states of affairs to bring about or activities
to perform and will be related to either its desires or
intentions (see below);
• a set of goal relations the agent uses during the
deliberation process and means-ends reasoning;
• a set of plans that are the means to achieve its intentions;
• a set of actions the agent can perform to act over its
environment; and
• a set of effectors that actually execute the actions.</p>
      <p>As shown in figure 2, PRACTIONIST agents are structured
in two main layers: the framework defines the execution logic
and provides the built-in components according to such a logic,
while the top layer includes the specific agent components to
be implemented, in order to satisfy system requirements.</p>
      <p>Fig. 2. Components of PRACTIONIST agents.</p>
      <p>
        Therefore, a developer who wants to design an agent has to
develop (i) the Goals the agent could pursue, (ii) the means
(a set of plans, i.e. the Plan Library) to pursue such goals or
to react to the stimuli coming from the environment, (iii) the
Perceptors to receive such stimuli, (iv) the Actions the agent
could perform and the corresponding Effectors, and (v) the set
of beliefs and rules (Belief Base) to model the information
about both its internal state and the external world (details on
beliefs are given in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]).
      </p>
      <p>
        In the following section we give an overview of how to
program some of agent components, with reference to the paper
”Reasoning about Goals in BDI Agents: the PRACTIONIST
Framework”, presented at the WOA 2006 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>II. IMPLEMENTING AGENT COMPONENTS</title>
      <p>The concepts and the examples given in this section refer to
the tileworld demonstrator, which is a multi agent system with
two types of agents, i.e. an agent that manages the environment
and player agents.</p>
      <p>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)
represent the frequency of obstacles’ birth and their mean life
cycle,
• agent(name: X) represents other active player agents.</p>
      <p>The framework provides the support to let agent make
meta-level reasoning. In other words, each player agent, by
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,
while the plan FindTileRandomicallyPlan implements a
random search strategy. Thus these plans are used by the player
to find a tile in several circumstances.</p>
      <p>Analogously, agent beliefs about its state refer to the
following predicates:
• position(xPos: X, yPos:Y) represents the position of the
player agent,
• score(value: X) represents the current score of the player,
• hold(obj: tile) states that the player agent holds a tile.</p>
      <p>On the base of such beliefs, some goals are defined as well.
As an example, the HoldTile is a state goal that succeeds when
hold(obj: tile) is believed true by the agent for the same tile.
Thus, in the AchieveTilePlan, the player agent has to identify
a tile within the grid to satisfy the HoldTile goal and then hold
such a tile by executing the action of picking it up.</p>
      <p>The player agent is endowed with the Taker effector, which
triggers and executes the pick up action and updates the
environment status and its internal state. The agent is also
provided with other effectors (e.g. Mover, Releaser, etc.) to
be able to perform other actions, such as moving itself in the
grid and releasing holding tiles.</p>
      <p>Finally, the cognitive system of the agent includes a set
of perceptors that receive stimuli from the environment. As
an example, the player agent is equipped with the perceptors
TileLifeCyclePerceptor, HoleBirthPerceptor, etc. to be able to
perceive changes from the environment about tiles’ birth rate,
the obstacles’ life cycle, and so forth.</p>
      <p>III. PRACTIONIST AGENT INTROSPECTION TOOL
(PAIT)</p>
      <p>The framework also provides developers with the
PRACTIONIST Agent Introspection Tool (PAIT), a visual integrated
2In PRACTIONIST beliefs can be about either predicates or other
beliefs (expressed by the operator Bel). Moreover, predicates can be
expressed by specifying the role of their arguments, i.e. predicate(role1 :
element1, role2 : element2, ..., roleN : elementN ).</p>
      <p>Fig. 3. The PRACTIONIST Agent Introspection Tool (PAIT).
monitoring and debugging tool, which supports the analysis of
the agent’s state during its execution. In particular, the PAIT
can be suitable to display, test and debug the agents’ relevant
entities and execution flow. Each of these components can
be observed at run-time through a set of specific tabs (see
figure 3); the content of each tab can be also displayed in an
independent window.</p>
      <p>
        All the information showed at run-time could be saved
in a file, providing the programmer with the opportunity of
performing an off-line analysis. Moreover, the PAIT provides
an area for log messages inserted in the agent source code,
according to the Log4j approach. The usage of this console
and the advantages it provides are described in more details
in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>ACKNOWLEDGMENTS This work is partially supported by the Italian Ministry of Education, University and Research (MIUR) through the project PASAF.</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bellifemine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , and G. Rimassa, “
          <article-title>JADE - a FIPAcompliant agent framework</article-title>
          ,”
          <source>in Proceedings of the Practical Applications of Intelligent Agents</source>
          ,
          <year>1999</year>
          . [Online]. Available: http://jmvidal.cse.sc.edu/library/jade.pdf
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Morreale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bonura</surname>
          </string-name>
          , G. Francaviglia,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gaglio</surname>
          </string-name>
          , “
          <article-title>PRACTIONIST: a new framework for BDI agents</article-title>
          ,”
          <source>in Proceedings of the Third European Workshop on Multi-Agent Systems (EUMAS'05)</source>
          ,
          <year>2005</year>
          , p.
          <fpage>236</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>V.</given-names>
            <surname>Morreale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bonura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Francaviglia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Centineo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gaglio</surname>
          </string-name>
          , “
          <article-title>Reasoning about goals in BDI agents: the PRACTIONIST framework</article-title>
          ,” in Proceedings of Joint Workshop “From Objects to Agents”,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Morreale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bonura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Centineo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gaglio</surname>
          </string-name>
          , “
          <article-title>PRACTIONIST: implementing PRACTIcal reasONIng sySTems</article-title>
          ,” in Proceedings of Joint Workshop “From Objects to Agents”,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>