Multi-Agent Oriented Programming

The JaCaMo Platform

This is the course on Multi-Agent Systems, part of the Master Web Intelligence cursus at ENS Mines of Saint-Etienne and University Jean Monnet of Saint-Etienne. You'll find below the material used in this course.

In this course, there is a practical work, in which you will learn how to take a multi-agent oriented programming (MAOP) approach for developping decentralized open systems. This MAOP approach consists in a composition of Agent Oriented Programming (AOP), Environment Oriented Programming (EOP) and Organization Oriented Programming (OOP). We use the JaCaMo platform which is an integration of the Jason Agent Programming Language, Cartago environment programming platform and MOISE organization programming platform.

II. Working Environment Configuration

Configuration

  • Create a directory maop in your working directory

Notes

  • maop stands for "multi-agent oriented programming".
  • In the sequel of this document, MAOP points to this directory.
  • You will install in MAOP all the resources that will be used during the course: the JaCaMo maop platform (packaging of the Jason, CArtAgO, Moise distributions), the complete Jason distribution (including documentation) - explored later in AOP section -, the complete CArtAgO distribution (including documentation) - explored later in EOP section - and the complete Moise distribution (including documentation) - explored later in OOP section -.
  • The JaCaMo Java-based platform can be dowloaded for now, as a packaging of the three distributions, in the complete Jason distribution.
  • You can either use and program a JaCaMo application from the Jason IDE plugin of JEdit or within Eclipse with a dedicated plugin.
  • If you use the Eclipse plugin, Jason needs to be configured before. For that either run jedit or double-click on jason.jar.

Configuration

  • Create a directory examples in the MAOP directory.

Notes

All your practical exercises will go in this directory. For each exercise, you will create a dedicated directory. At the end of the practical work, your environment should look like that:

maop
   Jason-1.3.8
   cartago-2.0.1
   ...
   examples
       greeting
       cleaning_robots
       auction_house
       ...

III. Practical Resources for MAOP

The API and documentations can be accessed here:

IV. Practical work on an agent-platform: JADE (Optional)

This part is not done during the practical classes. Do it Yourself ;-)

V. Instructions and List of Research Papers for Student Presentations

  • The presentation of a research paper is done by a group of three students. If the group is less than three students, we will complete it with other non complete groups.
  • Each group studies one of the research papers and prepares an oral presentation in which each member of the group will have to talk.
  • The duration of the presentation is 21 min. No extra time will be allocated: at the end of the allocated time, the oral presentation will be stopped.
  • The oral presentation will be followed by a question-answer session of 7 to 9 min. in which, again, each member of the group will have to participate.

Planning

  • December 9: Start of "bidding" and "group building" phases (see below)
  • December 13 6 PM: End of "bidding" and "group building" phases
  • December 16: Allocation of papers to the group
  • January 24 1:30 PM to 5:30 PM: presentation according to a planning that will be fixed one week before the presentations. Due to the number of groups, presentations will be done in two parallel sessions. Presentations and slides can be in french or in english.

Bidding of Research Papers

The presentation of a research paper is done by a group of three students. If the group is less than three students, we will complete it with other non complete groups. Each group will send by email its preferences. In order to be properly processed the message must (this is mandatory) contain the following information:

  • The receiver of the message is Olivier DOT Boissier AT emse DOT fr
  • The subject of the message is [MAS RESEARCH PAPERS]
  • The body of the message has:
    • on the first line: the given names and family names of the three members of the group
    • on the following line: the login of the three students, a list of couples in paranthesis with the id of the research paper and a rank (between 0 and 10). The highest rank meaning the most prefered. The research papers that are not ranked will receive the rank 0. A least five (5) different research papers should have a note higher than 5.

Example

From: jacques.durant@etu.emse.fr
Subject: [MAS RESEARCH PAPERS]
To: Olivier.Boissier@emse.fr
Cc: gilles.dupont@etu.emse.fr
Jacques Durant + Gilles Dupont + Achille Talon
[jacques.durant gilles.dupont achille.talon] (14 10) (12 10) (20 10) (1 7) (2 6) (4 2) (7 2)

This means that the group built from Jacques Durant, Gilles Dupont and Achille Talon (whose logins are jacques.durant, gilles.dupont and achille.talon) has given the rank 10 to research papers 14, 12, 20, the rank 7 to research paper 1, the rank 6 to research paper 6 and rank 2 to research papers 4 and 7 (by default all the other research papers got the rank 0).

List of research papers

  • Here is the list from which to choose

VI. Multi-Agent Project

Context and objective

The aim of the project is to design and develop a virtual community management platform for sharing of information within a smart city. The city is equipped with community servers situated in places or buildings of the city. The community "servers" run on dedicated computing resources and manage different communities. Community duration can be ephemera, long term or short term: just for the time during which the creator is in the place, or for a longer time. Communities are created by inhabitants of the city or by any city service. A community server is associated to a physical area defined by geographical coordinates (for instance a circle around the server). Community servers can for instance be situated:

  • In a museum:
    • Management of the community of the people who visited that museum, a kind of "livre d'or",
    • Management of the community of the people interested in a certain topic, agreeing to let their moves in the museum to be logged on and used for extracting the best visit trail in the museum…
  • In a pub
    • Management of the community of people interested in drinking beer
    • Management of the community of people interested in the history of the place
  • In a given place of the city:
    • Management of the community of citizen pushing information related to the improvement of the friendship in that place
    • Management of the community of the citizen pushing information to the city services to signal them things to improve, to repair…

The community servers manage communities by offering different functionalities (see below). These functionalities are available only to users situated in a given neighbourhood of the server (i.e. a certain distance, community area): a user situated in the right area can interact with the community server and create a community, join a community, publish information in the community, get information from the community, etc. Actions are not feasible when the user leaves the area.

Inhabitants of such smart cities are provided with a smart device that contains a community assistant that acts under his/her control. Human users are equipped with a community assistant on their smart phone or other kind of devices. They delegate to this community assistant the management of these different actions according to the topics that he/she is interested in and to the information he/she is ready to share with other users.

The management of a community consists in receiving and processing the actions received from the community assistants. These messages are:

  • Creation of a community. A community assistant creates a community, choosing the type of community and assigning it a given topic that is part of the ontology shared by the community assistants. The creator of the community becomes the owner of it. Only and only the owner can delete a community. This can be done only and only when there are no more members into the community.
  • Entering a community. Any community assistant applies to the owner for getting the membership to his/her community. When application is accepted, the community assistant becomes a member of the community. A community assistant can belong to different communities. A member of a community can leave the community at any time as soon as he/she has satisfied the conditions for leaving.
  • Consulting Communities Yellow Page: the list of existing communities (repository) is made accessible to the community assistants as soon as they are in the neighbourhood of the community.
  • Posting/Reading messages. According to the kind of community, members or external community assistants can post/read messages (information). The messages are related to different community topics.

Modus Operandi

Project Team

  • Build a group of 4 students in order to distribute the work to realise, given the fact that the group will share a common community server.
  • There will be one and only one community server by group (see below).
  • Groups can be less than four. We keep the right to complete the groups in case of too much small groups.

Work to be realised by the group

  • Each group has to develop a community server using the JaCaMo Framework. A community server enables the creation of different kinds of communities (see below "Technical Description")
  • Each group will provide a programming documentation of the community server, explaining how it was programmed, what are the functionalities, the API, etc

Work to be realised by each student

  • Each student is in charge of participating to the development of the community server with the other members of his/her group
  • Each student is in charge of developping one kind of community using the JaCaMo Framework (see below "Technical Description") that will be hosted on the community server
  • Each student is in charge of developping a community assistant using the JaCaMo Framework, which is able to participate to the communities that are hosted by the community server.
  • Each student will provide a programming documentation of the community he/she has developed, the community assistant that he/she has developed
  • The evaluation of the work is individual taking into account the community server realised by the group, the community and community assistant realised by the student.

Planning

  • December 9: Start of "group building" phases
  • December 13 6 PM: End of "group building" phases (sending of the group member names to the responsible of the course) (see below)
  • January 31 6 PM: End of the project and sending of the documents and codes to the responsible of the course.

Example

From: jacques.durant@etu.emse.fr
Subject: [MAS RESEARCH GROUP]
To: Olivier.Boissier@emse.fr
Cc: gilles.dupont@etu.emse.fr, achille.talon@etu.emse.fr,gerard.lambert@etud.emse.fr
Jacques Durant + Gilles Dupont + Achille Talon + GĂ©rard Lambert

Technical Description

Communities

Each community is centered on a particular way of sharing information and knowledge:

  • "Mailbox" Community
    • each member of the community has the possibility to post a message for an other member of the community
    • one has to be registered in this community in order to send a message
    • as long as one is member of the community, he will automatically receive message that are sent to him
  • "Forum"
    • each member of the community can post or read news
  • "Moderated Forum"
    • each member of the community can post or read news.
    • News are sent only after being moderated by the owner of this community (the owner is the one who created this community)
  • "Twitter Like"
    • only the owner of the community (i.e. the one who created it) can send news.
    • The community members receive news that are posted by the owner.
  • Extended Communities
    These four kinds of communities are enriched with the following features:
    • storage limit fixed by the owner (i.e. max number of messages)
    • messages are forgotten after a given period (fixed by the owner)
    • reading of the message is not automatic. Notification of message is automatic.

Community Server

The community server is dedicated to a kind of information sharing, hosting different kinds of communities (basic or extended ones)

  • It must be able to create, destroy, manage communities.
  • We don't take into account the location of the community server and the distance to it for accessing its services.

Community Assistants

A Community Assistant supports the user in the management of his/her digital life in the communities hosted by community servers. It will help his/her in the creation/deletion of communities, posting/reading of messages according to his/her preferences. Preferences may consist in particular topics, in posting behaviours as follows:

  • versatile-egocentric: his/her interest in participating to a community is changing quite often. Each time his/her interest changes, he/she leaves the community. If he/she is owning a community he/she warns the members and delete it.
  • copy-and-paste: each time a new community has been created, he/she registers in it, create a similar community on his/her own and copy any message posted in the community and post it in his/her community.
  • let your imagination work

Implementation

  • Implementation will be realised using the JaCaMo Platform. The Android JaCaMo version can also be used for the development of Community Assistants on smartphones.
  • Community assistants will be implemented as Jason Agents. They will include different plans to create, join, leave, delete communities, to publish informations in the communities.
  • Each community will be implemented as Artifacts from the Cartago platform.
  • The behaviour and regulation of the community can be made explicit by using an organisational specification based on the MOISE platform.
  • The community server will be implemented as a workspace where the community artifacts will be executed.
  • Documentation of the project is:

Olivier Boissier, January 2014