For this problem set you will implement a distributed meeting
scheduling application using JADE as your
agent platform. Specifically, you will be extending the
MeetingScheduler
demo application that comes with
JADE to support a series of new features. You should read the
FIPA Personal
Assistant Specification for guidelines on how to implement
your system.
The current MeetingScheduler
schedules meetings by
searching for an empty time where all attendants can attend and
using that time. You will extend this mechanism by adding
priority values to agents and to meetings. The current
MeetingScheduler
also uses its own ontology. You
will change that ontology and instead use a subset of the hybrid
calendar schema from the RDF calendar
task force.
The ontology you implement does not need to implement all the terms of the hybrid schema (there are too many), only those that are needed for your protocols. Those terms and relationships that you implement should, however, conform to the hybrid architecture. Specifically, you should use the same names for terms and relationships and preserve the same semantic relationships. Again, the point is for you to implement a subset of the hybrid calendar schema.
The agents you implement will each be given a priority number by the user upon startup. The priority of an agent is simply a number from 1 to 10 where 1 has the highest priority (the boss). When the user of an agent wants to set up a meeting you will use the same interface as the current one but the meeting itself will also include a priority number, also from 1 to 10, and it will divide invitees into two sets: must-attend and should-attend. You will then design and implement an interaction protocol for the agents that obeys the following rules. The effective priority of a scheduled meeting is the sum of the meeting's priority and the average priority of the agents attending that meeting. If the meeting has not been scheduled then its effective priority is the sum of the meeting's priority and the average priority of the must-attend agents.
The final version you hand in needs to be really easy for me to
compile and run. As such, you will need to test it on Unix
before handing it in to make sure it compiles and runs as you
expect. After you unzip the JADE code, you will copy-over the
Makefile in jade/src/demo
with this Makefile. With this makefile in place you
should be able to cd to jade/src/demo
, type
make
and have all your code compile, type
make clean
to remove all old and compiled classes,
and type make run
to run the demo with two agents
(Tizio and Caio). Do this now! Once you have confirmed that you
can compile and run the code then you can start modifying the
java files under jade/src/demo
. Do not change or
create any files outside that directory.
This problem set is to be done by groups of 1 to 2 students. As
will all the problem sets, you will hand them in using our
department's dropbox. You will hand in a zipped file (tar and gzip, or
zip) of your MeetingScheduler directory containing all your .java
files. Do a make clean
before handing it in. I will be
running your project by doing a make run
. If that does
not work then you are in trouble. You will also include a README file
where you fill out:
This file will explain the architecture of your system and the interaction protocols you used. You will also hand in AUML diagrams of your interaction protocols. If you have them in .png/.gif/.jpg/.pdf/.ps format then you can hand them in with the rest of your files. Otherwise you should print them out and hand those in before the deadline.