CellML 2.0 Specification Release Notes
Unlike the CellML 1.x specifications, the style of the CellML 2.0 specification is very formal. It follows a "normative" specification approach and consists largely of a list of rules. A less formal, more explanatory "informative" specification is available as a separate, complementary document at https://cellml.org/specifications/cellml_2.0/.
What has changed in CellML 2.0 compared with CellML 1.1?
-
General matters:
-
CellML 2.0 is based on XML 1.1 while CellML 1.x is based on XML 1.0. This has almost no effect on the model syntax or semantics, but this may make it easier for some tools to work with CellML.
-
CellML 1.1 defined a subset of MathML 2.0 that simulation tools were expected to support, but otherwise allowed all content MathML 2.0 to be used in a CellML 1.1 model. CellML 2.0 instead defines the set of allowed MathML 2.0 elements, largely based on the recommended subset from CellML 1.1 with the changes noted below.
-
CellML 2.0 does not include the
reaction
element (or any of its child elements). -
Extension elements and attributes have been removed.
-
Units:
-
CellML 2.0 allows
units
to be defined as children of the model only. -
The
base_unit
attribute on aunits
element is not present in CellML 2.0 and emptyunits
elements are by definition base units. -
The
offset
attribute has been removed from theunit
element. -
The
celsius
unit has been removed from the list of built-in units.
-
Variables:
-
The
public_interface
andprivate_interface
attributes of avariable
element have been removed. Instead, avariable
element now has aninterface
attribute that can have one of the following values:none
,public
,private
orpublic_and_private
.
-
Mathematics:
-
The
min
,max
andrem
MathML elements are allowed. -
The
factorial
,semantics
,annotation
andannotation-xml
MathML elements are no longer allowed.
-
Resets:
-
It is now possible to set rules that cause variables to take on a new value when a specified transition occurs. These are known as “resets”.
-
A typical use case is cell division where the volume of a cell is halved after it has exceeded a threshold.
-
Resets have a defined order of evaluation. This ensures that modularity is maintained and existing resets can be overridden when reusing (importing) a model with resets.
-
Groups:
-
The distinction between
encapsulation
andcontainment
groups has been removed in favour of all groups beingencapsulation
hierarchies. -
The top-level element of a hierarchy, previously named
group
, has been renamedencapsulation
. -
As such, the
relationship_ref
element is not present in CellML 2.0.
-
Connections:
-
The syntax for connections in CellML 2.0 has been simplified. The
map_components
element is not used, and instead itscomponent_1
andcomponent_2
attributes have moved to the parentconnection
element.
-
Imports:
-
The semantics for importing units and components have been clarified.
-
Metadata:
-
In CellML 1.1, metadata considerations were split between the CellML specification and the CellML metadata specifications. In CellML 2.0, there is a clear separation between a CellML model and its metadata. The CellML 2.0 specification does not allow metadata to be part of a model document.
-
The
id
attribute, previously in thecmeta
namespace, is now an unprefixed attribute (for metadata specifications, see instead the CellML Metadata Framework 2.0).