all diagrams

Meta-Model Structure

Our first diagram depicts the core of the metaABM system. (Click on diagram to zoom in.)

Note that we are omitting the 'S' part of each meta-object name from the description below; except in technical documentation, metaABM features are usually referred to by their non-qualified name. Core interactions are in Red. Every metaABM model has at its root a Context 1. Contexts instances represent types of agents that are capable of containing other Agents (including other contexts, naturally). At runtime, instances of Context instances (got that?) contain agent instances each corresponding to one of the contained Agent instances.

This sounds more complicated than it is, so perhaps an example will help explain the flavor, after which we will simply discuss important aspects of the metaABM model which may not be apparant from the general model. Suppose we create a new Context, and give it a label of "Sugarscape Model"2. Within that Context, we create an Agent and give it a label of "SugarAgent" and another Agent with the label "SugarCell". (For those unfamiliar with UML notation, we know that Contexts are sub-types of Agent because there is an open arrow from SContext to Agent, and we know that Agents can have a label because they are sub-types of Implementated, which are sub-types of IID -- almost every object in metaABM has identifiers -- and IID has an attribute of "label".) At runtime (when we are actually executing the model, and ignoring setting up projections and initializers), we will have one Sugarscape model which contains a number of SugarAgents along with a set of SugarCells arranged in a grid structure. We can add anAttribute to our "SugarAgent"Agent, and give it a label of say "Wealth", with a type of "Real". (We know that Agents can have Attributes because they are a sub-type of Actables, which are a sub-type of Attributed. SAttrributed has a line leading to Attribute and that line has a a solid diamond at one end and a "0..*" label at the other, telling us that each Agent can include any number of attributes.3

Contexts may have Projections, which represent some kind of spatial or structural interaction space for the agents; either a grid, a continuous (euclidian) space, or a network or GIS space of some kind. (GIS is currently only supported as a notional construct and has no target platform implementation.) In addition to Attributes, agents are SActables can have any number of behaviors, called "Acts", described in the next diagram.4 SStyles provide a mechanism for defining generic visualization behavior for Agents and so are also Actables. For example, an Agent might have an Act that says effectively "draw a red circle shaded red for the wealth of the agent".

1See Howe, et. al.CONTAINING AGENTS: CONTEXTS, PROJECTIONS, AND AGENTS http://www.agent2006.anl.gov/2006procpdf/Howe_Agent_2006.pdf
2See the classic Epstein and Axtell Sugarscape model, http://www.brookings.edu/press/Books/1996/artifsoc.aspx
3Hopefully, if you are not familiar with UML you have a better sense of how useful it can be for depicting such relationships. There are a number of good resources on the web; googling "UML Class Diagram" should provide a good starting point.
4Here Acts are instances of IAct, which is an interface to avoid a circular reference between the base and act packages.
All contents © Copyright 2008 Metascape, LLC. All rights reserved.