Annotation In Other Packages
To what extent and in what way should we accommodate the use of this annotation package in other SBML level 3 packages?
- There is no way to (and indeed no reason to) legislate how other packages make use of the Annotation structures coming from this package. It is important that in the proposal we make this statement, so that it is clear individual packages determine how best to make use of Annotation structures.
- There are other packages that will have other requirements, such as the ability to add annotation that can go across models or across elements, or even that link annotation to specific attributes. These specific methods are covered in other discussion topics at this workshop, though. While we will cover these types of annotations, they will not be relating to specific other packages, but generic ways of doing things.
Checking the correspondence between model elements and their annotations
Tool A (</controlledAnnotation>-aware) writes an SBML document:
<species name="glucose"> <controlledAnnotation> ... [miriam urn pointing to "glucose"] ... </controlledAnnotation> </species X
Tool N (not </controlledAnnotation>-aware) takes the document as a template. The species element is copied and the copy is used for another purpose, but the <controlledAnnotation> element is not touched. (The user does not even know about the existing annotation). This yields
<species name="pyruvate"> <controlledAnnotation> ... [miriam urn still pointing to "glucose"] ... </controlledAnnotation> </species X
When this document is later read by tool A, tool A should AT LEAST be able to see that the document has recently been modified by a tool that does not support <controlledAnnotation> and that therefore, there may be a discrepancy between elements and their annotations.
1. Core SBML requires that the last modification date and time are specified in the model.
2. In addition, the controlledAnnotation package requires that the last modification date and time are specified a second time within a <controlledAnnotation> block (possibly via a dc annotation).
3. A (<controlledAnnotation>-supporting) tool can compare the two modification dates in a model and thereby know if the model was created by a <controlledAnnotation>-supporting tool or not. In the latter case, it can issue a warning.
SARAH: We cannot control what other people do. Even if we 'require' modification dates to be included there is no guarantee that the are correct. I think this is a problem we cannot solve except by emphasising GOOD PRACTICE.