#265 Rule for referencing reaction too restrictive in table 1


In Table 1 on page 21, we claim that the interpretation of a Reaction identifier is:

"the rate of the reaction, but only if the reaction contains
a KineticLaw object; otherwise, referencing the reaction
identifier is an error"

However, no such similar restriction is stated for any other identifier: we don't claim that referencing a Parameter is an error if it has no value, no initial assignment, and no Rule that sets it, for example. In addition, I do not believe there is a validation rule that checks this. In general, in fact, it is perfectly fine to have a 'valid' SBML model that is underdetermined, and this includes 'not setting the kinetic law of a reaction': in that case, you'd do the same thing you do for any other element without any math defined.

I propose we change this line to simply:

"the rate of the reaction"


  • Lucian Smith

    Lucian Smith - 2014-05-27
    • labels: --> Level 3 Version 1 Core
  • Nicolas Le Novère

    I agree with this solution and that it should be

  • Michael Hucka

    Michael Hucka - 2014-05-30

    Can you double check that there is no validation rule for this? I'm surprised there isn't.

  • Lucian Smith

    Lucian Smith - 2014-05-30

    The attached file would be an example of using a reaction identifier in MathML, but it generates no error or warning about it in libsbml (not even a warning that the reaction has no kinetic law).

    I also could find no relevant validation rule in the specification.

    (Repeated from email, to get the attachment correct.)

    Last edit: Lucian Smith 2014-05-30
  • Michael Hucka

    Michael Hucka - 2014-06-04

    I agree it's inconsistent with other constructs for which we don't make these restrictions. To be honest, I fear we keep removing things that define what is a valid SBML model, and that this makes model validation harder and harder. However, the only alternative to removing the stipulation for reaction id's is to add new rules for all the other things, and I know no one will agree to that :-).

    So, I agree that this is an issue, and that the proposed solution of removing the restriction should be done.

  • Brett Olivier

    Brett Olivier - 2014-06-07

    I agree with this solution and that it should be done.

  • Lucian Smith

    Lucian Smith - 2014-06-26

    There is a similar line in the L2v4 specification that should presumably also be changed ("If a Reaction instance has no KineticLaw, using its reaction identifier this way is an error (perhaps indicating that the model is incomplete).")

    • Michael Hucka

      Michael Hucka - 2014-06-27

      That sounds right.

  • Lucian Smith

    Lucian Smith - 2014-06-26
    • labels: Level 3 Version 1 Core --> Level 3 Version 1 Core, Level 2 Version 4
  • Lucian Smith

    Lucian Smith - 2014-06-26

    With both official votes and one influential vote in favor of this change, I took the liberty of changing this in SVN for both L3v2 and L2v5. If, after all the votes are in, this is indeed accepted, it will be incorporated into the releases of those specifications. If not, the change will be reverted, and (presumably) new validation rules added.

  • Frank Bergmann

    Frank Bergmann - 2014-06-28

    I agree with this solution and that it should be done.

  • Lucian Smith

    Lucian Smith - 2014-07-07
    • status: open --> closed
    • Group: Reported-Proposed --> Accept-conformance-implications
  • Lucian Smith

    Lucian Smith - 2014-07-07

    With three votes in favor and none against, this has been accepted (with conformance implications) as changes for both L2v5 and L3v2, and has been added to the Errata of both specifications. The changes are already in SVN, and will be incorporated into the upcoming releases of those specifications.


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks