What are SBML annotations?
Last updated: 24 January 2005
"Annotations" are a mechanism in SBML for adding information to defined locations in an SBML model using a defined approach. Each object in SBML can have an
annotation element whose contents can be essentially anything written in proper XML.
XML afficionados will rightly point out that with XML, you can add attributes and elements from one namespace into another and thereby achieve a similar effect as SBML's annotations. So what's the point of SBML's separate treatment of annotations? SBML's
annotation element is simply an attempt to control where additional information appears in a model, in an effort to make it easier for software tools (and humans) to read and write models in SBML form.
The main use of annotations in SBML is to add metadata (which is to say, additional descriptive data about parts of a model). The SBML Level 2 Version 1 specification recommends the use of the CellML metadata specification. In January 2005, Andrew Finney proposed an alternative designed to allow easier use of controlled vocabulary annotations in SBML. We are currently recommend the use of this approach, and are working further to help groups define the controlled vocabularies they need and to extend libSBML to provide an API for reading and writing these annotations.