# MadKit User's Guide

Abstract

This document describes the installation of the MadKit 4.0 agent platform and the use of the MadKit desktop environment

Note: this is still an alpha version. Many features are still lacking... Comments, bugs, critics about this guide are welcome. Please send an email to team@madkit.org. Thank you.

## General information

### What is MadKit

MadKit is an multi-agent platform for developing and running application based on an organizational oriented paradigm. This multi-agent paradigms uses agents, groups and roles as the basic standpoint for building complex applications. MadKit does not enforce any consideration about the internal structure of agents, thus allowing a developper to freely implements its own agent architectures.

MadKit is also a distributed platform which allows for the development of efficient distributed applications. For the programmers, all considerations about basic distributed components such as “sockets” and “ports”, are totally transparent. An application developped in a multi-agent way can be runned in a distributed way without changing a line of code. The MadKitdistribution mechanisms does not use the quite rather slow techniques of RMI or CORBA remote access, thus allowing for an efficient mode of communication.

MadKit is built around the concept of “micro-kernel” and “agentification of services”. The MadKit kernel is rather small, but agents offer the important services one needs for its own application. Distribution and remote message passing, monitoring and observation of agents, edition, etc.. are all performed by agents. Moreover, MadKit comes with a set of “containers”, i.e. execution environment for running application, to make MadKit work in different situations: as an development environment, but also as an embedded tool for applications.

MadKitis a free software which comes with a mix of GPL/LPGL licenses (LGPL for the basic libraries, and GPL for development tools). Thus one may develop easily in MadKit and use it as a basic product for commercial applications.

### MadKit on the net

#### Web pages

The MadKit home-page, at http://www.madkit.org is the place where new software releases, documentation or additional agent packs can be downloaded. There is also a project database you can use for your own projects or agents at http://community.madkit.org

Please feel free to send your comments about MadKit to: `<team@madkit.org>`.

If you find a bug, or have some specific feature request, please use http://bugs.madkit.org, so we can track it easily.

#### SourceForge

MadKit development is hosted by sourceforge. See the madkit project at source forge. If you want to join the team, ask J. Ferber (ferber@madkit.org), who is, for the moment, in charge of the coordination of the MadKit project, to join it.

Note: this is a 'free' software, this means that cannot pay people to develop MadKit.

### License

MadKit is free software and you are welcome to redistributed it under the terms of the GNU General Public License (version 2 or later versions). See the file `documentation/licenses/GPL_license.txt`

In order to allow the development of commercial applications with MadKit, all classes defined in the core packages (i.e. madkitkernel, messages, madkitutils, bshlib, schemelib and pythonlib) are provided with a LGPL License. See the file `documentation/licenses/LGPL_license.txt`

The Communicator and the NetComm package, which are distributed respectively in the `communicator.jar` and the `netcomm.jar` files and which corresponds to the package `network.communicator` is also distributed with a LGPL license.

This means that you may use MadKit freely and develop non-commercial applications based on GPL license without any trouble. However, when you want to develop commercial applications, you are restricted to the classes that are provided in the core classes libraries. Desktop, development tools, system agents, turtlekit, SEdit, examples, tutorials, etc. are restricted to non-commercial applications. Third party software and tools are provided with their own license, see below.

### Third-party software

MadKit uses several third party libraries and software: Kawa, Jess, Jython, BeanShell, jEdit. Each have their own license:

- The Scheme agent library uses the amazing Kawa implementation by Per Bothner. Please check its license in `documentation/licenses/kawa_license.txt`

- The Jess agent library uses the fantastic Jess rule based language. Please check its license in `documentation/licenses/jess_license.txt`

- The BeanShell agent library uses the great BeanShell Java interpreter language. Please check its license in `documentation/licenses/beanshell_license.txt`

- The Python agent library uses the fabulous jython interpreter language. Please check its license in `documentation/licenses/jython_license.txt`

- MadKit is provided with the incredible jEdit editor, which comes with a GPL license. see `documentation/licenses/GPL_license.txt`

- MadKit includes the wonderful Xerces XML parser developed by the Apache Group for use in the Apache HTTP server project ( http://www.apache.org/). Please read its license in `documentation/licenses/apache_license.txt`.