Re: OWL species and subproperties of rdfs:label

----- Original Message ----- 
From: "Bernard Vatant" <bernard.vatant@mondeca.com>
To: "Semantic Web" <semantic-web@w3.org>; "Tim Berners-Lee" <timbl@w3.org>; 
"Marc" <marc@geonames.org>; <public-esw-thes@w3.org>
Sent: Monday, January 08, 2007 12:55 PM
Subject: OWL species and subproperties of rdfs:label



Hi all

This is a public follow-up of a private exchange with Tim and Marc about
Geonames ontology.  To sum it up, I added to this ontology the
declaration of various naming attributes as subproperties of rdf:label,
in order, as Tim suggested, to make those properties available for
display in tools like Tabulator. Some of these simple declarations are
found in SKOS vocabulary, e.g.,

skos:prefLabel      rdfs:subPropertyOf      rdfs:label

Unfortunately, when incorporated in a OWL ontology, such declarations
have unexpected dramatic consequences, since rdfs:label is defined by
OWL as a built-in owl:AnnotationProperty, and I suppose every other OWL
editor will show and use rdfs:label as such. But devil is in the
details. Subproperty declaration is not allowed for annotation
properties in OWL-DL, so the above declaration added to a OWL-Lite
ontology shifts it to OWL-Full. That's what happened to the latest
version of geonames ontology. Does not seem big deal to begin with, but
unfortunately the kind of OWL-Full-ness brought about by such
declarations has really messy consequences if you try to manage them
with current ontology editors such as SWOOP or Protégé.

SWOOP 2.3 just ignores such subproperty declarations when loading the
file, and they are removed when you save the file.

Protégé 3.2 behaviour is more tricky. The GUI just does not show such
properties but they are not removed from the RDF source by the Jena
backend, and stay in the RDF file when you save. But moreover, Protégé
insists that every owl:AnnotationProperty must be either
owl:DatatypeProperty or owl:ObjectProperty, and adds the former by
default. Which is IMO a very strange interpretation of OWL specification.

So, to sum it up, suppose I declare the following in the original ontology

 <owl:AnnotationProperty
rdf:about="http://www.example.org/ontology#altName">
  <rdfs:subPropertyOf
rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
 </owl:AnnotationProperty>

Loading and saving in SWOOP 2.3 yields back

<owl:AnnotationProperty
rdf:about="http://www.example.org/ontology#altName"/>

The subproperty declaration is deleted

Loading and saving in Protégé 3.2 yields back

  <owl:AnnotationProperty
rdf:about="http://www.example.org/ontology#altName">
    <rdfs:subPropertyOf
rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
    <rdf:type
rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
  </owl:AnnotationProperty>

The DatatypeProperty class is added

Now if I don't want to presume the property type and just declare

 <rdf:Property     rdf:about="http://www.example.org/ontology#altName">
  <rdfs:subPropertyOf
rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
 </rdf:Property>

SWOOP just ignores this declaration altogether, and the property is
killed when saving.
Protégé does not show the property in the GUI, but Jena saves it in the
original form.

Well, all that is *very messy* indeed. Looks like that the semantics of
annotation subproperties is defined nowhere, and randomly implemented in
tools. OWL specification just says: this is not DL any more, go figure
what it means. I'm not even sure that a subproperty of an annotation
property is an annotation property. Is this entailed by RDFS semantics?

a:myProperty1      rdfs:subPropertyOf      b:yourProperty2
b:yourProperty2       rdf:type      ex:SomePropertyType

Does the above entails in RDFS

a:myProperty1        rdf:type       ex:SomePropertyType

?? (I guess yes, but maybe I'm wrong)

If yes, then applied to

skos:prefLabel      rdfs:subPropertyOf      rdfs:label   (by SKOS
vocabulary)
rdfs:label         rdf:type      owl:AnnotationProperty   (by OWL
specification)

entails

skos:prefLabel      rdf:type      owl:AnnotationProperty

... which is not the kind of entailment Protégé or SWOOP seem to support.

Do I miss something or is this really Terra Incognita in RDF semantics
world?

Thanks for enlightnments.

Bernard

-- 

*Bernard Vatant
*Knowledge Engineering
----------------------------------------------------
*Mondeca**
*3, cité Nollez 75018 Paris France
Web:    www.mondeca.com <http://www.mondeca.com>
----------------------------------------------------
Tel:       +33 (0) 871 488 459
Mail:     bernard.vatant@mondeca.com <mailto:bernard.vatant@mondeca.com>
Blog:    Leçons de Choses <http://mondeca.wordpress.com/>

Received on Monday, 8 January 2007 17:25:30 UTC