W3C home > Mailing lists > Public > public-owl-wg@w3.org > March 2008

ACTION-102: The situation of deprecation in OWL-1.0-DL and OWL-1.0-Full

From: Michael Schneider <schneid@fzi.de>
Date: Wed, 19 Mar 2008 14:41:43 +0100
Message-ID: <0EF30CAA69519C4CB91D01481AEA06A08034A4@judith.fzi.de>
To: "OWL Working Group WG" <public-owl-wg@w3.org>
Cc: "Jim Hendler" <hendler@cs.rpi.edu>

In order to fulfil our ACTION-102, Jim and I had some discussion a week ago, which finally led to this mail. The mail consists of:

  (1) An analysis of the situation of deprecation in OWL-1.0-DL.

  (2) An analysis of the situation of deprecation in OWL-1.0-Full.

  (3) A proposal how to proceed in OWL-1.1.

(1) The situation of deprecation in OWL-1.0-DL

The main observation about deprecation in OWL-DL is that it is treated in a similar way as annotation properties are treated. I will explain this claim in the rest of this section.

In OWL-1.0, deprecation of a class C or a property p is declared by RDF triples of the form:

  (11a) C rdf:type owl:DeprecatedClass
  (11b) p rdf:type owl:DeprecatedProperty

The OWL-1.0-DL semantics is specified for ontologies represented in Abstract Syntax (see [3]). So in order to learn the OWL-DL semantics of an RDF graph, this RDF graph needs to be mapped to Abstract Syntax first. This approach allows to handle certain combinations of RDF triples in a specific way. For example, the typing triples (11a) and (11b) do *not* necessarily need to mean any kind of class assertion.

According to [2], the Abstract Syntax for an RDF graph

  (12a) C rdf:type owl:Class
  (12b) C rdf:type owl:DeprecatedClass
  (12c) ... further semantic descriptions ...

is given by:

  (13) Class(C Deprecated partial 
         ... semantic descriptions ...)

where "Deprecated" is a special marker which is only set when the triple (12b) occurs in an ontology.

The semantics for (13) are specified in [3]:

  (14) <S(C),S(owl:DeprecatedClass)> in ER(rdf:type)
       EC(C) subset EC(sem. descr1) ^ ... ^ EC(sem. descrN)

The meaning of the different functions occuring in (14) are

  S(.):	maps URIs to instances of the universe R
  EC(.):	maps class names to sub-sets of the universe R
  ER(.):	maps property names to sub-relations of RxR

For our discussion, only the first line of (14) is of interest. It says that the tuple <C,deprecatedClass> is an instance of the property denoted by 'rdf:type'.

The confusing bit here is that this property, which is called 'rdf:type', AFAICS has nothing to do with the the 'rdf:type' property in RDF. OWL-DL does not provide a general mapping of the RDF-property 'rdf:type' to some property in the OWL-DL universe. Instead, the property 'rdf:type', which occurs in the OWL-DL semantics, is a completely *new* property, which is there for the single purpose to cope with deprecations. From sec. 3.1 of [3]:

  "The property rdf:type is added to the annotation properties 
  so as to provide a meaning for deprecation"

In fact, OWL-DL specifies the semantics of the property 'rdf:type' analog to the semantics for the annotation properties (e.g. "rdfs:comment"). There are only two weak assertions being made in the spec about 'rdf:type':

  (15a) S :  V_AP union { owl:DeprecatedClass, owl:DeprecatedProperty } ? R
  (15b) ER : V_AP union { rdf:type } ? P(R×R)

with the annotation properties

  V_AP = { owl:versionInfo, rdfs:label, rdfs:comment, rdfs:seeAlso, and rdfs:isDefinedBy }

The two assertions (15a|b) do not say more than that rdf:type, just like all annotation properties, is just some (not further specified) property. (So this is very weak semantics. However, it actually *is* semantics. Annotation properties are *not* semantic-free in OWL-1.0-DL!).

AFAIU, the trick with the 'rdf:type' annotation property seems to be necessary for technical reasons: Unlike 'rdfs:comment', the deprecation vocabulary consisting of 'owl:DeprecatedClass' and 'owl:DeprecatedProperty' is not intended to be used in RDF in the predicate position, but instead in the object position of an RDF triple. Hence, a new annotation property 'rdf:type' is introduced, which receives the deprecation vocabulary as its objects.

But besides this tricky technical issue with 'rdf:type', deprecation is treated in OWL-DL just like annotations. In particular, the classes 'owl:DeprecatedClass' and 'owl:DeprecatedProperty' will never occur in the class hierarchy of an OWL-DL ontology, and they do not have any relevant (from a reasoner's pov) influence on the semantics of an OWL-DL ontology.

(2) The situation of deprecation in OWL-1.0-Full

In OWL-1.0-Full, the only semantic statement about 'owl:Deprecated(Class|Property)' is that they are classes:

  (21) I(owl:DeprecatedClass) in C_I 

where C_I is the meaning of owl:Class.

I order to get a feeling for how "strong" the semantics is for 'owl:DeprecatedClass', note that if an ontology contains the statement

  (22) C rdf:type owl:DeprecatedClass

then (21) already follows semantically from (22). So as long as people apply the URI 'owl:DeprecatedClass' in the intended way (as given by (22)), its semantics can be regarded to be extremely weak, and it probably won't produce any user surprise.

It has to be mentioned that in OWL-Full 'owl:DeprecatedClass' really occurs in the class hierarchy of an ontology, simply because it is a class. But because of (21) it will occur in /every/ class hierarchy, independent of which ontology is used. So this entry in the class hierarchy is essentially "null-information". Tools can easily filter out 'owl:DeprecatedClass' from the rendered view, and render those classes, which are instances of class 'owl:DeprecatedClass' in a special way, in order to make it easier for the user to recognize deprecated classes.

(3) A proposal how to proceed in OWL-1.1

(A) In 1.1-DL treat deprecation "axioms" as semantic-free annotations. 

(B) In 1.1-Full provide semantics by only saying that 'owl:Deprecated(Class|Property)' is an instance of owl:Class. 

(C) Do *not* deprecate the deprecation vocabulary. 

For (A):

Since deprecation has been treated like annotations in 1.0-DL, and since annotations are planned to become semantic-free in 1.1-DL, this seems to be a consequent step. It is true that this will not be perfectly backwards compatible to 1.0-DL. However, this then already true for annotations. And this does not seem to have any practical consequences, since the - very weak - semantics of annotations and deprecation in 1.0-DL could not be used by reasoners, anyway.

For (B):

This would be the same treatment as in 1.0-Full. As argued earlier, this is very weak semantics and won't probably lead to user surprise (at least, it probably didn't lead to user surprise in the past). 

It has been proposed as an alternative approach to change the semantics of 'owl:DeprecatedClass' to be equivalent to 'owl:Class'. This would then mean that /every/ class in an ontology is a deprecated class from the beginning, i.e. that for each class C a deprecation triple of the form

  C rdf:type owl:DeprecatedClass

is already entailed. So explicly stating such a triple would not provide any new semantic information. 

I am undecided whether this is a good or a bad approach. In fact, the semantics of this alternative proposal are *stronger* than the 1.0-Full semantics, since the 1.0-Full semantics can be entailed from the alternative semantics, but not vice versa. One might argue that in this way deprecation reduces to a kind of "syntax-only feature", since from a /semantic/ pov there is then no sense anymore in explicitly stating a deprecation triple. However, I believe that making every class into a deprecated class will lead to a lot of user surprise, and therefore I don't believe that it isn't worth the try to follow this track.

For (C):

The current annotation mechanism doesn't hurt (much), and it might be useful to some people. It is at least useful to have /some/ mechanism to annotate parts of an ontology as being deprecated. And if the current approach is semantic free in 1.1-DL, and has very weak semantics in 1.1-Full, then the current approach shouldn't be much worse than any other approach, while maintaining backwards compatibility.

Best regards,

[1] OWL-DL abstract syntax: <http://www.w3.org/TR/owl-semantics/syntax.html>
[2] OWL-DL RDF mapping: <http://www.w3.org/TR/owl-semantics/mapping.html>
[3] OWL-DL semantics: <http://www.w3.org/TR/owl-semantics/direct.html>
[4] OWL-Full semantics: <http://www.w3.org/TR/owl-semantics/rdfs.html> 

Dipl.-Inform. Michael Schneider
FZI Forschungszentrum Informatik Karlsruhe
Abtl. Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
Email: Michael.Schneider@fzi.de
Web  : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555

FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts
Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus

Received on Wednesday, 19 March 2008 13:42:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 19 March 2008 13:42:29 GMT