- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Sun, 9 Feb 2003 21:34:23 +0100
- To: www-webont-wg@w3.org
Hi Peter,
Thank you for this proposal, it is very definitely a step forward.
It is certainly better to do the annotation semantics inside the direct
semantics than not; however I remain perplexed as to why not use treat
annotations just like normal properties using the facilities of the direct
semantics to allow "a URI reference [that] can be the identifier of a class
or datatype as well as the identifier of a property as well as the identifier
of an individual in this abstract syntax," As long as the annotation
properties are sufficiently restricted then any unwelcome complexities or
surprising consequences can be avoided. e.g. to avoid any implicit typing of
classes, the annotation properties must not have declared domains, or
inverses (also their superproperties), but superproperties etc could be
permitted. In particular permitting subproperty hierarchies over annotations
looks genuinely useful - and while not worth the effort if you really need to
duplicate the work already done for ordinary subproperties, but I am not at
all convinced that that is necessary.
Aspects that still concern me ....
The intent seems that
<a> rdf:type owl:Thing .
<a> <p> "foo" .
is intended to be really quite different from
<a> rdf:type owl:Thing .
<a> <p> "foo" .
<p> rdf:type owl:DatatypeProperty .
The difference between this two, I believe is overly subtle and will confuse
users. e.g. your doc allows:
<a> rdf:type owl:Thing .
<a> <p> "foo" .
<a> <p> <b> .
but not
<a> rdf:type owl:Thing .
<a> <p> "foo" .
<p> rdf:type owl:DatatypeProperty .
<a> <p> <b> .
The abstract syntax form makes this sharp distinction between annotations and
property values. In the concrete syntax it is not nearly as sharp.
So looking at your example:
Class(Person partial)
Individual(john annotation(ex a) type(Person))
Individual(jack type(Person))
SameIndividual(john jack)
should entail
Class(Person partial)
Individual(john type(Person))
Individual(jack annotation(ex a) type(Person))
SameIndividual(john jack)
I think this is much clearer if we just make these normal value pairs i.e.
Class(Person partial)
Individual(john value(ex a) type(Person))
Individual(jack type(Person))
SameIndividual(john jack)
should entail
Class(Person partial)
Individual(john type(Person))
Individual(jack value(ex a) type(Person))
SameIndividual(john jack)
then we are led to ask, if we also wish to permit such a value/pair as a
(genuine) annotation on a class or property what constraints must we put on
it to not contravene the separations needed by the abstract syntax and
semantics.
Jeremy
Received on Sunday, 9 February 2003 15:33:43 UTC