- From: Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk>
- Date: Mon, 23 Jan 2017 14:25:32 +0000
- 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