A short introduction to CellML

CellMLTM is an XML–based language designed to facilitate the exchange of biological models across the World Wide Web. Processing applications are able to appropriately render models based on the definition of model structure given in a CellML document, and run simulations based on the definition of the underlying mathematics. CellML is designed to be a general framework upon which a wide variety of models may be built. The basic constituents and structure are simple, providing a common basis for describing models and facilitating the creation of complex models from simpler ones by combining models and/or adding detail to existing models. CellML models are represented as a collection of discrete components linked by connections to form a network. A component is a functional unit that may correspond to a physical compartment, a collection of entities engaged in similar tasks, or a convenient modelling abstraction. Components may contain variables, mathematical relationships that specify the interactions between those variables, and metadata. Variables may be local to a component, or made visible to other components via interface attributes. All interactions between variables within a component are described using MathML content markup. The interface attributes describe the external view of the component, specifying those variables visible to other components. A connection is a directed mapping from externally visible variables in one component to those of another. Every variable has a set of units associated with it, making it possible to connect together components with variables defined using different units. CellML offers additional facilities, such as metadata, for adding context information to a model, and component grouping. These assist in the creation and maintenance of models but do not alter the mathematics of the model. All models described using CellML can be reduced to the canonical form: a set of connected components.