Defines a new agent type.
Defines a new capability type.
Defines a new property file.
Base type for a Jadex BDI agent.
Base type for a capability.
In the imports section single classes, packages and Capability files and packages can be imported with arbitrarily many import statements. Once imported the short Class resp. Capability name can be used to refer to such an element.
An import statement allows to import one class, package resp. Capability file.
In the capabilities section arbitrary many capabilities can be declared. The functionality of a capability can be used within the agent resp. capability.
A capability usage declaration must include the local name of this capability (symbolic name) and the capability's type name (file) or an identifier for its identification.
In the beliefs section single-valued beliefs or multi-valued belief-references can be declared. Additionally references to exported or abstract beliefs of other capabilities can be specified.
In this section different kinds of goals and goal references can be specified. Supported goal types are perform, achieve, query, maintain and meta goals. Also refernces for all types can be specified.
In this section plans can be specified.
In this section internal and message events can be specified. Also references for both can be declared.
In this section predefined expressions and conditions can be declared. Also references for both can be declared.
In this section arbitrary properties can be specified.
In this section arbitrary many initial capability states can be defined. Such a state is used for initialization when an agent is born.
The package to which this capability belongs.
When a capability is declared as abstract, it cannot be used directly for execution. Instead there need to be some implementation for this capability that will be resolved from the capability identifier.
Container for beliefs, beliefsets and corresponding references.
A single-valued piece of agent knowlegde.
A multi-valued piece of agent knowlegde.
A concrete reference to a belief(ref) in another capability (concrete) or an abstract belief that needs assigment from the using capability.
A concrete reference to a beliefset(ref) in another capability (concrete) or an abstract beliefset that needs assigment from the using capability.
Container for goals and corresponding references.
A perform goal is goal that is directly associalted with actions to perform.
An achieve goal is a goal with a target state. To fulfill the goal the target state needs to be achieved.
A query goal is a goal for retrieving information. It has the implicit target consition that some result must be obtained for being succesfully achieved.
A maintain goal is a goal for maintaing some target state. Whenever this state gets violated plans are executed for the goal until the state is reestablished.
A meta goal can be used for meta-level reasoning. Trigger of a meta-goal is another goal or event.
A concrete reference to a performgoal(ref) in another capability (concrete) or an abstract goal that needs assigment from the using capability.
A concrete reference to an achievegoal(ref) in another capability (concrete) or an abstract goal that needs assigment from the using capability.
A concrete reference to a querygoal(ref) in another capability (concrete) or an abstract goal that needs assigment from the using capability.
A concrete reference to a maintaingoal(ref) in another capability (concrete) or an abstract goal that needs assigment from the using capability.
A concrete reference to a metagoal(ref) in another capability (concrete) or an abstract goal that needs assigment from the using capability.
Container for plans.
A plan contains procedural knowledge for achieving goals or handling events. A plan consists of a head and body part. The head specifies the conditions under which the plan is applicabe whereas the body contains the concrete actions to perform.
Container for internal, message events and corresponding references.
An internal event is used for agent internal event notification. It represents a one-way information flow as the event thrower cannot obtain information about the result of event processing.
A message event is used for inter-agent communication.
Do not use. Is only used system internally.
A concrete reference to an internalevent(ref) in another capability (concrete) or an abstract event that needs assigment from the using capability.
A concrete reference to an messageevent(ref) in another capability (concrete) or an abstract event that needs assigment from the using capability.
Do not use. Is only used system internally.
Container for expressions, conditions and corresponding references.
An expression can be used for information querying. Parametrized expressions need explicitly to defined their input parameters.
A condition can be used for waiting for certain world states. Parametrized conditions need explicitly to defined their input parameters.
A concrete reference to an expression(ref) in another capability (concrete) or an abstract expression that needs assigment from the using capability.
A concrete reference to a condition(ref) in another capability (concrete) or an abstract condition that needs assigment from the using capability.
Container for properties.
A property can be used to specify a user defined value. It is interpreted as non-dynamic program code expression that is evaluted once on initialization.
Container for initial states.
Any number of initial states.
The default initial state name. Will be used to choose the initial state among multiple initial state definitions. If no default is explicitly stated, the first will be selected.
Base type for all goals.
If a goal is declared unique only one instance of this type is allowed being adopted at any one time. To determine if two goals are equal the type and parameters are used. Parameters that should not be considered can explicitly be excluded.
A condition that creates a new goal of the given type when triggered. If binding-parameters are used for each possible binding a new goal is created.
The context condition is checked during the whole execution time of a goal. If it becomes invalid the goal will become suspended and is not actively pursued until reactivation.
If the dropcondition triggers the goal instance is dropped.
The goal deliberation setting for the easy deliberation strategy.
The retry flag can be used to determine the behaviour on plan failures. If retry is turned on (by default it is on) and a plan fails to achieve the considered goal another plan from the applicables plan list will be chosen for execution.
The meta-level reasoning flag can be used to determine the behaviour when more than plan is applicable for a given goal. If meta-level reasoning is turned on (by default it is on) and more than one plan are applicable, meta-level reasoning is used to select among the different plan candidates. If turned on, a meta-goal will be searched and used to select among the candidates.
If turned off, a simple ranking is build depending on the priority of the candidate. To further distinguish between candidates with the same priority the rank is used (plan instance -> plan -> plan waitqueue). If also the rank is equal the declaration order of plans n the ADF is used for the selection.
Random selection can be used to choose among applicable plans for a given goal randomly. If used this flag makes the order of plan declaration within the ADF unimportantly, i.e. only random selection is only applied to plans of the same priority and rank (cf. mlreasoning comment). The mechanism is implemented in the jadex.impl.DefaultMetaLevelReasoner.
With the retrydelay the delay between the failure of one plan and the execution of the next plan can be specified in milliseconds.
The exclude flag can be specified when a plan will be excluded from the applicable plan list. The default is when_tried, which means that a candidate is excluded independently of its state when executed one time for a goal. Other options are when_succeeded, when_failed and never.
When post-to-all is set to true (default is false), a goal is dispatched to all candidates of the applicable plan list at once. This process will only happen one time regardless of the retry settings. A post-to-all goal has implicit or semantics meaning that if one plan achieves the goal all others will be terminated.
A perform goal aims at executing actions.
An achieve goal aims at bringing about a target state.
The target condition can be used to specify a desired world state representing goal success.
Can be used to explicitly state when a goal cannot be pursued any longer and is failed.
A query goal aims at retrieving information.
A query goal has the implicit target condition that none of its out parameters may null.
Can be used to explicitly state when a goal cannot be pursued any longer and is failed.
A maintain goal aims at preserving a certain state.
The mandatory maintain condition represents a world state that should be monitored and re-established whenever it gets violated.
A specalisation of the maintain condition taht should be re-established when the maintain condition is violated.
The recur flag. If turned on (default is false) a maintain goal tries to reestablish the maintain state when it is unmaintainable or unknown.
Can be used to specify the timeframe between goal failure (could not reestablish the maintain state) and a new try.
A meta goal can be used for meta-level reasoning.
The trigger for specifying for what kinds of events this meta goal should be used.
Used only internally.
Assign this element to an abstract element of another capability.
Any number of parameters.
Any number of parameter sets.
The context condition is checked during the whole execution time of a goal. If it becomes invalid the goal will become suspended and is not actively pursued until reactivation.
If the dropcondition triggers the goal instance is dropped.
The goal deliberation setting for the easy deliberation strategy.
A query goal has the implicit target condition that none of its out parameters may null.
Can be used to explicitly state when a goal cannot be pursued any longer and is failed.
Used only internally.
Assign this element to an abstract element of another capability.
A plan contains procedural knowledge. It consits of a plan head and a plan body.
An arbitrary number of plan parameters.
An arbitrary number of plan parameter sets.
The plan body. If it is a normal plan the body is interpreted as an expression that must be evaluable to a plan object. If it is an inline plan the body (passed, failed, aborted) code is directly contained in this body specification.
The trigger is used to determine when a plan is applicable for a given event or goal.
Only when the precondition holds a plan can be selected for execution. During the execution of the plan the precondition is not checked any more.
The context condition of a plan must be valid during the whole time of plan execution. If it becomes invalid the plan will immediately be aborted.
The waitque allows a plan instance to receive events even if it is currently running. With the waitqueue filter a plan instance can declare general interest in certain kinds of events.
The priority can be used for controlling the plan selection process (default priority is 0). Plans with higher priority have precedence for plans with lower priority.
The plan body contains the code (actions) to execute.
For inline plans only. The passed method code. This code is executed when a plan completes the body method without exception.
For inline plans only. The failed method code. This code is executed when an uncatched exeception occurs within the plan body.
For inline plans only. The failed method code. This code is executed when a plan is aborted. It can either be aborted on succes, i.e. when the goal succeeds or on failure, i.e. when the goal fails.
The type of the plan body. Default is standard. If mobile agents (migration) is required mobile plans should be used. Mobile plan do not require their own thread.
Inline plans are completely defined within the ADF. This means that the body code (and optionally succeeded, failed, aborted code) is directly written into the ADF. This is very usable for small plans. Note, this feature is provided only when the Janino parser is used.
Base type for single-valued elements with a type.
The required Java class of the fact. Used for type checking objects that are asserted as facts.
For dynamic expressions the update rate defines in what intervals the fact will be re-evaluated. The default update rate is set to 0.
Transient beliefs or prameter values are not retained, when persisting or migrating an agent. This is useful e.g. when a value class is not serializable.
Base type for multi-valued elements with a type.
The required Java class of the fact. Used for type checking objects that are asserted as facts.
For dynamic expressions the update rate defines in what intervals the fact will be re-evaluated. The default update rate is set to 0.
Transient beliefs or prameter values are not retained, when persisting or migrating an agent. This is useful e.g. when a value class is not serializable.
A parameter represents a single-valued piece of information belonging to some parameter element.
Assign this element to an abstract element of another capability.
An expression that represents the default value. Per default it is static, i.e. it is only evalued only once on creation.
From a set of binding option values one concrete is selected per instance.
A parameter set represents a multi-valued piece of information belonging to some parameter element.
Assign this element to an abstract element of another capability.
An expression that evaluated to a default value. Only static values are allowed, i.e. it is only evaluated once on creation.
An expression that is evaluated to a set of default values. Per default it is static, i.e. it is only evalued only once on creation.
A belief represents a single-valued piece of information.
An expression that represents the default value. Per default it is static, i.e. it is only evalued only once on creation.
A belief represents a multi-valued piece of information.
An expression that evaluated to a default value. Only static values are allowed, i.e. it is only evaluated once on creation.
An expression that is evaluated to a set of default values. Per default it is static, i.e. it is only evalued only once on creation.
Parameter for a plan. Additionally allows mappings being defined.
An expression that is the default value.
From a set of binding option values one concrete is selected per plan instance. If a plan with binding options is created for each possible binding value a new plan instance is created.
This parameter is considered as a proxy. It is mapped to another parameter in an internal event.
This parameter is considered as a proxy. It is mapped to another parameter in a message event.
This parameter is considered as a proxy. It is mapped to another parameter in a goal.
If a parameter is declared optional (default is false), it need not to have a value (can null).
The direction can be used to explicitly declare e.g. result parameters (out) or parameters that are both (inout). Per default parameters are in.
Parameter set for a plan. Additionally allows mappings being defined.
If a parameter is declared optional (default is false), it need not to have a value (can have 0 values).
The direction can be used to explicitly declare e.g. result parameters (out) or parameters that are both (inout). Per default parameters are in.
A piece a program code that is evaluated.
Any number of typed expression parameters. For evaluation specific parameter values have to be provieded. Allows parametrized queries being specified.
Any number of beliefs that should cause a re-evaluation of this expression.
Any number of belief sets that should cause a re-evaluation of this expression.
Any number of goals that should cause a re-evaluation of this expression.
Any number of parameters that should cause a re-evaluation of this expression.
Any number of parameter sets that should cause a re-evaluation of this expression.
The evaluation mode determines if an expression is dynamic or static. If declared static it is only evaluated once (on creation).
The required Java class of the expression. Used for type checking the evaluation result.
A user-defined parameter for an expression, e.g. for parametrized queries.
The Java class of the user-defined parameter.
For expressions that are not conatined in the expressionbase. Cannot be exported.
Any number of beliefs that should cause a re-evaluation of this expression.
Any number of belief sets that should cause a re-evaluation of this expression.
Any number of goals that should cause a re-evaluation of this expression.
Any number of parameters that should cause a re-evaluation of this expression.
Any number of parameter sets that should cause a re-evaluation of this expression.
An expression that is monitored.
The trigger specifies the circumstances under which a condition triggers. Possible settings are changes_to_true, changes_to_false, is_true, is_false, changes and always.
For conditions that are not conatined in the expressionbase. Cannot be exported.
Any number of beliefs that should cause a re-evaluation of this expression.
Any number of belief sets that should cause a re-evaluation of this expression.
Any number of goals that should cause a re-evaluation of this expression.
Any number of parameters that should cause a re-evaluation of this expression.
Any number of parameter sets that should cause a re-evaluation of this expression.
Describes and defines an included capability.
The capability to include. The file can be either referenced by an unqualified or qualified name, e.g. name or package.name, or by a filename relative to the classpath, e.g., package/name.capability.xml. Abstract capabilities like the DF capability have to be referenced by the fully qualified name (i.e., jadex.planlib.DF), because these capabilities are resolved by this identifier using the platform configuration.
Base type for all model elements.
The elements name.
The elements optional description text.
Base type for all bases, e.g. beliefbase, planbase, goalbase, etc.
Base type for all events.
When post-to-all is set to true (default is true only for internal events), an event is dispatched to all candidates of the applicable plan list at once.
The meta-level reasoning flag can be used to determine the behaviour when more than plan is applicable for a given event. If meta-level reasoning is turned on (by default it is on) and more than one plan are applicable, meta-level reasoning is used to select among the different plan candidates. If turned on, a meta-goal will be searched and used to select among the candidates.
If turned off, a simple ranking is build depending on the priority of the candidate. To further distinguish between candidates with the same priority the rank is used (plan instance -> plan -> plan waitqueue). If also the rank is equal the declaration order of plans n the ADF is used for the selection.
Random selection can be used to choose among applicable plans for a given goal randomly. If used this flag makes the order of plan declaration within the ADF unimportantly, i.e. only random selection is only applied to plans of the same priority and rank (cf. mlreasoning comment). The mechanism is implemented in the jadex.impl.DefaultMetaLevelReasoner.
An internal event is used for agent internal event notification.
A message event is used for inter-agent communication.
Specifies the direction of the message. Possible values are send, receive and send_receive.
The message type defines the predefined names and types of parameters. Possible values are fipa.
Base type for goal events.
Base type for elements that can have parameters and parameter sets.
Any number of parameters.
Any number of parameter set elements.
Used to define a reference to another element.
The name of the referenced element.
Base trigger type allows reaction on goals, internal and message events and filters. All declared elements are considered as OR combined.
Any number of internal events that are triggers.
Any number of message events that are triggers.
Any number of goals that are triggers.
Deprecated. Can be used to specify an arbitrary complex filter expression that must evaluate to a IFilter and will be used to check if triggers.
Reference to another element. Used in trigger to match an event or goal.
Any number of parameters that are matched against parameters of the event/goal.
The name of the referenced element in the same capability.
A parameter value for a reference. Used in trigger to match a parameter value.
The value is matched against the parameter value of the event/goal.
The name of the referenced element.
A condition used for binding purposes (multiple variable assignmnets).
Uniqueness settings for goals. Excluded parameters will not affect if goals are considered equal.
Any number of excluded parameters.
Base type for elements contained in bases. Exported elements can be used in outer capabilities.
Assign this element to an abstract element of another capability.
If an element is exported it can be referenced from an outer capability. The default for this attribute is false.
Base type for element references, i.e. elements that reference others.
A concrete reference to an element that is conatined in some included subcapability. Dot notation is used for referencing the other element, e.g. subcapname.elemname
The reference is abstract. This means that an outer capability can assign an element to this reference. If required this assignment is needed. Otherwise the element can potentially be unbounded.
If an abstract element is required, a capability wants to use this capability is forced to assign an element to this abstract reference. Per default abstract alements are required.
Reference to a typed element.
The class of the contained value. In the reference this value can be overridden to allow specializations for derived types.
Reference to a typed element set.
The class of the contained value. In the reference this value can be overridden to allow specializations for derived types.
Reference to a parameter.
Reference to a parameter set.
Reference to a belief.
Reference to a belief set.
Reference to a parameter element.
Any number of parameter references.
Any number of parameter set references.
Reference to a goal.
Reference to a goal.
Reference to an achieve goal.
Reference to a query goal.
Reference to a meta goal.
Reference to a maintain goal.
Reference to an event.
Reference to an internal event.
Reference to a message event.
Reference to a goal event.
Reference to a plan. Not yet used.
Reference to an expression.
Reference to a condition.
A relevant element can be used to define on which elements an expression depends.
The eventtype that is of interest for the expression/condition that specifies the relevant element.
The name of the referenced element that is relevant for the expression/condition that specifies the relevant element.
Defines initial states for capabilities and agents.
Any number of initially customized capabilities.
Any number of initially customized beliefs.
Any number of initially created goals.
Any number of initially created plans.
Any number of initially created events.
Base type for initial elements.
Base type for initial referenceable elements.
The name of the referenced model element.
Base type for initial parameter elements.
An expression that is once evaluated to the initial parameter value.
An expression that is once evaluated to the initial parameter set values.
A goal that is created on capability or agent creation.
A plan that is created on capability or agent creation.
A message event that is created on capability or agent creation.
An internal event that is created on capability or agent creation.
A belief that is initialized with a defined value on capability or agent creation.
An expression that is once evaluated to the initial belief value.
A belief that is initialized with defined values on capability or agent creation.
An expression that is once evaluated to the initial belief value.
An expression that is once evaluated to the initial belief set values.
Base type for initial bases.
Container for initial beliefs.
Any number of initially customized beliefs.
Any number of initially customized belief sets.
Container for initial capabilitiers.
Any number of initially set up capabilities. Note that they have to reference a declared capability and can only change their initialstate.
Container for initial goals.
Any number of initially created goals.
Container for initial plans.
Any number of initially created plans.
Container for initial events.
Any number of initially created internal events.
Any number of initially created message events.
An initial parameter hold an initial value for a parameter.
An expression that resolves to a single value.
An initial parameter hold an initial value for a parameter set.
An expression that evaluates to a single value.
An expression that resolves to a set of values. Supported are iterators, enumerations, java.util.Collections, java.util.Maps, arrays.
A capability that is initialized with a defined configuration on capability or agent creation.
The name of the initialstate that should be used for the initial capability.
The trigger for plans also reacting on conditions, belief and belief set changes.
For a value that is only once computed.
Easy deliberation settings for goals (inhibitions). For an inhibition with the ref attribute the name of the inhibited goal can be specified. With the inhibit attribute it can optinally also specified in which state the goal has to be to inhibit the other.
The name of the goal to inhibit.
In which state other goals should be inhibited. The default is when_active. For maintain this should normally be changed to when_in_process as maintain goals are homeostatic and active longer than other goal types.
Easy deliberation settings for goals (cardinality and inhibitions).
Any number of inhibitions can be specified. One inhibition specifies under which circumstances a referenced goal is inhibited.
The cardinality specifies how many active goal instances of the given type can exist. The default is -1 meaning that a unlimited number of goals are permitted being active.