At its core, STEM is a framework for composing arbitrary graphs (nodes, edges, labels) from different "parts" and then managing computations that use the graph as both a source of data and as place to record state information. One of the main innovations provided by STEM is that it allows the graph used during a simulation to be composed from different parts that represent different aspects of the eventual simulation. For instance, sets of labeled nodes that represent geographic locations can be combined with sets of labels that provide population data for those edges for a particular time period (e.g., 1918). Similarly, different sets of edges can be added to the graph to incorporate different kinds of relationships, such as transportation infrastructure or simple physical relationships such as sharing a common border. Computation is added to the mix through a similar well defined interface to the graph. These different parts can be aggregated and saved for reuse in multiple different models. They can also be exported and distributed to other users. It is this aggregation and reuse that promotes collaboration as different components can be created by different parties and easily shared.
Having such a general framework enables a variety of other kinds of applications, not all of which are simulations. It is possible, for instance, to run STEM in "real-time" where it uses "wall-clock" time when manipulating the state of the underlying graph and have it access external data sources as part of that process. Integrating real-time weather information or other real-time environmental data into a model in STEM is an example. This ability allows STEM to be applied to decision support applications that require the integration of "situational awareness" and analytics; examples would be disaster planning and response, securities trading and risk management and logistical planning. The integration of external data sources through SOA and RSS feeds is a future step being considered for the project.
The disease modeling framework, built upon the core, has well established functionality, but is deliberately designed to be extensible and has an unlimited capacity to absorb new mathematics and other aspects of disease models. For the project, however, it aims to provide a refined, but limited, set of built-in "text book" disease model mathematics as well as another set of advanced experimental models that result from project member's own research.
The incorporation of real-time data sources into STEM is an area for future development. The scope and breadth of which is uncertain and likely dependent on the particular application domains used as examples.
There are two aspects to STEM, the core for developing simulation frameworks, and actual simulation frameworks. The mandates for developing both of these aspects tend to define and govern their growth. The core for simulation frameworks is somewhat organically constrained as features are only added to it to support the needs of actual simulation frameworks such as disease modeling. The base comprises some nine EMF Ecore models that are used to generate a significant portion of the core code; no new models are anticipated at this time. The remainder of the work on the core is to polish and refine aspects of the core exposed to users such as model editors, wizards and other parts of the GUI.
STEM is more than a disease modeling system, however, the same attributes that make a good collaborative system for disease modeling are the same ones that facilitate other kinds of model development. To this end, STEM was designed and implemented from its very inception to be a more versatile platform and framework, with disease modeling being a very complete example "application."