W3C home > Mailing lists > Public > public-esw-thes@w3.org > January 2007

OWL species and subproperties of rdfs:label

From: Bernard Vatant <bernard.vatant@mondeca.com>
Date: Mon, 08 Jan 2007 12:55:42 +0100
Message-ID: <45A2313E.8010607@mondeca.com>
To: Semantic Web <semantic-web@w3.org>, Tim Berners-Lee <timbl@w3.org>, Marc <marc@geonames.org>, public-esw-thes@w3.org

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 11:56:00 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 2 March 2016 13:32:07 UTC