SBML Level 3 Package Activity Status Page
SBML's structural constructs are currently fixed: it is not possible to define the creation or removal of species, compartments, reactions or other components from within a model definition. To simulate the creation or destruction of compartments, one currently has to use tricks. For example, a model could define all the compartments it could ever need and use variables to indicate which compartments are actually "active" at any given time—but this would only work if the total number needed is known at the beginning of a simulation. In defense of SBML's limitation in this area, it should be pointed out that we only know of perhaps two or three software tools that support dynamic structures today. Still, it is clear that some modeling problems would benefit from this capability. Dynamic structures would be used to encapsulate portions of a model that need to change dynamically during a simulation. Within SBML this may correspond to adding, modifying or removing some collection of compartments, species, reactions, rules, etc. Biologically, this might correspond to cell birth, differentiation, cell death, as well as exocytosis and endocytosis; experimentally this might correspond to the administration of a protocol during a simulation, such as turning a laser or the application of a hormone or toxin.
Dynamic structures are usually associated with compound structures such as lists, sets, and arrays. For example, cell division might be represented by adding a new cell to a list or set of cells, or increasing the dimension of an array of compartments. In SBML, if the compartment is of a particular compartment type structure and has associated with it a collection of basic SBML elements, such as species and reactions, these should be automatically added to the model. Similarly, cell death might be represented by the removal of a cell from a set. We have already made preliminary proposals for both arrays and (separately) sets in SBML. Arrays and sets are alternative proposals for roughly the same kind of capability, and it is likely that only one will ultimately be chosen as a supported SBML Level 3 language extension.
A separate page is dedicated to the specification development activities involving this package.
The SBML Development Process for SBML Level 3 defines two stages: a proposal stage, and a specification development stage. At this time, there are no current, concrete proposals for the dynamic structures package.
Package Working Group (PWG)
After a vote by the SBML community to accept the above proposal as something that addresses a valid need and takes a reasonable approach, we formed a working group to help complete the proposal and resolve any implementation issues that might arise. Membership of this group is open to all interested members of the SBML community; all you need to do is sign up for the sbml-dynamic mailing list.