Closed luciansmith closed 3 years ago
Added this sentence to the end of the 'value' paragraph:
"The string must be non-empty; to explicitly state that a value is not set, this should be encoded in the string as a value such as \null" or \unset", as makes sense for the term in question."
I created KISAO_0000629 for this.
I hope this can be addressed in a way that's clearer in L2 as part of better support for data types.
How would you recommend using KiSAO 629 as a 'value'? Do you envision:
<algorithmParameter [...] value="KISAO:0000629"/>
or
<algorithmParameter [...] value="http:://www.biomodels.net/kisao/KISAO#KISAO_0000629"/>
or some other way?
The former looks like other uses of KiSAO in SED-ML.
We're also using this scheme to indicate nested algorithm choices, such as for nested choices of CVODE supported by OpenCOR and nested choices for optimization methods from COBRApy and CBMPy.
In BioSimulators, we describe that the expected data type of these algorithm parameters for OpenCOR, etc. is a kisaoId
. BioSimulators also captures the specific KiSAO terms that each tool supports.
I would prefer the formulation of:
"The string must be non-empty; to explicitly state that a value is not set, this should be
encoded in the string as a value KISAO:0000629
(which indicates that the value is Null)".
to what we have currently in the draft spec
Argh; missed this before submission. Changed; maybe we'll get it in the final version.
cf https://github.com/fbergmann/libSEDML/issues/88: empty 'value' strings are treated by libsedml as unset, as has been the common practice in libsbml and other systems biology libraries for yonks.
However, this came as a surprise to @jonrkarr , who expected to be able to 'explicitly not set' an algorithm parameter by doing something like:
It would be technically possible to update libsedml to handle this, but then we'd have to re-train developers who expect that if 'getX' returns "", that means that X hasn't been set, too. In general, it seems easier to just say in the spec that if you want to explicitly set something to be 'unset', you have to use something other than an empty string.