Chapter 9. Conclusion and Outlook

We hope you enjoyed working through the tutorial and now are equipped at least with a basic understanding of the Jadex BDI reasoning engine. Nevertheless, this tutorial does not cover all important aspects about agent programming in Jadex. Most importantly the following topics have not been discussed:

9.1. Ontologies

Ontologies can be used for describing message contents. In more complex applications you usually want to transfer objects instead of simple strings. In Jadex for this purpose you could use arbitrary Java beans in connection with the SFipa.NUGGETS_XML language. If this language is specified for a message event the nuggets XMLEncoder/Decoder will be used to encode/decode the message content. If you don't want to write the beans by hand you also could use the beanynizer tool [Jadex Tool Guide] to generate beans directly from an ontology description defined in Protégé. Further information about ontologies you can find in the [Jadex User Guide], on the Protégé homepage http://protege.stanford.edu/ and in the source code of various examples shipped with the Jadex distribution.

9.2. Protocols Capability

The protocols capability, which belongs to the Jadex planlib provides ready-to-use implementations of some common interaction protocols. In Section 7.4, “Exercise F4 - A Multi-Agent Scenario” you could already see how to use the initiator side of the FIPA request protocol. For more details on the protocols capability, there is a separate section in the [Jadex User Guide].

9.3. Goal Deliberation

This tutorial only mentions the different goal types available in Jadex (perform, achieve, query and maintain). It does not cover aspects of goal deliberation, i.e. how a conflict free pursuit of goals can be ensured. Jadex offers the built-in Easy Deliberation strategy for this purpose. The strategy allows to constrain the cardinality of active goals. Additionally, it is possible to define inhibition links between goals that allow to establish an ordering of goals. Inhibited goals are suspended and can be reactivated when the reason for their inhibition has vanished, e.g. another goal has finished processing. Please refer also to the [Jadex User Guide] for an extended explanation. Background information is available in the paper [Pokahr et al. 2005a].

9.4. Plan Deliberation

If more than one plan is applicable for a given goal or event the Jadex interpreter has to decide which plan actually will be given a chance to handle the goal resp. event. This decision process called plan deliberation can be customized with meta-level reasoning. This means that a custom defined meta-level goal is automatically raised by the system in case a plan decision has to be made. This meta goal can be handled by a corresponding meta-level plan which has the task to select among the candidate plans. Further details about meta-level reasoning can be found in the [Jadex User Guide] and by looking into the source code of the "puzzle" agent included in the Jadex release.

9.5. Jadex BDI Architecture

During some of the exercises you may have used the Jadex debugger for executing Jadex agents step-by-step. But what makes-up one such step in the debugger? All steps represent BDI meta-actions meaning that they are not at the application-level but on the architecture level. Examples for such meta- actions are "selecting plans for a given event", "executing a plan step", "creating a new goal" and many more. Basically, the Jadex interpreter selects one meta-action after another and executes them when they are applicable in the current situation. This new architecture makes the Jadex framework efficient and also extensible as new meta-actions can be added to the system easily. Details about the architecture are described in the [Jadex User Guide] and the paper [Pokahr et al. 2005b].