Re: Error with Annotation Properties

(replying to list as well)

On Apr 12, 2005, at 6:24 PM, Olivier Dameron wrote:

> On Mon, 11 Apr 2005 23:41:08 -0400, Bijan Parsia <bparsia@isr.umd.edu>
> wrote:
>>> <rdf:RDF
>>>   xmlns:owl="http://www.w3.org/2002/07/owl#"
>>>   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>>   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
>>>
>>> <owl:Class rdf:about="http://test/class">
>>>   <rdfs:label>A class</rdfs:label>
>>       ^^^^^^^^^^^^^^
>> Remove this to pass the WonderWeb validator.
>>
>> I have to go back to the specs to check whether you can have
>> annotation  properties on descriptions like this. It's probably a good
>> idea to  avoid them.
>
> According to http://www.w3.org/TR/owl-ref/#Annotations
> it should be valid (or am i missing something?).

Well, the reference isn't normative.

And we are talking about what's legal OWL DL. Clearly all this is legal  
OWL Full.

So there are two normative places and one non-normative place I would  
look for this stuff. The non-normative place is:
	http://www.w3.org/TR/owl-ref/#app-DLinRDF

This was written primarily by Sean Bechhofer (with input from others,  
including us) who was primary author of the WonderWeb  validator. So it  
can provide insight to how it works. If you look at the section on  
Restrictions, you'll see that it forbids all annotation properties on  
restriction blank nodes.

This is backed up by the fact that the abstract syntax for descriptions  
(and hence restrictions) does not admit annotations. They could be,  
perhaps, in the concrete syntax and thrown away, but that would be  
weird:
	http://www.w3.org/TR/2004/REC-owl-semantics-20040210/ 
syntax.html#2.3.2.3

To check for this, though, we need to see the transformation to triples:
	http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html

(Since it's given as a *forward* mapping, it's highly unlikely anything  
not in the abstract syntax will show up in the concrete!)

If you look at, for example, the entry on restrictions;
	restriction(ID component1 … componentn)

(With at least two components)
  _:x rdf:type owl:Class .
  _:x rdf:type rdfs:Class . [opt]
  _:x owl:intersectionOf
  T(SEQ(restriction(ID component1) …  restriction(ID componentn))) .

You'll see (in each entry) no provision for annotation properties.  
(Contrast with the entries for classes).

This is probably somewhat stricter than one could possibly get way  
with, but it might force a rewrite of several of the proofs and doesn't  
strike me, at least, as an interesting extension. There are more  
interesting liberalizations of annotation properties (for example,  
allowing partitioned reasoning over them).

Cheers,
Bijan Parsia.

Received on Wednesday, 13 April 2005 01:16:57 UTC