Direct links to other parts of the IODA NetLogo Manual: General Documentation Tutorial Dictionary
Your feedback is very valuable to us in enhancing the IODA NetLogo extension. Please send comments, suggestions, questions or bug reports to the authors.
"IODA" stands for "Interaction-Oriented Design of Agent simulations".
This methodology is born in the MultiAgent Research Team of the "Laboratoire d'Informatique Fondamentale de Lille" (LIFL, UMR CNRS 8022) at the University Lille 1, France. For more information on IODA please consult the IODA webpage.
ioda.jar
) for the definition of new data types, and
an include file written in the NetLogo language
(IODA_2_1.nls
) for the simulation engine.The IODA NetLogo extension is released under the GNU General Public
License, version 3 (see http://www.gnu.org/licenses). It is
free and open source. The Java source code is available in
the ioda/src
folder, and the simulation engine is in
the IODA_2_1.nls
file. We encourage users to report bugs
or any suggestion for enhancing this extension, and share their
IODA-based models with the NetLogo user community.
The IODA NetLogo extension version 2.2 is fully compatible with NetLogo version 5.0. If you are using NetLogo 4.1.3, please use the 2.0 instead. The 2.2 version only incorporates API changes from NetLogo 4.1.3 to NetLogo 5.0, but does not use the new features (such as tasks) yet.
Not yet. Especially, the simulation engine (nls include file) has been designed to cope with 2D patches only. However, it should work with little code modification, both in Java classes and NetLogo include file.
Yes, a bit slower. This is due to several factors. First, the
simulation engine makes use of the NetLogo run
and runresult
primitives, especially to instantiate
abstract primitives (used in the definition of interactions) into
concrete IODA primitives (depending on the breed of agents), for
instance hungry?
into wolves::hungry?
. In
the forthcoming version of IODA NetLogo (2.3 ?), the use of tasks
should fix this problem.
In addition, the simulation engine itself defines its own scheduler, and the interaction selection process is not that simple. Especially, perception might be costly: for instance, if you have a large number of patches, you should treat them as a discrete portion of space, rather than as agents.
Yet, we the think that for simulations involving complex relations between several kinds of entities, the loss of performance is widely counterbalanced by the facility to design and change models.
The name you want, since you can load any (syntactically correct)
interactions file with the
command ioda:load-interactions
. Still, a name like
"interactions.txt" is quite relevant.
No. You can write keywords, interaction names and primitive names in uppercase or lowercase.
The syntax is the following (as mentioned in the
file interactions.txt
in
the tutorials/0-template
folder):
[EXCLUSIVE|PARALLEL] INTERACTION <name> [TRIGGER <tr1> ... <tr_n>] [...] [TRIGGER <tr'1> ... <tr'_n>] [CONDITION <cond1> ... <cond_n>] [...] [CONDITION <cond'1> ... <cond'_n>] [ACTIONS <act1> ... <act_n>] END
What is absolutely required is the interaction name. All other
elements are optional.
The basics of interactions are described
in this section of
the tutorial. The difference between exclusive
and parallel interactions is explained
in there.
When you specify triggers and conditions, one trigger line (at least)
and one condition line (at least) must be fulfilled so as to allow the
interaction to occur. A trigger (or condition) line is fulfilled if
and only if all primitives of the line report true. Thus, if you need
to define alternative conditions or triggers, e.g. a year is a leap
year if it is divisible either by 400, or by 4 but not by 100
(cf. tutorials, folder 4b-leap years
), you can express
this logical disjunction by using two CONDITION
clauses.
Actions are performed in the specified sequence.
The name you want, since you can load any (syntactically correct)
matrix file with the command ioda:load-matrices
. Still, a
name like "matrix.txt" is quite relevant.
No. You can write breed names, interaction names and other keywords in uppercase or lowercase.
In order to make your applet work, you need to put the following files in the same directory:
NetLogoLite.jar
and NetLogoLite.jar.pack.gz
(copy them from your
NetLogo installation directory)IODA_2_2.nls
ioda
containing ioda.jar
and ioda.jar.pack.gz
model.nlogo
) with the
correct relative path to IODA_2_2.nls
(i.e. __includes ["IODA_2_2.nls"]
)interaction.txt
and matrix.txt
)model.html
)Authors: Sébastien Picault and Philippe Mathieu
Email: ioda
(at) univ-lille1.fr
Web Site: http://www.lifl.fr/SMAC/projects/ioda
All contents © 2008-2013 Sébastien PICAULT and Philippe
MATHIEU – SMAC Research Team
Laboratoire d'Informatique Fondamentale de Lille (LIFL),
UMR CNRS 8021
University Lille 1 – Cité Scientifique,
F-59655 Villeneuve d'Ascq Cedex, FRANCE.
The IODA NetLogo extension is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The IODA NetLogo extension is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU
General Public License along with IODA NetLogo extension. If not,
see http://www.gnu.org/licenses.