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:
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].
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].
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].