Tutorial Series - Programming in Jason

Jason is an agent-oriented programming platform that provides:

  • An interpreter for AgentSpeak, which is an agent-oriented programming language that extends logic programming and sits within the belief-desire-intention (BDI) paradigm
  • A broader infrastructure for implementing multi-agent systems, including agent communication and virtual environments

This is a tutorial series for EMATM0042 - Intelligent Information Systems that provides a brief introduction to programming multi-agent systems in Jason.

All steps and screenshots are based on macOS but should work similarly for Windows and Linux.

Getting started

This section describes how to get started with Jason development and should be completed prior to the lab sessions.

Students are requested to install Jason on their own laptops and to use them during the lab sessions. For students who are unable to do so, details will be provided separately on how to access Jason on the lab machines.

Lab sessions

Tuesday 5 March 2024

A basic understanding of logic programming is essential to Jason programming. This section provides a brief introduction to logic programming using the SWISH web interface for SWI-Prolog.

Tuesday 12 March 2024

Agents are implemented in Jason using a variant of the AgentSpeak language, denoted by files with the .asl extension. This section provides a brief introduction to implementing .asl files.

Tuesday 19 March 2024

Multi-agent systems are configured in Jason using a Jason configuration file, denoted by the .mas2j extension. Jason also provides a family of actions, available when implementing .asl files, that allow agents to communicate with each other. This section provides a brief introduction to the .mas2j file and to Jason communication actions.

Advanced material

Experience with Java programming is desirable but not essential to Jason programming. This section provides details on advanced topics that require at least some Java programming.

The material covered in this section is not required to achieve full marks in the assignment. However, experienced programmers (especially those with Java experience) should find them straightforward and they will allow you to implement more interesting applications in Jason.

Further resources