--- $Id: part1.html,v 1.2 2005/11/28 16:50:34 ajm65 Exp $ ---
This document is a guide to good practice use of URIs for RDFS/OWL ontologies that change.
@@TODO
Assign a URI to the ontology, and also to each 'snapshot' or 'version' of the ontology.
Use a convention when constructing URIs for ontology versions, and apply it consistently.
In this example the date on which the ontology was frozen is used to construct the URIs for the ontology versions.
Ontology URI ...
http://www.example.com/wine-ontology
... and ontology version URIs ...
http://www.example.com/wine-ontology-2005-10-04 http://www.example.com/wine-ontology-2005-11-26
In this example a version number is used to construct the URIs for the ontology versions.
Ontology URI`...
http://www.example.com/food-ontology
... and ontology version URIs ...
http://www.example.com/food-ontology-0.1 http://www.example.com/food-ontology-0.2
Do not use ontology version URIs to construct URIs for classes and properties.
For example, the following URI identifies an ontology ...
http://www.example.com/zoo-ontology
... and the following URIs identify classes and properties defined by this ontology ...
http://www.example.com/zoo-ontology#Elephant http://www.example.com/zoo-ontology#Penguin http://www.example.com/zoo-ontology#mate http://www.example.com/zoo-ontology#parent
The ontology may have identified versions, e.g.
http://www.example.com/zoo-ontology-0.1 ... but the ontology
version URIs are not used to construct new class or property
URIs at each version.
@@TODO
Initially, the following URI namespace ...
http://purl.org/dc/elements/1.0/
... was used to construct URIs for the Dublin Core Element Set, e.g. ...
http://purl.org/dc/elements/1.0/title http://purl.org/dc/elements/1.0/creator
In (when???) the decision was made to change the URI namespace for Dublin Core Elements to ...
http://purl.org/dc/elements/1.1/
... and so the URIs for the elements themselves also changed to e.g. ...
http://purl.org/dc/elements/1.1/title http://purl.org/dc/elements/1.1/creator
Moving to a different URI namespace is a forwards-incompatible change for all software systems that depend on an ontology. I.e. no previously deployed software systems will recognise the new URIs, and will have to be modified. This can of course be extremely costly and inconvenient, depending on the level of existing deployment.
Therefore, changing the URI namespace should only be done when you wish to enforce a completely forwards-incompatible change for all dependent software systems. Usually this is not appropriate for changing ontologies, where the difference between two ontology versions might be the addition of a single class or property, or a modification to the description of a single class or property. This was in fact the case for the Dublin Core Element Set, and subsequent to the move from '1.0' to '1.1' a decision was made not to change the URI namespace again.
Now the URI namespace for all properties of the Dublin Core Element Set is ...
http://purl.org/dc/elements/1.1/
... and ontology version URIs are given by e.g. ...
http://dublincore.org/@@TODO http://dublincore.org/@@TODO
The same is true of the Friend of a Friend (FOAF) ontology. Although the URI namespace for classes and properties ...
http://xmlns.com/foaf/0.1/
... contains what looks like a 'version number', it is unlikely that the URI namespace for FOAF will ever be changed. Versions of the FOAF ontology are given by URIs e.g. ...
http://xmlns.com/foaf/0.1/@@TODOontversion http://xmlns.com/foaf/0.1/@@TODOontversion
The '1.1' in the dublin core elements namespace, and the '0.1' in the FOAF namespace should be viewed as historical artefacts, and not indicative of ontology versions.
--- $Log: part1.html,v $ Revision 1.2 2005/11/28 16:50:34 ajm65 fix stylesheet link Revision 1.1 2005/11/28 16:48:37 ajm65 *** empty log message *** ---