#265 Rule for referencing reaction too restrictive in table 1

closed
nobody
5
2014-07-07
2014-05-27
Lucian Smith
No

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"

Discussion

  • Lucian Smith
    Lucian Smith
    2014-05-27

    • labels: --> Level 3 Version 1 Core
     
  • I agree with this solution and that it should be
    done

     
  • 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
    Attachments
  • 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.