Agent Modeling Platform (AMP)
The Agent Modeling Platform (AMP) is a proposed open source project under the Eclipse Modeling project. This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope and to solicit additional input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the eclipse.amp newsgroup.
ScopeAMP provides extensible frameworks and exemplary tools for representing, editing, generating, executing and visualizing agent models.
Agent models share characteristics with object models, but are:
- Spatial: Models have explicit environment(s) in which agents interact. (An environment need not be a physical landscape; other examples of spatial relationships include social networks or positions within a logic system.)
- Temporal: Models change over discrete units of time.
- Autonomous: Agent behaviors are activated independently from other object requests.
- Heterogenous: Agents may share behavior definitions but have apparent and distinct states and behaviors.
- Collective: Models contain large communities of agents which exhibit collaborative and competitive behaviors.
- Emergent: Agents have collective macro-behaviors that are non-obvious from agent micro-specifications.
IntentThe primary focus of AMP is Agent-Based Modeling (ABM), an innovative technique used to explore complex phenomenon in many domains, including economics, social sciences, bio-medicine, ecology and business operations. The Eclipse Platform provides many unique features that make it ideal for an ABM platform. But the Agent Modeling Platform is not limited to ABM. Many kinds of objects share characteristics listed above and software agents are used in many other contexts. Thus, AMP's meta-modeling support is potentially suitable (or extendible) for a number of approaches outside of ABM; for example business rules, object interactions, systems dynamics models and traditional discrete event models. Similarly, AMP execution and graphic support can be used for modeling natural systems but could also be used to manage other software agents -- for example independent reasoning tasks or dynamic visualization support. AMP is also not intended as a monolithic ABM tool. Instead it provides infrastructure and highly leveraged tools for ABM and other agent technologies. As with the Eclipse project itself, AMP's vision is of a set of loosely coupled yet strongly collaborating components that integrate and enable a large and diverse ecosystem of tools and approaches. While AMP is focused on providing tools for the ABM community, we encourage and support other uses as well as inter-project collaboration within this broader scope.
The relationships between Eclipse, the AMP components and the outside world are summarized in the architectural diagram below:
Agent Modeling Framework (AMF)AMF is an Agent-Based Model Meta-Model representation, editor, generator and development environment. AMF is analogous to EMF but is targeted toward the design and execution of models composed of agents. The AMF meta-model (currently "MetaABM", but as this name is similar to the proposing organization's, "Acore" is proposed) is defined in Ecore but provides a more direct and high-level ABM representation of agents, including spatial, behavioral and functional features sufficient to generate complete executable models for the target platforms.
AMF's generative capability is designed to be pluggable and modular. While included targets provide self-documentation, interfaces and so on, they do not target any specific ABM or host system platform. In keeping with the desire to provide a common ABM infrastructure that facilitates rather than constrains tools, most ABM execution targets are provided separately. Targets need have no inherent dependencies on Eclipse or even on a traditional platform. A hierarchical editor is part of the core offering, but the universe of potential providers is also open; including graphical and textual editors, as well as automated sources, external model transformations, and guided tools.
Agent Execution Framework (AXF)The execution framework provides core interfaces, services and UI for model life-cycle execution, agent aggregation, view and control management, and workbench interaction. In keeping with the overall implementation neutral approach, AXF is not itself intended to provide extensive support for runtime execution, but instead acts as an abstraction layer between the Eclipse environment and arbitrary model execution toolkits. For example, implementations would provide model internal scheduling engines and data collection facilities which are wired up at runtime through adapters. While there are no dependencies between AMF and AXF, AXF does provide corresponding features where appropriate. As with AMF, AXF is not limited to Agent-Based Modelers. Anyone who has a need for executing, managing and visualizing Workbench hosted processes containing collections of interacting objects should be able to make use of AXF services.
Agent Graphics and Visualization Framework (AGF)The graphics framework extends GEF, Draw2D, Zest and other technologies to support real-time visualization of and interaction with agent models. Currently, AGF provides support for agents within 2D space and graph structures. Like the other AMP components, AGF design focus is to provide an extensible infrastructure, allowing platform adopters to easily create their own view and editor parts.
AGF will include two sub-components:
- AGF-Chart: A dynamic charting facility with end-user oriented interactive tools. An envisioned extension would connect to a new AXF Data (ADF) component, which would provide a dynamic data service based around DTP.
- AGF-Viz: Support for graph and -- eventually -- other dense information dynamic visualization such as nD.
EscapeEscape is an Open Source ABM environment based on Ascape, a toolkit that has existed for over ten years. It is offered as an optional implementation for the AXF and AGF frameworks, to provide a relatively simple non-privileged exemplar for the AMP ecosystem. (Alternatively we can offer this tool outside of the Eclipse project, but as it does provide a complete set of model execution and exploration services, as well as a number of important example models, we're proposing its inclusion here.) One compelling aspect of the AMP Escape implementation -- facilitated by the Eclipse class loading mechanisms -- is that it allows modelers to code in Java and/or generate models with AMF and then execute those models within the Agent development environment without needing to spawn a new environment. This level of interactivity is missing from current Java based ABM tools and was an important reason for adopting Eclipse.
CollaborationWhile AMP benefits from a cohesive vision, Eclipse community members are encouraged to review sub-projects to determine areas for potential collaboration or even combination with other Eclipse projects within a wider coordinated effort. As many aspects of the project are quite mature, we would like to offer the existing platform converted to Eclipse foundation specifications prior to making significant architectural changes.
In addition to the dependencies pictured above, a review of existing or proposed Eclipse projects reveals a number of complimentary offerings, in one or two cases with minor overlap. Some of these are quite speculative!
- AMF has strong interactions with current and proposed Modeling Project offerings. As a single example, AMF may cross-pollinate with MXF. Both approaches aim at the next challenge in meta-modeling; providing a high-level representation of executable behavior that can be directly instantiated.
- AGF-Chart and the envisioned ADF component could offer BIRT / Chart Engine users tools for easily working with dynamic and real-time data sources, as well as advanced tools -- perhaps in conjunction with AMF -- for working with arbitrary data-collections.
- BPMN could be used as a provider for AMF, allowing for the automated creation of executable business model simulations.
- AGF and eventually ADF services could be used as front-ends for PTP processes. There may also be potential for shared features with AXF, such as UI and parameterization / configuration tools.
- AMP contributors and supporters have a strong interest in integration with ontological systems such OWL/RDF. Unfortunately EODM no longer appears to be an active Eclipse project, but some similar service might be contemplated within the Modeling Project.
- Gary An, President, Swarm Development Group; Assistant Professor of Surgery, Division of Trauma/Critical Care, Northwestern University Feinberg School of Medicine (Ontologies)
- Lyle Wallis, Partner, Decisio Consulting (Dynamic Systems)
Code ContributionsMetascape, LLC is offering its commitment and the initial codebase to the larger Eclipse community. The codebase was authored by Miles Parker, influenced by discussions with many other members of the ABM community, and supported by a number of organizations over a ten year span.
- AXF and AGF (unreleased) -- ©Metascape, LLC.
- AMF -- MetaABM (http://metascapeabm.org) ©Metascape, LLC based on Repast Simphony "score" component supported by Argonne National Labs, ©ROAD.
- Escape (unreleased) -- ©Metascape, LLC, includes Ascape (http://ascape.sourceforge.net) © Metascape, LLC, NuTech Solutions, Inc. (formerly Bios, inc.), and The Brookings Institution.
- All Metascape contributions will be released under the EPL.
- All other contributions have been released under BSD licenses. The proposers will work with other copyright holders to release under EPL wherever possible.