W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > January 2017

Re: Ontologies versioning?

From: Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk>
Date: Mon, 23 Jan 2017 14:25:32 +0000
Message-ID: <20170123142532.GI10800@biggiebuntu.localdomain>
To: HCLS <public-semweb-lifesci@w3.org>
On Mon, 23 Jan 2017 10:57:25 +0100, Erick Antezana <erick.antezana@gmail.com> wrote:
> Dear all,
> 
> I am reviewing the way we version our ontologies hosted in-house (where we
> hold public ontologies as well as internal ontologies).
> 
> I am looking for pointers (e.g. guidelines, best practices) in terms of
> ontologies versioning. Could you recommend any?

I would try to do Semantic Versioning:
http://semver.org/spec/v2.0.0.html

So what does that mean for ontologies as an "API"..? 

I would say roughly something like this:

1) If you add a term, increment minor version
2) If you change the wording of a term, increment patch version
   (unless you are also changing the meaning for humans)
3) If you change the meaning of a term, in a non-breaking way,
   increment minor version. (Ex: use a more specific subclass)
4) If you change the meaning of a term, in a breaking way,
   increment major version
   (e.g. two previously friendly classes are now made disjoint)
5) If you remove a term, increment major version
   (to avoid this, keep it marked as owl:deprecated)
6) If you rename a term (URI-wise), increment minor version 
   (assuming you keep the old term with owl:deprecated and 
   equivalent class/property relation to the new term.
7) If you add an owl:import or otherwise do 
   semantic mapping to an external ontology, increment
   minor version (unless this is likely to break something)


What constitutes "breaking" would have to be seen in light of what typical use
of you ontology could be, including both RDF datasets using the terms
and other ontologies importing/specializing yours.

I think you should always use semantic versioning in your owl:version and in
the permalink of your owl:versionIRI, while your namespace should not change
unless you do a major change.



BTW, here's my blog about how you can express statements about semantic version
hierarchies using the provenance ontologies PAV and PROV-O, which touches on
how we did semantic versioning of the PAV ontology itself:

https://practicalprovenance.wordpress.com/2016/05/07/tracking-versions-with-pav/


-- 
Stian Soiland-Reyes
University of Manchester
http://www.esciencelab.org.uk/
http://orcid.org/0000-0001-9842-9718
Received on Monday, 23 January 2017 14:25:57 UTC

This archive was generated by hypermail 2.3.1 : Monday, 23 January 2017 14:25:57 UTC