Confusing semantics of Ontology Versions and Version Series

I am a little confused about some parts of the AS/FSS specification as they
apply to
Ontology versions.


§3.1  introduces the concepts of Ontology IRI, Version IRI, Ontology
Series, and [the current ontology of a series].

An Ontology Series is defined to be the set of all Ontologies sharing the
same Ontology IRI.
One ontology is stated to be "regarded as the current one".

The meaning of "current" seems to be only defined, in §§3.2--3.3, in an
ostensive fashion;  it is the version that is accessible via an IRI at a
precise moment in time.   In an offline situation, this is not well
defined.

It does not seem safe to use an Ontology IRI in an import statement, since
there is no guarantee that the ontology denoted by that IRI at the time of
creation is compatible with "current version".

It also seems dangerous to add a Version IRI to a new version of an
Ontology whose where the first version in the Series did not have one,
despite the latter case being explicitly authorized in §3.1.  If there was
no VersionIRI specified, the OntologyIRI would be the only IRI available
for specifying as an import.

There are a few ontology annotations that seem like they almost address the
problem, but which have restrictions specified which make them unsuitable
for the purpose.

§3.5 specified properties to indicate version compatibility; however, the
properties are defined only between different versions of the containing
ontology:

>
>    - The owl:backwardCompatibleWith annotation property specifies the IRI
>    of a prior version of the containing ontology that is compatible with the
>    current version of the containing ontology.
>
>
>    - The owl:incompatibleWith annotation property specifies the IRI of a
>    prior version of the containing ontology that is incompatible with the
>    current version of the containing ontology.
>
>
These definitions make reference to "the current version of the containing
ontology"; this does not seem easy to work with, given that the current
version may change subsequent to the publication of an ontology containing
this assertion.  It would make more sense to specify (in)compatibility with
version recorded in the containing ontology.

These definitions seem incompatible with parts of  §3.4:

The import closure of an ontology O is a set containing O and all the
> ontologies that O imports. The import closure of O should not contain
> ontologies O1 and O2 such that
>
>    - O1 and O2 are different ontology versions from the same ontology
>    series, or
>    - O1 contains an ontology annotation owl:incompatibleWith with the
>    value equal to either the ontology IRI or the version IRI of O2.
>
> If owl:incompatibleWith may only be used to specify the IRI of prior
versions of an ontology in a series then it would not seem possible to use
the ontology IRI of O2 (it would also appear to be asserting that an
Ontology is incompatible with itself).

It would seem more useful to define owl:incompatibleWith to specify that an
ontology identified by the subject IRI is not compatible with an ontology
identified by the value IRI, regardless of whether or not they are in the
same ontology series.

It would also seem useful to define another annotation, owl:compatibleWith,
which would indicate that two IRIs denote compatible ontologies.  This
annotation could be added by ontology tools to record the version of an
ontology import used during development or testing, and could be used
during import processing to detect or resolve version clashes for indirect
imports (e.g. stepping forwards to more recent backwards compatible
versions).

Also, if  versioning ontology annotations were allowed to make statements
about arbitrary IRIs denoting ontologies, it would be easy to provide the
full chain of prior versions, and identify whether a version that satisfies
multiple indirect imports exists.

Simon

Received on Monday, 17 March 2014 18:01:35 UTC