W3C home > Mailing lists > Public > semantic-web@w3.org > January 2007

Re: OWL species and subproperties of rdfs:label

From: Alan Ruttenberg <alanruttenberg@gmail.com>
Date: Sat, 13 Jan 2007 01:20:32 -0500
Message-Id: <31C9F014-BA19-4F85-B196-A948579B9901@gmail.com>
To: martin.hepp@deri.org, Mark van Assem <mark@cs.vu.nl>, Semantic Web <semantic-web@w3.org>, Bernard Vatant <bernard.vatant@mondeca.com>, Tim Berners-Lee <timbl@w3.org>, Marc <marc@geonames.org>, public-esw-thes@w3.org

My understanding is that annotation property assertions are  
completely ignored by a DL reasoner, i.e. there are no semantics of  
annotation properties, as far as OWL DL is concerned. Regarding  
annotation properties having values which are classes, at least  as  
far as Pellet is concerned, the following is considered OWL Lite.

Namespace(ex = <http://example.com/#>)
Ontology(<http://example.com/#>
  AnnotationProperty(ex:p )
  Class(ex:c partial )
  Class(ex:d partial annotation(ex:p ex:c ))
)

-Alan


On Jan 12, 2007, at 5:32 PM, Martin Hepp wrote:

>
> Dear all:
> A related question:
>
> >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?
>
> I was surprised to read in the OWL reference in section 7.1 [1]  
> that it is not allowed to use annotation properties for capturing  
> relationships between one class and another class, e.g., to define  
> an annotation property "foo:relatedClass" that can be used to  
> capture that a particular class is related to another one.
>
> In fact, I used such a construct in a helper module for eclassOWL  
> [2] but had to learn that importing this module makes the ontology  
> be OWL Full, with all known disadvantages.
>
> Is there any reason for this constraint? Is this maybe related to  
> the problem you are discussing? I had expected that there is no  
> constraint on the type of object for an annotation property.
>
>
> best
> martin
>
> [1] "The object of an annotation property must be either a data  
> literal, a URI reference, or an individual."
> http://www.w3.org/TR/owl-ref/#Annotations
>
> [2] http://www.heppnetz.de/eclassowl
>
> -----------------------------------------------------
> martin hepp
> e-mail: martin.hepp@deri.org
> web:    http://www.heppnetz.de
> skype:  mfhepp
> office: +43 512 507 6465
>
> Check eClassOWL, the first real-world e-business ontology
> for products and services in OWL at
> http://www.heppnetz.de/eclassOWL
>
> -----------------------------------------------------
> martin hepp
> e-mail: martin.hepp@deri.org
> web:    http://www.heppnetz.de
> skype:  mfhepp
> office: +43 512 507 6465
>
> Check eClassOWL, the first real-world e-business ontology
> for products and services in OWL at
> http://www.heppnetz.de/eclassOWL
>
>
> Mark van Assem wrote:
>> Hi,
>> The behaviour that you describe below does not occur in the  
>> Triple20 tool [1] that I frequently use. It's more of a triple  
>> viewer than a full blown editor like Protege (editing is not as  
>> nicely supported), and it only partially supports OWL DL, but it  
>> doesn't do any funny things. What you stored is what you see, and  
>> what you added/removed is exactly what is in the stored file. It  
>> also has a category for resources that do not have an rdf:type,  
>> which is handy when debugging.
>> Cheers,
>> Mark.
>> [1] http://hcs.science.uva.nl/projects/Triple20/triple20.html
>>> 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
>>>
>
Received on Saturday, 13 January 2007 06:21:23 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:54 UTC