The purpose of the demos is similar to the examples, except that they don’t have an application scenario. They were created simply to demonstrate in practice how to use certain features of Jason, and are available with the distribution in the demos folder. The demos currently available are:

  • Communication: this demo shows various aspects of the speech-act based communication available in Jason.
  • Create agent: this demo shows how new agents can be created while a Jason multi-agent system is running. It shows both how an agent can create another agent as well as how an agent can be added to a running multi-agent systems from within any Java code.
  • Directives: in Jason, pre-processing is used for a few things, including the automatic expansion of plan patterns used to implement complex types of goal-based behaviour, as discuss in one of our papers. This demo shows the available directives for the pre-processor.
  • Failure: handling plan failure is a very important task in programming multi-agent systems. This demo shows how the Jason extension of AgentSpeak for handling plan failure works.
  • Open world: it’s usually simpler to use “closed world assumption” but for certain applications where agents need to reason about things they are ignorant about, open world assumption can be useful. This is a simple demonstration of how this is represented in Jason.
  • Persistent belief base: one of the various things that can be customised in Jason is the belief base used by an agent. This demo shows how the default belief base can be changed to another type of belief base available with Jason which persists the belief base, so in case the agent stops running, the state of the agent’s belief based is restored when it starts running again. Two types of persistent belief base are demonstrated: one that stores the beliefs in plain text files and another where beliefs are stored in a data base. The latter customisation can also be used to access legacy data bases from AgentSpeak.
  • Suspend/Resume: in some applications, the programmer might want to suspend an intention (i.e., to remove an intention from the set of intentions so that it can no longer be selected for running) until some condition determines that the intention could be resumed. This demo shows the Java code that would allow such suspend/resume mechanism to be used as internal actions. These internal actions will be incorporated into Jason’s standard library in the future.
  • Tell rule: this demo shows the Java code for internal actions that would allow a Prolog-like rule (rather than a belief) to be informed by one agent to another. These internal actions will be incorporated into Jason’s standard library in the future.
  • Using only Jason’s BDI engine: some users have asked us whether they could program an agent in AgentSpeak and use our interpreter so that the agent would be part of an existing system rather than an application developed/deployed using Jason. This demo shows how this can be done.