- 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