Skip to content

AAAI-DISIM-UnivAQ/DALI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DALI

DALI Multi Agent Systems Framework

DALI is a meta interpreter built on top of Sicstus Prolog (R) (at the moment).

Installation

DALI is built upon the SICStus Prolog implementation, following instructions at https://sicstus.sics.se/download4.html, for which you a need a valid license. You may use any latest SICStus version, but DALI has been tested to work well with the archived 4.6.0 version available at these URLS:

Also some OS-specific isntructions:

OS X & Linux:

You can download DALI and test it by running an example DALI MAS:

git clone https://github.com/AAAI-DISIM-UnivAQ/DALI.git
cd DALI/Examples/advanced
bash startmas.sh

     You will see different windows opening:

  •      Prolog LINDA server (active_server_wi.pl)
  •      Prolog FIPA client (active_user_wi.pl)
  •      1 instance of DALI metaintepreter for each agent (active_dali_wi.pl)

Windows:

You can download DALI from https://github.com/AAAI-DISIM-UnivAQ/DALI.git.

  • Unzip the repository, go to the folder "DALI/Examples/basic", and test if DALI works by duble clicking "startmas.bat" file (this will launch an example DALI MAS).

         You will see different windows opening:
  •      Prolog LINDA server (active_server_wi.pl)
  •      Prolog FIPA client (active_user_wi.pl)
  •      1 instance of DALI metaintepreter for each agent (active_dali_wi.pl)

Usage example

You can find some examples into the Example folder, where examples are divided into 3 subfolders:

  • basic: aimed at basic Windows-based setup, no agent types, every agent living in a separated sicstus window.
  • advanced: more complex, aimed at Unix-like based environment, with agent type, instances, each agent living in a separated xterm console.
  • more: MAS examples derived from our students projects.

Development setup

To create a new DALI MAS, you can use an example as a boilerplate:

  1. Create a folder to contain your project, for example let's call it "projectFolder"
  2. Copy the folder "DALI/src" into "projectFolder"
  3. In "projectFolder", create a folder that will contain your DALI app, for example let's call it "DALIappFolder"
  4. Copy the content of "DALI/Examples/advanced" folder in "projectFolder/DALIappFolder"
  5. Rewrite the files contained in "projectFolder/DALIappFolder/mas/instances" and in "projectFolder/DALIappFolder/mas/instances" in a proper way (see DALI documentation), in order to create your DALI MAS.
  6. Open the "startmas" file and change the following variables according to your paths:
  • sicstus_home: The SICStus prolog path
  • main_home: # The "projectFolder" path, in relation to the "startmas" file position (in this example it is "..")
  • dali_home: # The "projectFolder/src" folder path, in relation to the "startmas" file position (in this example it is "../src")
  • conf_dir: # The "projectFolder/conf" folder path, in relation to the "startmas" file position (in this example it is "conf")

Release History

Check release history page.

Contacts

Giovanni De Gasperis – @giodegas – giovanni.degasperis-at-univaq-it

Distributed under the Apache License 2.0. See LICENSE for more information.

http://github.com/AAAI-DISIM-UnivAQ

Contributing

To complete

  1. Fork it (https://github.com/AAAI-DISIM-UnivAQ/DALI/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Examples of Applications:

  • in Robotics: coordination among store delivery robots: Video from S. Valentini: Delivery robots cordination

References

  • DALI 1.0 original URL: http://www.di.univaq.it/stefcost/Sito-Web-DALI/WEB-DALI (no more active)
  • COSTANTINI, Stefania. The DALI Agent-Oriented Logic Programming Language: Summary and References 2015.
  • COSTANTINI S, TOCCHIO A. A logic programming language for multi-agent systems. Logics in Artificial Intelligence, Springer Berlin Heidelberg, 2002, pp:1-13.
  • COSTANTINI S, TOCCHIO A. The DALI logic programming agent-oriented language. In Logics in Artificial Intelligence Springer Berlin Heidelberg, 2004, pp:685-688.
  • COSTANTINI S, TOCCHIO A. DALI: An Architecture for Intelligent Logical Agents. In: AAAI Spring Symposium: Emotion, Personality, and Social Behavior. 2008. pp:13-18.
  • BEVAR V, COSTANTINI S, TOCCHIO A, DE GASPERIS G. A multi-agent system for industrial fault detection and repair. In: Advances on Practical Applications of Agents and Multi-Agent Systems. Springer Berlin Heidelberg, 2012. pp:47-55.
  • DE GASPERIS, G, BEVAR V, COSTANTINI S, TOCCHIO A, PAOLUCCI A. Demonstrator of a multi-agent system for industrial fault detection and repair. In: Advances on Practical Applications of Agents and Multi-Agent Systems. Springer Berlin Heidelberg, 2012. pp:237-240.
  • DE GASPERIS Giovanni. DETF 1st Release (Version 14.08a). Zenodo. DOI, 2014, August 6.
  • COSTANTINI, Stefania; DE GASPERIS, Giovanni; NAZZICONE, Giulio. DALI for cognitive robotics: principles and prototype implementation. In: International Symposium on Practical Aspects of Declarative Languages. Springer, Cham, 2017. p. 152-162.
  • COSTANTINI, Stefania, DE GASPERIS, Giovanni, PITONI Valentina, SALUTARI Agnese. DALI: A multi agent system framework for the web, cognitive robotic and complex event processing., CILC 2017, 32nd Italian Conference on Computational Logic 26-28 September 2017, Naples, Italy
  • RAFANELLI, Andrea; COSTANTINI, Stefania; DE GASPERIS, Giovanni. A Multi-Agent-System framework for flooding events. 2022. WOA 2022: 23rd Workshop From Objects to Agents, September 1–2, Genova, Italy
  • COSTANTINI, Stefania. *Ensuring trustworthy and ethical behaviour in intelligent logical agents. Journal of Logic and Computation, 2022, 32.2: 443-478.