Overview
Versioning, Deprecation & Migration
owl:versionIRI, owl:deprecated, SHACL migration shapes — keep downstream consumers alive across releases.
Why it matters
An ontology with no versioning policy will break every downstream consumer the first time a class is renamed. owl:versionIRI + a deprecation policy is the minimum viable practice.
Going deeper
The minimum viable versioning policy, three habits:
- Always set
owl:versionIRI— a separate, monotonically-changing IRI from the ontology IRI itself, so consumers can pin to a specific release. - Deprecate, don't delete — mark removed terms with
owl:deprecated trueandrdfs:isDefinedBy <prev-version-IRI>. Provide a bridge axiom (owl:equivalentClassorowl:equivalentProperty) for at least one full release cycle. - Publish a changelog with semantic-version semantics — MAJOR for any breaking change (deletion, semantic narrowing); MINOR for additions; PATCH for labels/comments only.
A SHACL migration shape is the 'codemod' of ontology versioning: ship a shape that detects the old terms in a consumer's data and reports them, so consumers can run the shape and find every place they still reference deprecated IRIs.