OBOFoundry / OBOFoundry.github.io

Metadata and website for the Open Bio Ontologies Foundry Ontology Registry
http://obofoundry.org
Other
166 stars 204 forks source link

Principle 4 "Versioning": clarify "version" string in version IRI #1921

Closed matentzn closed 2 years ago

matentzn commented 2 years ago

So far, the versioning principles only insists on two things:

  1. A version IRI MUST exist
  2. A version IRI MUST resolve
  3. A version IRI SHOULD use the OBO recommended format

However, this can lead to version iris like this:

versionIRI: http://obofoundry.org/

This is clear not a good version IRI despite the fact that it

I think we should require a version IRI to

  1. either contain an ISO date string (2022-03-01)
  2. or a semantic versioning string (2.0, 2.0.1, 2.0.1-alpha)

    (i.e. a version IRI string MUST contain one of the above)

I think this is in the spirit of the "versioning" principle, so I don't think this needs a new vote, but correct me if I am wrong!

@cthoyt already started implementing a check for that, should this proposal pass: https://github.com/OBOFoundry/OBO-Dashboard/pull/70

balhoff commented 2 years ago

@matentzn I think you can avoid that loophole in a better way by changing 2 to: "A version IRI MUST resolve to an ontology document declaring itself to have that version IRI".

matentzn commented 2 years ago

Not sure this is enough. You can still fake it by providing the purl as the version iri.. at least it is very hard to see computationally that a supposed version iri works still after the next version is release. I still think the iri should contain some kind of versioning information..

balhoff commented 2 years ago

I suppose you're right; but I think my condition would also be a valuable check to ensure the version IRI does what it's supposed to do.

matentzn commented 2 years ago

I am thinking of dashboard practicality - I would have to write some really smart code to do this check to avoid having to redownload chebi..

nlharris commented 2 years ago

See also: #741, #1016, #1347, #1414, #1707

nataled commented 2 years ago

So far as I can tell all of what is proposed is already there in the principle. The original statement that http://obofoundry.org/ would qualify is incorrect, because it ignores the definition of a versionIRI. The one problem I see is the use of SHOULD instead of MUST in the following:

"Version identifiers for the ontology artifacts themselves SHOULD be of the form “YYYY-MM-DD” (that is, a date conforming to ISO-8601), OR use a numbering system (such as semantic versioning, i.e, of the form “NN.n”)"

The wording was intended to indicate that the date format is the preferred one, but I can see why it appears to minimize the necessity of what form to use. I will make corrections to clarify. And you ( @matentzn ) are correct in your assertion that the changes fully conform to the intent of the principle, so no extra steps are needed.

nataled commented 2 years ago

I also think we should remove the link to the w3.org description of IRI and version IRI, as it uses 'may' when we say 'should'. I found it confusing. Let me know if there is anything in the w3.org description (https://www.w3.org/TR/owl2-syntax/#Ontology_IRI_and_Version_IRI) we don't already capture that you think is needed.

matentzn commented 2 years ago

I will look at the PR and let you know. Thanks @nataled!

nataled commented 2 years ago

Fixed by #1933