Changes to reaction local parameters
Local parameters in reactions in SBML Level 2 can only be constants. In Level 2, the Parameter object has a default value of "
true" for the
constant attribute, so that models do not actually need to include an explicit
constant="true" on every local parameter in a kinetic law. However, with the change in SBML Level 3 of removing default values on optional attributes, it implies that every local parameter would now need
constant="true", even though there is no other allowable value for the attribute. This is a recipe for errors. To avoid this, in SBML Level 3, the object type for local parameters in kinetic laws will be redefined as described below.
Changes relative to Level 2
The new UML diagram for reactions is shown here:
The change to local parameters consists of replacing the previous use of Parameter (the same object as used for global parameters in SBML models) and introducing an almost-identical object type called LocalParameter. This new object only differs in that it has no
constant attribute; all LocalParameter objects are always constant.
Along with this change, for consistency with other components in SBML, the previous ListOfParameters used in KineticLaw will be changed to ListOfLocalParameters, and the element names
parameter will be correspondingly changed to
Apart from the element name changes in an XML file, there is no practical difference between local parameters in kinetic laws in Level 2 and local parameters under this scheme in Level 3. Most existing Level 2 models did not explicitly include the attribute
One useful change under this scheme is that the semantic difference of a local versus a global parameter is made more explicit, potentially aiding software systems designed to reason about models or attach ontological terms to different parameters in a model.