— the global portal for all things SBML

Collected Errata to the SBML Level 2 Version 1 Specification

  1. p. 7 Sec. 3.3: The second bullet definition should read (double quote was added and the order of " and ' were switched): The double quote (") and single-quote character (’) must be escaped using the entities " and ', respectively, when those characters are used to delimit a string attribute value.
  2. p. 9 section 3.6.1: the encoding attribute is permitted on mathml annotation and annotation-xml elements, not only on csymbol as stated on that page.
  3. p. 9 Section 3.6.1: The MathML standard doesn't specify the result of n-ary operators when the number of operands is critically small, for example for times and add elements, when the number of operands are zero or one. The specification should clarify the correct behavior. The detailed semantics are described in
  4. p. 10, Sec. 3.6.4: the delay csymbol function is not clearly defined. There is no explanation of what range of values is valid for the time. For example, can times be less than zero? Also, are there restrictions on the acceptable values of the argument 'x'?
  5. p. 13, sec 4.3.1: the can in the 2nd sentance should be replaced by should. Thanks to Sarah Keating for catching this.
  6. p. 14, sec. 4.4.2: the id field of a unitDefinition element must not contain a value from Table 2, the table of UnitKind values. This restriction is necessary because otherwise, a unit definition could redefine one of the base unit kinds, and thereby create a cyclic dependency between unit definitions.
  7. p. 14, sec. 4.4.2: (Thanks to Maria Schilstra for catching this.) The first formula should be the following:
  8. p. 16, sec 4.4.3: (Thanks to Sven Sahle for catching this.) The example code redefining the built-in unit volume should replace "liters" with "litre". "liters" is not a valid value for the kind attribute because the spelling is not the official SI spelling.
  9. p. 17 section 4.5.5 and p19 section 4.6.4: the text is slightly contradictory. The text might be improved by using the language that is used to describe the validation rules for units on species and compartment elements in Semantic_Validation.
  10. p. 18 section 4.5.6: the value of outside for a given compartment must be the id (not name) of another compartment in the model
  11. p. 18 section 4.5.6: the graph formed where compartments are nodes and the arcs are implied by the values of outside attributes must be acyclic. Reasoning: otherwise a compartment can be outside itself.
  12. p. 21 section 4.7.3: or the id (not name) of a new unit defined in the list of unit definitions
  13. p. 24 section 4.8.4: this section should specify that the model should not be over determined as defined in the Semantic_Validation Algebraic Rules section.
  14. p. 27 section 4.9.5: the phrase: In speciesReference, the field species of type SId must refer to the name of an existing species should be: In speciesReference, the field species of type SId must refer to the id (not name) of an existing species, because the name is optional and SBML structures must refer to other components using their identifiers.
  15. p. 27 section 4.95: if a species identifier occurs in any MathML ci element, including inside kineticLaw and stoichiometryMath elements, then it should appear in a simpleSpeciesReference element in the containing reaction. The specification only applies this rule to the kineticLaw element. Reasoning: such a species is at a minimum a modifier of the reaction.
  16. p. 29 section 4.9.7 3rd paragraph: The text is overly restrictive and contradictory with respect of the units of species symbols. Species symbols can be either amount or concentration units depending on the species declaration.
  17. p. 31 section 4.10.5: a variable attribute on a eventAssignment element should be unique amoung the set of assignments within an event element. Reasoning: otherwise the effect of event assignment is ambigous. Which assignment has effect?
  18. p. 32 Section 4.10.7: Any transition of a trigger expression from false to true will cause an event to fire. Consider an event with delay d, where the trigger expression makes a transition from false to true at times t1 and t2. The eventAssignment structure will have effect at t1 + d and t2 + d irrespective of the relative times of t1 and t2. For example, events can overlap in time so that t1 < t2 < t1 + d still causes an event assignment to occur at t1 + d and t2 + d.
  19. p. 38 Example 5.3: The "out" reaction should have a listOfModifiers with a modifierSpeciesReference for species S2 since it is referenced in the reaction's kineticLaw. Thanks to Tatsuya Ishida for catching this.
  20. p. 40: the one rule in listOfRules should not use <apply> ... </apply>. These tags should be omitted. Thanks to Bruce Shapiro for catching this.
  21. p. 42: the MathML in the two rateRule definitions should not use <apply> ... </apply>. These tags should be omitted. Thanks to Bruce Shapiro for catching this.
  22. p. 46: The definitionURL for the csymbol delay should be "", not "" (the incorrect form has the characters "sbml" omitted). Thanks to Marc Vass for catching this.
  23. p. 55 appendix A and the SCHUCS notation document p.14 section 3.9: The SCHUCS notation document (and by default appendix A) states that UML inheritance is mapped, in XML Schema, to extension of complexType elements. This is by far the most natural interpretation and the one used in the schema available on the SBML website and used by libSBML. However, this approach introduces a restriction: an ordering of elements is imposed on all extended types because the definition of XML Schema effectively requires the use of sequence ordering in order to be able to use type inheritance in this way. (A full explanation of the details can be found in sec. 13.5 of the book Definitive XML Schema, 2002, by P. Walmsley.) The result is that the ordering of subelements in SBML XML is important: they must appear in the order shown in the UML diagrams in the specification and subelements inherited from super-classes must occur before those of derived classes. For example, notes and annotation elements must occur before listOfReactants elements within a reaction element. Appendix A should state this restriction explicitly. This is an argument for moving appendix A into the main text. The dependence on sequence is a result of using XML Schema.
  24. p. 55 appendix A and SCHUCS notation document p.5 section 3.2 onwards: The SCHUCS document doesn't state what model group element should be used in the XML schema interpretation of UML. (Examples of XML schema are that xs:element elements should be enclosed in xs:choice,xs:all or xs:sequence elements; see p.488 table A-1 of Walmsley's book Definitive XML Schema, 2002.) Perhaps to be consistent with the erratum noted above, xs:sequence elements should be used. (The SBML schemas currently use this interpretation). In some instances, xsd:all could be used, but this has repercussions for type inheritance.
  25. On any given reaction, any species occuring in the list of products or reactants can also occur in the list of modifiers.
  26. p.56, Appendix B: The last bullet, second sentence starts with the words there is no longer a type field on Rule. Technically, this should read: there is no longer a type field on AssignmentRule.
  27. p.20, table 4.6.5: The table should also include events, which can change species concentrations if the species has constant="false".

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 20:39, 5 September 2008.