Open jonrkarr opened 3 years ago
Tellurium is incredibly limited as to what anything can be changed via XPath, because each element that can be changed needs a bespoke XPath regular expression (or the equivalent). This means that even for attributes we know about, it's very easy to create XPath pointers to them that don't follow the pattern we expect, and therefore are not interpretable by Tellurium.
Fundamentally, this is because Tellurium's object model is not XML. Even if we borrowed a full XPath expression parser, it still wouldn't help directly, because the object it would point to does not exist. We would need to create the XML from the object model, apply the change, then re-read the modified XML. This has not yet been deemed worth the time it would take to implement.
In the meantime, if there are particular attributes you would like to modify and you have XPath expressions you want to use for them, we can create new bespoke regular expressions for them.
No worries about making changes. I would suggest that the tellurium documentation describe the limits to its support for SED.
This comes from adding more tests to the BioSimulators test suite (most of which is a SED-ML test suite) and evaluating this on tellurium.
The most immediate purpose is to help us guarantee to users that the tools we mark as "validated" consistently implement SED. I was hoping we could require tools to support ChangeAttribute
(as described in the SED-ML specs). For now, we'll have to consider it non-essential so we can mark tellurium as validated.
Secondarily, we're also using the test suite for the following:
In addition, the definitions of the namespace prefixes used in targets should be obtained from the SED-ML document. Currently, tellurium appears to assume that the prefixes are sbml
and implicitly translate this into the URI for the version of SED-ML used with the current document.
tellurium appears to have limits on the attributes that can be changed via
sedml:changeAttribute
. I'm guessing this applies tocomputeChange.target
,setValue.target
, andvariable.target
as well. The SED-ML specifications do not appear to place any limitations on which attributes can be changed.For example, tellurium cannot parse targets with the following XPATHs
These generate this error