I am sorry, but I totally disagree with your point of view here. This
problem can not be shifted to the SBML file generators, but those
errors have to be caught by the SBML readers.
I know that in a perfect world, all programs would be able to write
correct SBML files, but lets face it, due to the complexity of SBML,
there is probably no program that gets it all right and there are many
incorrect SBML files around already.
I think if a program reads in an incorrect SBML file, it should report
this to the user and in order to be able to do this, it needs to be
clearified what is to be considered an error and what is correct SBML
and this has to be stated in the specs.
So in my eyes, programs that only use the sboTerm for the simulation
should issue a warning to the user that there was a forumnla as well,
but that it has been ignored and that this might lead to problems.
Howard Salis wrote:
> Hi Ralph,
> I think the main question is "What happens when an incorrect model is
> created (by a person or by a program)?" Is it the program's fault for
> simulating the wrong model or the person's/program's fault for
> creating it in the first place?
> Hopefully, programs that create models will be smartly written so that
> the sboTerm is never, ever, ever different from the corresponding
> kineticLaw. (Also the same for sboTerms of species / etc). Otherwise,
> it's an incorrectly written program and it must be fixed. ;) But these
> are systematic errors that may be identified and fixed. (Human error
> on the other hand is rather sporadic.)
> I think this problem can be effectively handled by the developers of
> SBML writing programs.
> -Howard Salis
> Gauges, Ralph wrote:
>> Hi Howard,
>> this is exactly the answer I feared was coming!
>> This means that there are going to be programs that rely on the
>> sboTerm for simulation instead of reading the formula.
>> I can understand that it is a lot less work to parse a string then it
>> is to parse a formula. So in the scenario where the sboTerm is not
>> consistent with the formula, a program that parses the formula will
>> create different simulation results than the program that only parses
>> the sboTerm and I think this is bad for the users.
>> I think we should either state that the forumla if present is to be
>> read or we should make the formula and the sboTerm mutualy exclusive
>> for the kineticLaw, which is not a nice solution.
>> I think it should only be allowed to use the sboTerm to simulate the
>> model if there is not formula present. (Can there be a kineticLaw
>> without a formula? Since the math field is not optional, can it be
>> I think that it is very important to state which is the correct
>> behavior in case of potentialy contradicting information because only
>> one behavior can be correct here. And since it is not trivial to make
>> a consistency check in this case, I think we should state that it is
>> wrong to use the sboTerm to simulate the model if there is an
>> equation present?
>> So this said, if there is no way to to have a kineticLaw elemtn
>> without a formula, the sboTerm is useless at least for deterministic
>> simulation programs?
>> OK, I guess after this sentence Nicolas is going to come up with the
>> Michaelis-Menten vs. Briggs-Haldane example where you need the
>> sboTerm to distinguish those two, but are there any other examples
>> where this would be needed?