Stuart Moodie sent me very useful comments on the specifications. I would like to open discussions on some of his suggestions. The first one deals with the way we declare the OMEX manifest.
Currently, we use:
<?xml version="1.0" encoding="utf-8"?>
<omexManifest xmlns="
http://identifiers.org/combine.specifications/omex-manifest">
<content location="./manifest.xml"
format="
http://identifiers.org/combine.specifications/omex-manifest"/>
<content location="./models/model.xml"
format="
http://identifiers.org/combine.specifications/sbml"/>
<content location="./simulation.xml" master="true"
format="
http://identifiers.org/combine.specifications/sedml"/>
<content location="./article.pdf"
format="application/pdf"/>
<content location="./metadata.rdf"
format="
http://identifiers.org/combine.specifications/omex-metadata"/>
</omexManifest>
Problems:
1) There are no declaration of OMEX itself, that is the format of the archive, e.g with:
http://identifiers.org/combine.specifications/omex.version-X
2) There are somehow two declarations of the OMEX manifest format, one within the namespace declaration (xmlns) and one in the format attribute of the corresponding content element.
3) The file manifest.xml is declared as a content in itself. What is the use of that? We already opened the file, so we do not need to know where it is or what is its format. Plus, the file manifest.xml at the root of the archive is the only mandatory content of a COMBINE archive. If there is not such a file, the archive is invalid, one should not read it.
I propose to kill all birds in one shot by replacing the declaration of the manifest file, by a content element pointing to the archive itself:
<?xml version="1.0" encoding="utf-8"?>
<omexManifest xmlns="
http://identifiers.org/combine.specifications/omex-manifest">
<content location="."
format="
http://identifiers.org/combine.specifications/omex"/>
<content location="./models/model.xml"
format="
http://identifiers.org/combine.specifications/sbml"/>
<content location="./simulation.xml" master="true"
format="
http://identifiers.org/combine.specifications/sedml"/>
<content location="./article.pdf"
format="application/pdf"/>
<content location="./metadata.rdf"
format="
http://identifiers.org/combine.specifications/omex-metadata"/>
</omexManifest>
We could keep the manifest declaration optional for backward compatibility, although it serves no purpose. Up to the developers to decide.
<?xml version="1.0" encoding="utf-8"?>
<omexManifest xmlns="
http://identifiers.org/combine.specifications/omex-manifest">
<content location="."
format="
http://identifiers.org/combine.specifications/omex"/>
<content location="./manifest.xml"
format="
http://identifiers.org/combine.specifications/omex-manifest"/>
<content location="./models/model.xml"
format="
http://identifiers.org/combine.specifications/sbml"/>
<content location="./simulation.xml" master="true"
format="
http://identifiers.org/combine.specifications/sedml"/>
<content location="./article.pdf"
format="application/pdf"/>
<content location="./metadata.rdf"
format="
http://identifiers.org/combine.specifications/omex-metadata"/>
</omexManifest>
Above, I did not use a versioned URI for the OMEX declaration since we do not have one yet. Stuart proposed that we add an explicit version in the declaration. For instance, the Open Document Format uses a URI to identify the manifest version and then an explicit version attribute to identify the archive version. This is necessary for ODF since the contents are identified with mime types, hence not versioned. Since our OMEX specification will be versioned, this would be somehow redundant.
<?xml version="1.0" encoding="utf-8"?>
<omexManifest xmlns="
http://identifiers.org/combine.specifications/omex-manifest" version="1">
<content location="."
format="
http://identifiers.org/combine.specifications/omex"/>
<content location="./manifest.xml"
format="
http://identifiers.org/combine.specifications/omex-manifest"/>
<content location="./models/model.xml"
format="
http://identifiers.org/combine.specifications/sbml"/>
<content location="./simulation.xml" master="true"
format="
http://identifiers.org/combine.specifications/sedml"/>
<content location="./article.pdf"
format="application/pdf"/>
<content location="./metadata.rdf"
format="
http://identifiers.org/combine.specifications/omex-metadata"/>
</omexManifest>
Note that in the example above, the "version" attribute refers to the OMEX version, not the OMEX manifest version. At the moment, they are linked. However, one can easily imagine that they are split in the future, the OMEX manifest format becoming independent, on part with the other content specifications.
What do-you guys think?
--
Nicolas LE NOVERE, Babraham Institute, Babraham Campus Cambridge, CB22 3AT
Tel:
+441223496433 Mob:
+447833147074 n.len...@gmail.com
orcid.org//0000-0002-6309-7327 http://lenoverelab.org/perso/lenov/
Skype:n.lenovere twitter:@lenovere
http://nlenov.wordpress.com/