> Thanks for the responses.
> In my previous life writing code for microprocessors my customers
> would have been extremely unhappy if the code did not exactly reflect
> the specification - it seems libSBML customers are a different
> breed :-)
> Lucian's idea of including a check on whether values have been set as
> part of validation is good - and we shall certainly implement that.
> We just have to hope people validate SBML they have created before
> they output it.
> Clearly no defaults in libSBML is not particularly popular. I
> acknowledge that in many cases libSBML using the default value from
> L2 would not cause any real issues. The biggest exception is
> spatialDimensions !
I completely understand that the programmers coding towards L3 want to
have as little differences as possible between the code towards L2 and
L3. However the decision to remove defaults in L3 is based on the
problems people have with not knowing what values are optional and
which of the optional values have defaults and if so which.
This problem will be reintroduced with the ability in libsbml to have
default values for some values in L3. This makes absolutely no sense
to me whether it is convenient or not.
Just some problems I see:
1) Who defines what the defaults are?
2) What values have defaults?
3) Where is this documented?
I know that this is a decision of the libsbml development team however
I strongly encourage not to introduce defaults.
If a developer wants as minimal impact on his code as possible they are
free to keep coding towards L2 for which libsml provides well defined
default values. For L3 support one can use the excellent libsbml
conversion facilities to read and write.
Stefan Hoops, Ph.D.
Senior Project Associate
Virginia Bioinformatics Institute - 0477
Bioinformatics Facility II
Blacksburg, Va 24061, USA