Skip to content
ejlchappin edited this page Aug 24, 2012 · 13 revisions

If we could see into the future maybe we could understand the present.

-- Al'fredas 235 BC

AgentSpring is an Agent Based Modeling and simulation framework based on Spring and Neo4j - a powerful graph database.

There are around 60 ABM frameworks/libraries/packages available already. Why another ABM framework?

Table of Contents

See also

On the shoulders of giants

AgentSpring puts software first. It is as much about the ideology of ABM as it is about using great open-source libraries and development frameworks. Spring framework provides a consistent way to build modular, configurable and scalable enterprise applications. Neo4j provides the persistence layer needed to store the complex object graph that is the simulated world. We have found that a native graph DB is particularly well suited for ABM development, compared to any other persistence method.

AgentSpring is inspired and based on the AI classic Scripts, Plans, Goals, and Understanding: An Inquiry Into Human Knowledge Structures by Roger C. Schank and Robert P. Abelson. Models are made by combining agents and scripts that define their behavior in the context of social situations. This makes AgentSpring particularly suited to modeling social systems.

Modular and reusable

AgentSpring decouples agents, their behaviors and their environments making the pieces reusable and easy to manage. Experience has shown that modular models are the only kind of models that can accommodate changing scope and new research questions.

Patterns and architectures

Many of the popular ABM libraries and packages mold model logic and user interface together, which is a known ...sin. AgentSpring builds on well known software architecture patterns to make models more understandable and reusable.

User interface

AgentSpring provides a feature rich web-based user interface. See screenshot

Being social

AgentSpring is committed to open-source. Using open-source libraries also allows to participate in active developer communities and do more together. This has been proven by a successful collaboration with Neo4j developers.