Known issues in the specification of SBML Level 2 Version 4 Release 1

The SBML Level 2 Version 4 Release 1 specification was made available on 22 December 2008. The following are the errors and other issues discovered in the specification document after it was issued. In the following table, the ID # of each issue refers to the reference number automatically assigned to the issue in the online SBML issue tracking system. The gaps in this numbering are not consequential for SBML and do not necessarily signify deleted or unresolved issues.

ID# Description Page and line number(s) Date added
115 Add a section talking about underdetermined models. (none) 28 May ‘14
128 A long-standing bug that was forgotten until recently is that the RDF subset defined in the spec does not allow annotations of annotations. Fix this by allowing nested RDF content. Section 6.3 8 July ‘14
139 Reversed statements: The sentence describes the namespaces for model qualifiers and biological qualifiers, but accidentally reverses the URIs and prefixes. They should be swapped. p. 95 lines 16–17 11 May ‘09
140 Throughout the specification, sometimes SBase is spelled SBase and sometimes it is spelled Sbase. The inconsistency is simply a typographical error perpetuated via a LaTeX macro used in the document. The preferred spelling is SBase. This is also the spelling used in the XML Schema for SBML. p. 14 Fig. 8, and throughout the text (too many instances to list individually) 30 Jun. ‘09
141 The example models provided in Sections 7.4 and 7.5 involve irreversible reactions, but the SBML code lacks the attribute setting reversible="false" on the <reaction> elements. Each <reaction> should have the attribute reversible="false". p. 109 lines 46 and 67, p. 111 lines 26 and  47 30 Jun. ‘09
142 The paragraph on p. 71, lines 19–27, should not be there at all. It is a left-over from the Version 3 specification that should have been removed for Version 4. The paragraph should be ignored and deleted in future Releases of the L2V4 specification. p. 71 lines 19–27 16 May ‘09
143 The value of 0-dimensional compartments cannot be changed (because they have no size), but the specification lacks explicit statements to this effect in Section 4.11 and in the list of validation rules in Appendix C. Such statements need to be added to the specification. Section 4.11 and Appendix C 11 May ‘09
144 The end of section 4.7.4 gives an explanation of whether the identifiers of 0-dimensional compartment can appear in mathematical expressions. The statement is that it “should” not appear in expressions. The word “should” should actually be “must”: identifiers of 0-D compartments must not appear in mathematical expressions. p. 46 line 24 11 May ‘09
145 The links to the descriptions of the MIRIAM qualifiers are out of date. The obsolete links are of the form To future-proof what is printed in the SBML specifications, now maintains a perennial URL,, that will always point to the correct URL even if the future MIRIAM Resources link changes. p. 92 line 24,
p. 95 line 15
11 Jul. ‘09
146 The links to MIRIAM Resources are out of date. The obsolete links are those of the form To future-proof what is printed in the SBML specifications, now maintains a perennial URL that will always point to the correct URL even if the future MIRIAM Resources link changes. p. 94 line 39,
p. 95 line 7
11 Jul. ‘09
148 The UML box for Event in Figure 22 does not define a data type for the attribute useValuesFromTriggerTime. It should say the type is boolean. The text makes this clear, but the UML is missing information. p. 78 Fig. 22 30 Jun. ‘09
149 Section 4.9.4 says local parameters should not have constant=false. It should read must: local parameters must not set the constant attribute to false. p. 53 line 32 30 Jun. ‘09
150 In Section 6.3, the given RDF template contains a number of xmlns namespace declarations. What is not made clear is (1) a model doesn’t need to list all of them every time, only those it actually uses, and (2) the namespace declarations can appear in any order, not only the one shown in the template. p. 93 lines 3–30 9 Feb. ‘10
151 A closing parenthesis is missing for the parenthetical statement. The closing parenthesis should come after the word “resources”. p. 18 line 39 10 Feb. ‘10
152 The text states only that the attributes level and version are required, when in fact xmlns is also required. The text should be changed to mention xmlns too. p. 30 line 10-12 10 Feb. ‘10
154 The 2nd and 3rd bullets in the bulleted list state that the units must agree, but in fact the rule for units in L2v4 is that they should agree. The word must must be changed to should. p. 46 lines 13–18 9 Feb. ‘10
155 In Figure 5, the symbol NCNameChar should actually be NameChar, per the XML 1.0 third edition. There is no other change in the definition or implications; the wrong name appears here, but the correct definition for NameChar is given. p. 12 lines 30–31 9 Feb. ‘10
163 The specification fails to stipulate whether the delay csymbol can be used within a FunctionDefinition object, yet it explicitly disallows time. In the interest of consistency and simplicity, the csymbol for delay is also disallowed. p. 34 line 14 19 Apr. ‘10
166 The overconstrained model example needs to remove references to compartment C, as was done for L3v1. Appendix D, page 154 5 Apr. ‘14
168 xhtml= should be xmlns=. p. 159 lines 19,24,29 5 Apr. ‘14
187 The existing xsd does not allow a semantics element to contain a lambda element. (schema) 5 Apr. ‘14
192 The paragraph about UnitDefinition should make it explicit that new unit identifiers cannot be the same as any of the base units defined in Table 2 on p. 37. p. 17 lines 9–11 19 Jun.‘12
202 The specification should be updated to use wherever it is appropriate. This needs to be done in a new Release or new Version of Level 3. (many pages) 16 Sep.‘13
213 The XML diagram illustrating the history structure is complete and defines what is optional and what is required, but the text under the figure is not complete and does not recapitulate what is in the diagram. The text should be expanded. p. 96 19 Jun.‘12
215 Need extra explanation of how the constant attribute on a Species only affects its amount–its concentration may change due to a changing Compartment. p. 50-51 5 Apr. ‘14
224 The Dublin Core Metadata Initiative has updated the namespace to include the terms in Therefore, SBML does not need to declare the second namespace, contrary to the examples in Section 6. The use of the namespace will be deprecated in SBML Level 2 Version 5. Section 6 9 Dec.‘13
226 Need update for changes in SBO p.  line 5 Apr. ‘14
227 Simplify overdetermined algorithm to match L3v1. Appendix D 8 July ‘14
228 Equation 4 on page 38 needs to be fixed as it was for the L3v1 specification. p. 38 5 Apr. ‘14
230 The statement that stoichiometry values “should be greater than zero” should be removed. (There was never a validation warning associated with this statement.) p 62 01 Jan.‘14
257 Add hasTaxon to the list of Biological Qualifiers. p. 64 line 45,53 11 June ‘14
259 Add validation rule claiming that delay may not be used in FunctionDefinitions. Appendix A 7 July ‘14
262 Two closing tags in the XML example read </listProducts> instead of </listOfProducts>. p. 64 line 45,53 14 May ‘14
265 Remove statement that referencing Reaction IDs that don’t have kinetic laws is an error. p. 24 line 1-2 7 July ‘14
268 Add validation rule forbidding indirectly-recursive FunctionDefinitions. Appendix A 7 July ‘14
270 Remove erroneous extra line between S1 and law in figure in Appendix D. Appendix D 21 July ‘14
275 The section on SBO should mention the version of SBO described. Section 5 10 Oct. ‘14
280 Need new unit validation error for nonexistent units. Appendix A 22 Apr. ‘15
SBML Level 2 Version 4 Release 1