— the global portal for all things SBML

Modifications to unit system


Several changes are planned in Level 3 Core with respect to units. The changes are designed with two goals in mind: fixing certain conceptual deficiencies in the unit system in Level 2, and adjusting the system to fit with the principle of no default values.

Changes compared to Level 2

There are several separate changes involved. We describe them each below.

New global unit for reaction extent

In order to support the generalization of reactions described elsewhere, Level 3 introduces a new global unit for extent. This global unit joins the global units for time, substance, volume, area, and length, all of which are handled in a different way in Level 3. The definitions of these global units is now handled by new attributes on the Model component.

New base unit for Avogadro's number

The SI unit "mole" is technically a unit of measure for amount of substance. The Bureau International des Poids et Mesures, which defines the SI system of units, specifically states: "The mole is the amount of substance of a system which contains as many elementary entities as there are atoms in 0.012 kilogram of carbon 12". Although people sometimes use "mole" loosely to refer to other things (e.g., "a mole of X" to mean a number of X equal to Avogadro's number, 6.022 × 1023), such usage is not strictly correct. We believe it becomes even less correct in the context of reactions: although in SBML they are called "reactions", there is nothing preventing the SBML reaction construct from being used to represent other kinds of processes not involving substances. Indeed, the growth of SBML into a true systems biology markup language depends fundamentally on allowing the reaction construct to represent different kinds of processes—processes that may not involve chemical substances, but other entities, including abstract or logical entities. Consequently, in Level 3, we make an effort to avoid using "mole" loosely in contexts where substances are not involved (e.g., we avoid "mole of reactions", a terminology used by some authors [1]), and instead use "Avogadro's number of X".

In order to make it easier to define units in these terms using SBML's unit definition system, Level 3 will include an addition to the set of base units, a new unit called avogadro. This will be added to the symbols in Table 1 of the SBML specification, where other units such as gram and item are listed. The unit avogadro will be formally defined as

6.02214179 × 1023dimensionless

where dimensionless is the existing SBML base unit for a dimensionless quantity. The particular numerical value is the one given in the CODATA 2006, 2008 book and the IUPAC Gold Book.

Technically, this unit can be defined using existing units and SBML's UnitDefinition constructs: it can be done by defining an SBML unit for mole/item and using the multiplier attribute on a Unit object. The reason for introducing avogadro as a predefined base unit is threefold. First, it avoids models having to define a unit based on mole/item, something unintuitive (and some would say, a hack). Second, a predefined unit carries semantic information that software tools can use to advantage. Third, it avoids small differences that different modelers might introduce if they supplied their own values of Avogadro's number.

Because Avogadro's number is a measured physical quantity, the precision with which it is known slowly improves over time as a result of experimental work by researchers worldwide. The value given above may some day need to be updated in future Versions of Level 3. The SBML specifications will always make clear which numerical value is assumed for a given Level/Version combination. Software tools will always know which value an SBML model assumes based on the model's Level and Version combination.

New <csymbol> for Avogadro's number

MathML 2.0 defines several constants such as π and e, but none for Avogadro's number. Without this, every mathematical expression involving Avogadro's number needs to include the number literally:

<cn type="e-notation"> 6.02 <sep/> 23 </cn>

Doing so loses the semantic meaning of the number: it is no longer unambiguous to an interpreter that what is meant is Avogadro's number—the expression appears to be simply a floating point number. (Humans could deduce that what's meant is Avogadro's number, but it would not be so obvious to software.) With the other changes, described above, to increase the correctness of units of reactions, it is likely that models will need to refer to Avogadro's number in mathematical expressions. The addition of a constant to represent it therefore seems appropriate.

The new <csymbol> will have a definitionURL value of "". The following fragment of MathML illustrates the use:

<math xmlns=""> 
    <csymbol encoding="text" definitionURL=""> 
       Avogadro's number
    <cn type="integer"> 1000 </cn>

The specific value of Avogadro's number used for this definition is the same as that described for the new built-in unit avogadro described above.

Removal of "predefined" default unit symbols

The five reserved UnitSId identifiers substance, time, volume, area, and length will be removed. Instead, a new approach involving simple attributes on Model (and explained in more detail on that page) will replace the previous approach of defining substance, etc.


  1. Garst, J. F. "The extent of reaction as a unifying basis for stoichiometry in elementary chemistry", J. Chemical Education 51(3):193--195.

Retrieved from ""

This page was last modified 15:53, 22 July 2009.

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 15:53, 22 July 2009.