SBML.org — the global portal for all things SBML

Hierarchical Model Composition (comp)

SBML Level 3 Package Activity Status Page

Package name: Hierarchical Model Composition
Package label: comp
Package purpose: A means for defining how a model is composed from other models.
Package Working Group mailing list: sbml-comp

Contact address (where to ask questions): sbml-comp@lists.sourceforge.net
Specification status: Final specification approved and two independent implementations are available.
Latest specification document: Version of 14 November 2013

SBML Editor acting as liason: Lucian Smith
This table is generated automatically from the data for comp in the SBML Level 3 Package Status spreadsheet.


Status of specification and/or proposal development

Current specification document: Latest document in PDF format

Ongoing activities involving the specification: Specification has been released and is in maintenance mode.
Errata for the current specification document: Errata page for current specification

All previous specification documents: Document list

Recent status and developments:

2013-11-14: The third release of version 1 of the Hierarchical Model Composition specification is now available.
2013-02-15: The second release of version 1 of the Hierarchical Model Composition specification is now available.
2012-11-30: The first release of version 1 of the Hierarchical Model Composition specification is now available.
2012-11-20: The SBML Editors have evaluated the package specification according to the criteria for approval described in the SBML Development Process for Level 3. Via email discussions on the SBML Editors' mailing list, they have concluded that the specification meets the criteria. The package specification is therefore accepted.
2012-09-27: The proposal plus a letter to the SBML editors has been sent to the SBML editors for final assessment and approval.
2012-08-08: The results of the survey are now available.
2012-07-31: We issued a survey to the comp PWG about whether the MD5 attribute is important for the first release of the comp specification. Please join the comp PWG list if you'd like to participate.
2012-07-30: Editing of the specification is underway. A new release is expected prior to COMBINE 2012.
2012-07-20: A separate page lists a number of examples, discussion points and questions about the Hierarchical Model Composition package for SBML Level 3.

Status of LibSBML support

LibSBML implementation status: A full (with respect to the specification) implementation is available.
Where can you find a distribution?: SourceForge directory

Support for an SBML Level 3 package in libSBML is realized as a compile-time, plug-in extension. This table summarizes the status of the libSBML support for comp. Source code for any given libSBML extension (if one has been developed) is available from the libsbml-packages branch of the SBML project SVN repository on SourceForge.

Recent status and developments:

2013-02-28: Release 5.8.0 of libSBML supports the stable Release 2 specification of the SBML Level 3 Hierarchical Model Composition package, along with validation of most rules in the specification.
2013-01-14: Release 5.7.0 of libSBML supports the stable Release 1 specification of the SBML Level 3 Hierarchical Model Composition package. Because comp has reached the level of a stable specification release, libSBML features comp support in the stable branch, and pre-built binaries include comp package code.
2012-07-03: In the implementation of the extension for libSBML 5.5.0, all new attributes and child objects can be read, written, created, examined, and modified. Additionally, a 'flattening' routine is available that will fully translate a hierarchical model to a non-hierarchical 'flat' model with exactly the same mathematics, including all conversion factors. Unavailable at this time is a method for validating a model according to the rules defined in the 'comp' specification, though many of these rules are implemented to prevent dynamic creation of invalid models. Additionally, no routine is available to calculate the MD5 hash of a file within libsbml. These capabilities are planned for a future release.

Status of JSBML support

JSBML implementation status: A full (with respect to the specification) implementation is available.
Where can you find a distribution?: SourceForge directory

Support for an SBML Level 3 package in JSBML is realized as a dynamically-loadable Java package. This table summarizes the status of the JSBML support for comp. Source code for any given JSBML extension (if one has been developed) is available from the extensions portion of the JSBML project SVN repository on SourceForge.
2013-01-17: Nicolas Rodriguez has begun work on an implementation.

Status of RELAX NG schemas

RELAX NG schema status: A final schema is available.
Link to schema: comp

The RELAX NG (RNG) schemas are basic schemas for validating SBML Level 3 in any RNG schema processor. More information about the use of these RNG schemas for SBML is available in a separate page.

Recent status and developments:

2012-11-21: The RNG schema available implements the accepted specification.
2012-07-03: The existing RNG schema for comp is based on the proposed schema from 2011, and has not yet been updated to include newer constructs like the 'ReplacedBy' element, nor to incorporate validation decisions that were made at the 2012 HARMONY, such as restricting replacements to only involve the same class of element. The majority of the proposed specification is implemented, however.

Status of third-party application support

3rd-party software implementation status: Two or more implementations have been released.
This table summarizes, in a general sense, the state of support for the comp package in software applications. Implementation of support for a Level 3 package in applications is an important criterion for approving a package specification according to the SBML Development Process.

Recent status and developments:

2012-09-27: Both Antimony version 2.3-beta and iBioSim version 2.2-beta have full support for importing and exporting SBML models with the comp package, with all elements and attributes supported in some way between both tools. Both have exchanged several documents as well. See the letter to the SBML editors for more detail on implementation support in these two tools.
2012-07-25: Two programs are known to be developing support for comp and serve as the current testbeds for comp package development: Antimony and iBioSim. The Antimony release version v2.1-beta has partial support for comp, and can create, read, and flatten the hierarchical models it creates using these constructs. Current development work in Antimony includes better support for rule and assignment replacement, as well as for deletions. iBioSim support for comp is in an internal as-yet unreleased version, but will, when released, include support for import and export of all (or nearly all) comp elements. iBioSim's current implementation status is the following:
  1. External model definitions (read/write)
  2. Internal model definitions (read/write)
  3. Submodels (read/write/create/modify)
  4. Ports (read/write/create/modify for each SBML core element)
  5. Submodel conversion factors (read/write/cannot yet create/modify)
  6. Deletions (read/write/create/modify for each SBML core element)
  7. ReplacedElements (read/write/create/modify but only with a strict like for like policy)
  8. ReplacedElements conversion factors (read/write/cannot yet create/modify)
  9. ReplacedBy (read/write/create/modify but only using a strict like for like policy)
  10. SBaseRef (read all types but only write port references, which means all other types of references are converted to reference through ports which are created as needed).

Package history

Proposal status: Proposal approved.
Proposal document: Proposal version of 18 May 2011

Proposal activity page: Proposal page for comp

Proposal voting results: Results page

This table is generated automatically from the data for comp in the SBML Level 3 Package Status spreadsheet.

The proposal was accepted by community vote and has now entered the specification phase. The current public specification document is indicated above. For historical reference, the proposal put to a vote is still available in the SVN repository. A full detailed history of the research and development of this specification (starting in the year 2000) is available in the 'History' section of the current proposed specification.

In addition, as the above proposal was being developed and implemented, certain topics came up for which we solicited community input. The following pages serve to archive the discussion of those topics, and as a reference for future implementers of the specification:

Combining Glycolysis: An example comp model that takes three related models and combines them.

Recipe to Cake: Because the comp package is rule-based (a 'recipe'), you must follow those rules in your own software to create an object model where each object corresponds to a single SBML element (the 'cake'). How do you do that?

Flattening and other packages: The easiest way to transfer a hierarchical model to software that doesn't know about this package is to 'flatten' it to no longer use 'comp' constructs. How can this be accomplished? What are the complications that arise when flattening a model with information from a different package?

Adding Ports: Suppose you had an existing Level 3 model, and wanted to add ports to it. How could this be done?

Proposal for 'Replaced By': If you want a submodel element to be the 'canonical' form, but you want to attach things to it in the containing model, is there a way we can allow this without literally copying and pasting the element?



Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 08:24, 10 March 2014.