|
Multi-Agent
Modeling Language
|
László
Gulyás
Tamás
Kozsik
Sándor Fazekas
MAML
is at v0.03, the compiler is in v0.03.2 (1330) alpha
The initiative
for developing MAML was based on our experiences with students of
social sciences who wanted to create agent-based models. These experiences
showed that it is rather hard for them to implement their ideas
because they are not trained as programmers.
We began by
examining several existing software packages for scientific modeling
and simulation and selected Swarm,
a project of the Santa
Fe Institute. However, it turned out that despite the various
ways Swarm helps users, it was still too complicated for our users.
So, we've decided to develop our own environment specifically designed
for our users.
As we developed
our modeling environment, we did not put Swarm aside. Several concepts
have been borrowed, and the first versions of our language are just
extensions (or shorthands) to the Swarm simulation package. In the
future, we plan to have an even higher level tool that will most
likely diverse from Swarm and will have a graphical interface.
MAML was presented
at SwamFest'99, the Third Annual Meeting of the Swarm Users Group.
(Here
are the slides.)
The current
version of MAML is basically an extension to Objective-C (using
the Swarm libraries). It consists of a couple of 'macro-keywords'
that define the general structure of a simulation. The remaining
must be filled with pure swarm-code. A MAML-to-Swarm (named xmc)
compiler is also being developed which compiles the source code
into a swarm application. Like every other Swarm application, this
generated application must be compiled by gcc.
Although the
language is still in alpha stage (that is, any official release
is months away), we do believe that, by using the MAML-defined structure
and the MAML keywords, the task of creating a simulation in Swarm
becomes much easier for both programmers and non-programmers.
We must note that the current version of the language should be
used with some programming background. We believe, however, that
our work to date, although unfinished, has already significantly
lowered the level of programming knowledge necessary.
Swarm
versions 2.1.1, 1.4.1, 1.3 and 1.0.2 are supported.
If you are interested
in downloading and installing xmc, the MAML compiler, you
can find every detail on this page.
This page teaches
you how to use the xmc compiler and describes both its switches
and how its arguments should appear.
This is a good
place to start if you are unfamiliar with MAML and Swarm. The tutorial
contains a series of simple models with explanations and fully commented
source code. New features of MAML are also discussed in some detail
as they are introduced during the course. The first steps of a modeling
course with MAML are also available.
Here is a growing
list of implemented simulations in MAML. Currently most of them
are fairly simple example models, but there are some
with scientific relevance, too. The latter ones are becoming more
prevalent as work continues.
This document
gives a detailed (technical) overview of MAML's logics, and syntax.
MAML and MDI
was presented at a couple of conferences so far. Here are some slides
from those presentations, the ones from SwarmFest'99
(UCLA, Calif., March 1999) and Villalago'99
(Trento, Italy, June 1999). Moreover, there is a paper about the Model Design Interface (accepted
for the International Conference of PHD Students, University of
Miskolc, Hungary, 1999.), and another paper about the aspect-orientedness of MAML (accepted
for The Sixth Fenno-Ugric Symposium on Software Technology, Estonia
1999). Finally, to sum all these up, we have contributed an article
to the July-October 1999, double issue of the Journal of
Artificial Societies, and Social Simulation, under the title
The Multi-Agent
Modeling Language and the Model Design Interface.
This page provides
explanations for Swarmites who do not understand the reason behind
certain things in MAML, and why these things are important. This
document helps you understand the different concepts and innovations
of MAML.
This page describes
the internal, highly technical side of MAML and xmc (its
compiler). The semantics of the language is defined here. Note that
you must be familiar with Swarm
to understand what is written here. This is a good place to look
at, if you are skilled in Swarm, to learn what MAML can do for you.
If you need
support or have comments, contact us at maml@maml.hu.
Last
modified: Oct 20 2000
|