What is the goal of SBML composition?
Model composition refers to the ability to include models as submodels inside other models. This requires defining the interfaces between the models and rules for connecting parts of models together. The motivation is to enable the creation of standard, vetted models and use them as library components when creating larger models, much as is done in software development, electronics design, and other engineering fields.
What are the issues?
Ranjit Randhawa has a presentation summarizing his work on model fusion, aggregation and composition for his Ph.D. at Virginia Tech using models from the Tyson lab. Among other interesting features of this work, it helps frame the overall problem and distinguishes different ways in which we can think about "composing" models in SBML.
For the present meeting about composition in SBML, Martin Ginkel put together a proposed list of goals and issues.
After the 2007 SBML Hackathon in Newcastle, Andrew Finney sent email around summarizing some of the technical issues discussed in Newcastle: Andrew 2007 Comments about Model Composition.
Nicolas Le Novère posted a message on sbml-discuss in July 2007 calling for the inclusion of modules in SBML Level 3 core, similar to CellML components. These modules, that could contain any number of any other SBML construct, would have their own namespaces, and would use consistent units. A variable in a component (compartment, species, parameter etc.) could be private or public. The use of modules would greatly facilitate the building and curation of models, would improve interoperability with CellML and would provide the ground for model composition. Andrew's 2003 proposal on model composition would only require a minor change: The pointers would identify either the main SBML model or a module.
- Andrew Finney's proposal of Oct. 2003. There is also a poster from ISMB 2004 that summarizes Andrew's composition proposal.
- Martin Ginkel's proposal of June 2002. Martin also gave a summary in a presentation at the 5th SBML Forum in 2002. Martin also has a web page for SBML composition containing this and an earlier presentation.
- CellML 1.1 includes a mechanism for composing models out of components. While not a proposal for SBML, there ares ideas there to keep in mind. At one point, we did state that a goal of SBML's composition facility was to allow interoperability with CellML via some sort of defined interfaces, though it is far from clear that the current proposals for SBML composition would make this possible.
Additional reference materials
- semanticSBML is a system for merging multiple SBML models into one (also see this poster). Any proposal for submodel composition will certainly affect semanticSBML, and likewise, its needs and capabilities may influence the SBML composition extension effort.
- Andrew Finney previously suggested that a proposal for sets could be another way to achieve model composition. Indeed, it remains an open question whether perhaps the model composition, sets and arrays could not somehow be combined into one overall framework using a single set of mechanisms.
- The Modelica 2.2 language provides for hierarchical object-oriented composition of components.
- JSim is a Java-based modeling framework that provides a way to do object-oriented composition.