Known issues in the specification of SBML Level 3 Version 1 Release 1

The SBML Level 3 Version 1 Release 1 specification was made available on 6 October 2010. 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
147 Rewrite section 3.4.8 to be clearer about simulation before t0. Section 3.4.8 27 May ‘14
150 In RDF blocks, only the used namespaces need be declared. Section 6.3 27 May ‘14
190 The recommended practices section should provide some guidance about how to structure KineticLaw in the presence of using SpeciesReference identifiers for stoichiometries. Section 8 16 Sep.‘13
191 The explanation of what constitutes unique top-level elements in an annotation is insufficiently clear about whether it is the namespace or the namespace prefixes that matter. It is the namespaces that matter, not the prefixes. p. 15–16 19 Jun.‘12
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
193 The use of the word ‘symbol’ in different parts of the specification is not always consistent. (many) 19 Jun.‘12
194 The sentence begins “The Event attribute variable …” but the attribute is actually on EventAssignment, not Event. p. 76 line 16 30 Apr.‘11
195 The text refers to MathML ci attributes, but ci is an element, not an attribute, so the text should really read “MathML ci elements”. p. 77 lines 8, 11 30 Apr.‘11
198 The UML box for Model misspells the data type UnitSIdRef as UnitsSIdRef. The former is the correct spelling. p. 30 Fig. 10 1 Dec.‘11
199 The precise extent of identifier shadowing by local parameters is unclear. The specification should give a complete list about what is shadowed. p. 17 lines 12–16 19 Jun.‘12
201 The UML box for EventAssignment declares the data type of attribute variable to be SId, but in fact the correct data type is SIdRef. p. 71 Fig. 20 1 Dec.‘11
202 The specification should be updated to use identifiers.org wherever it is appropriate. (many pages) 16 Sep.‘13
203 The UML diagram does not show that Trigger is derived from SBase. A line is missing to show the derivation. p. 71 Fig. 20 1 Dec.‘11
206 Figure 10 has a misspelled attribute name. The attribute listOfContraints on Model should be named listOfConstraints. p. 30 Figure 10 19 Jun.‘12
207 The specification lacks a validation rule stating that the value of the attribute substanceUnits on a Model object should be either "mole", "item", "gram", "kilogram", "dimensionless", "avogadro", or the identifier of a UnitDefinition object based on these units. The rule should be number 20233. p. 150 line 13 19 Jun.‘12
208 Validation rule #10311 should include the units attribute on LocalParameter along with the other SBML components listed. p. 144 line 10–14 19 Jun.‘12
210 The XML fragment defines a namespace prefix size but this is incorrect; the namespace prefix should be named struct. p. 16 line 13 19 Jun.‘12
211 Section 4.6.6 is insufficiently clear about when species amounts may or may not change. Table 4 states that a species quantity never changes under some circumstances, but it is specifically the species amount that does not change; if the compartment size changes, species concentrations may change even for the conditions where the table indicates “never changes”. The section would benefit from a rewrite. p. 45 Section 4.6.6 3 Jul.‘12
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. 92 lines 9–40 19 Jun.‘12
215 The role of the ‘constant’ flag on a Species needs to be clarified to emphasize that it only refers to the Species amount, not the species concentration: changes to the Species’ compartment are irrelevant to the ‘constant’ flag (this elaborates on issue 211). p. 45 Section 4.6.6 3 Jul.‘12
218 Validation rule #20608 mentions the availability of a unit named substance, but this does not exist in Level 3 Version 1 Core. It should be removed from the list of valid unit names. p. 152 lines 28 20 Jun.‘12
220 Validation rules #10311 and #20401 have overlap: both of them state that the value of the attribute id in a UnitDefinition object must conform to the syntax of the SBML type UnitSId. Rule #20401 also adds the condition that the identifier must be unique and not be identical to certain other identifiers. The overlapping condition should be removed from rule #20401; the rule should only be concerned with the topic of uniqueness of identifiers. p. 144 lines 10–14,
p. 150 lines 35–41
25 Jun.‘12
221 The text states that the type of attribute ‘id’ is UnitSIdRef, but in fact it is UnitSId. This is clear from the UML diagram. p. 36 lines 2 25 Jun.‘12
222 The text misleadingly implies there is something special about the designated examples that use attributes boundaryCondition and constant, when in fact, all models must provide values for these attributes because the attributes are not optional. p. 45 lines 34–35 28 Jun.‘12
223 Because of changes to the licensing of KEGG, we should remove the use of KEGG as examples in the specification. The sample on p. 94 should be updated to use ChEBI URI references instead of KEGG URI references. On p. 93, instead of referencing KEGG, we should reference the entry in Wikipathways. p. 93 line 46;
p. 94 line 29
16 Sep.‘13
224 The Dublin Core Metadata Initiative has updated the namespace http://purl.org/dc/terms/ to include the terms in http://purl.org/dc/elements/1.1/. 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 3 Version 2. Section 6 9 Dec.‘13
225 Support for vCard version 4 will be added. The text for SBML Level 3 Version 2 will indicate that the use of vCard version 3 is deprecated. Section 6 9 Dec.‘13
226 Update specification to most recent version of SBO. Section 5.2 07 Sept. ‘16
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
236 The statement about using SBML Constraints for flux balance analysis should be removed. The Level 3 FBA package is now the preferred means of supporting flux balance analysis. p. 58 lines 2–3 9 Dec.‘13
250 Clarify the meaning of the ‘required’ flag: it should apply to the presence of the package in relation to the Core model and should be applied on a per package basis; it is not intended to be reflective of the actual model and constructs used in a particular instance. p. 29 Section 4.1.2 16 Sep.‘13
251 The ‘id’ of UnitDefinition is of type UnitSId, not UnitSIdRef. 15 Aug.‘13
257 Add ‘hasTaxon’ to the list of Biological Qualifiers. p. 64 line 45,53 11 June ‘14
258 ‘Vn’ (a volume) is encased in square brackets, which is supposed to indicate a concentration. The brackets should be removed. p. 118 line 39 04 May ‘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. 69 line 53,61 14 May ‘14
265 Remove statement that referencing Reaction IDs that don’t have kinetic laws is an error. p. 21 line 16 7 July ‘14
268 Modify validation rule 20303 to forbid 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
271 Add a validation warning about what SBO branch a LocalParameter should inherit from. Page 147 25 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
284 Link to MIRIAM URIs instead linked to MIRIAM qualifiers. Page 90 15 May ‘15
288 Add clarification that even when species levels drop to zero, reactions are still to fire. Page 77 22 Jan. ‘16
292 Clarify that the variable attribute of Rules must point to a valid SId, not just ‘can’ point to a valid SId. Pages 60, 61 23 Nov. ‘15
293 Correct namespace for protein modification ontology to psimod. Page 105 01 Jan. ‘16
295 Boolean should be capitalized when not talking about the attribute type, and in typewriter font otherwise. (many) 23 Nov. ‘15
298 Move general XML information to beginning of chapter. Page 30 4 Feb. ‘16
304 Allow SBO terms from the ‘modeling framework’ branch for Model objects. Table 6 31 Mar. ‘16
312 Add statement that identifiers.org is not required, but best practice. Section 6.8 15 Mar. ‘16
325 Add sentence about variable-stoichiometry models. Page 67 15 June ‘16
326 Relax validation warnings about substance, volume, etc. by allowing combinations of units of the appropriate types. Appendix A 07 Sept ‘16
328 Better explain that the constant flag can be used to determine what variable AlgebraicRules pertain to. (several) 17 May ‘16
336 Relax SBO terms for Parameter, LocalParameter, Species, and Compartment. Table 6 1 Nov. ‘16
337 Fix MathML in avogadro example, and describe said formula. Page 24 18 Aug. ‘16
338 Change ‘an event assignment’ to ‘the assignments from a given event’ since assignments are executed as a block. Page 80 14 Sept. ‘16
339 Clarify that XML namespaces may be declared on containing elements. Page 15 1 Nov. ‘16
SBML Level 3 Version 1 Release 1