This repository contains:
- a partial implementation of a JaCaMo application for completing simple exercises in the AgentSpeak programming language
- a partial implementation of a JaCaMo application where a BDI agent assists its user through their daily activities.
├── src
│ ├── agt
│ │ ├── task1
│ │ │ ├── illuminance_controller.asl // agent program of the illuminance controller agent used in Task 1.1
│ │ │ └── simple_agent.asl // agent program of the simple agent used in Task 1.2
│ │ └── task2
│ │ └── personal_assistant.asl // agent program of the personal assistant agent used in Task 2
│ └── env
│ ├── task1
│ │ ├── IlluminanceSensor.java // artifact that can be used for monitoring the illuminance conditions in a room
│ │ ├── LightBulb.java // artifact that can be used for controlling and monitoring the lights in a room
│ │ ├── Blinds.java // artifact that can be used for controlling and monitoring the blinds in a room
│ │ └── WeatherStation.java // artifact that can be used for monitoring the weather conditions
│ └── task2
│ ├── CalendarService.java // artifact that can be used for managing and monitoring a user's upcoming events
│ ├── Wristband.java // artifact that can be used for monitoring whether a user is asleep or awake
│ ├── LightBulb.java // artifact that can be used for controlling and monitoring the lights in a room
│ ├── Blinds.java // artifact that can be used for controlling and monitoring the blinds in a room
│ └── Mattress.java // artifact that can be used for controlling and monitoring the mattress in a room
├── task1_1.jcm // the configuration file of the JaCaMo application for Task 1.1
├── task1_2.jcm // the configuration file of the JaCaMo application for Task 1.2
└── task2.jcm // the configuration file of the JaCaMo application for Task 2
Complete the implementation of the illuminance controller agent in illuminance_controller.asl
.
Complete the implementation of the simple agent in simple_agent.asl
.
Complete the implementation of the personal assistant agent in personal_assistant.asl
.
- Lecture slides; slides 37-48
- Bordini, R. H., Hübner, J. F., & Wooldridge, M. (2007). Programming multi-agent systems in AgentSpeak using Jason. John Wiley & Sons.; Chapters 1-3
- Boissier, O., Bordini, R. H., Hubner, J., & Ricci, A. (2020). Multi-agent oriented programming: programming multi-agent systems using JaCaMo. Mit Press; Chapters 3-4
- Default internal actions of Jason
You can run the project directly in Visual Studio Code or from the command line with Gradle 7.4. The available Gradle tasks are:
-
For Task 1.1 :
task1_1
-
For Task 1.2:
task1_2
-
For Task 2:
task2
-
In VSCode: Click on the Gradle Side Bar elephant icon, and navigate to one of the Gradle tasks, e.g.:
GRADLE PROJECTS
>exercise-5
>Tasks
>jacamo
>task1_1
. -
MacOS and Linux: Use the command
./gradlew
to run one of the Gradle tasks, e.g.:
./gradlew task1_1
- Windows: Use the command
gradlew.bat
to run one of the Gradle tasks, e.g.:
gradle.bat task1_1