- From: Ivan Herman <ivan@w3.org>
- Date: Sat, 04 Oct 2008 08:36:37 +0200
- To: Boris Motik <boris.motik@comlab.ox.ac.uk>
- CC: 'Alan Ruttenberg' <alanruttenberg@gmail.com>, 'W3C OWL Working Group' <public-owl-wg@w3.org>
- Message-ID: <48E70EF5.2090909@w3.org>
Boris, Alan, disclaimer: I must admit I have not looked at the issues of annotations too much. Clearly, drawn on his background, Alan has met this issue many time, so sorry if I ask the obvious... So: why is it so important to have a domain specification for an annotation? As a naive user I would think that annotations are a little bit like comments. What is the real user case where some sort of a domain specification is needed? (Same question for range). Again from a naive user's point of view, the only real requirement I see is to be able to define hierarchies of annotations, ie, using subPropertyOf without any danger. But that does not seem to be a problem, does it? [I understand Boris' argument that _if_ I use a domain with an annotation property then the semantics of OWL DL and OWL Full would differ. I am not sure that this would lead to any real problems in practice, though...] The problem I have with Alan's original proposal is that we add new terms again and we already have a huge number of those. It is also not clear to me whether those would translate into RDF as well (Boris' explanation seem to suggest they would not, but I am not sure); if so, then we will have to add new rules to the OWL Full semantics (which is already quite large) and to the OWL-RL rule set (which is also quite large!). Ie, I would like to understand what is exactly the use case we want to solve... Help:-) Thanks Ivan Boris Motik wrote: > Hello, > > We may proceed as you suggested. I'd just like to note that Theorem 1 in the Profiles document does not need updating given the > current state of the affairs: > > - Annotation properties cannot occur in domain axioms (and, because there is no property punning, it is not possible that an > annotation property accidentally starts participating in a domain axiom). > > - There are no AnnotationPropertyDomain axioms in the structural specification of OWL 2. > > Thus, in an OWL 2 RL ontology an annotation property cannot accidentally start participating in axioms, even if we apply the > semantics of OWL Full. > > If we were to go with the divergence in the semantics, then indeed the theorem might need updating. > > (I didn't understand whether your remark about updating the theorem refers to the current state or a possible future state of the > specification, and this is the main reason why I wrote this e-mail.) > > Regards, > > Boris > >> -----Original Message----- >> From: Alan Ruttenberg [mailto:alanruttenberg@gmail.com] >> Sent: 03 October 2008 16:18 >> To: Boris Motik >> Cc: W3C OWL Working Group >> Subject: Re: Proposed tweaks to Annotations >> >> On Fri, Oct 3, 2008 at 9:51 AM, Boris Motik <boris.motik@comlab.ox.ac.uk> wrote: >>> Hello, >>> >>> I believe there are slight problems with both of these proposals. >>> >>> ---------------------------------------------------------- >>> >>> 1. If we make owl:annotationSubPropertyOf a subproperty of rdfs:subPropertyOf, then we haven't >> really achieved anything with adding >>> owl:annotationSubPropertyOf, and we might as well save ourselves the trouble. Please let me >> explain. >>> There is no problem with extending the structural specification of OWL 2 with three new axiom >> types: >>> - SubAnnotationPropertyOf >>> - AnnotationPropertyDomain >>> - AnnotationPropertyRange >>> >>> These could even be mapped into RDF using the existing OWL/RDF vocabulary. For example, >>> >>> (1) SubAnnotationPropertyOf( ap1 ap2 ) >>> >>> could be mapped into the RDF triple >>> >>> (2) <ap1, rdfs:subPropertyOf, ap2> >>> >>> without any problems. The reason why this is so is declarations: to be able to use ap1 and ap2 in >> this axiom, both should be >>> declared as annotations. Thus, we'll also have these triples: >>> >>> (3) <ap1, rdf:type, owl:AnnotationProperty> >>> (4) <ap2, rdf:type, owl:AnnotationProperty> >>> >>> Now reverse-transformation is not difficult: by looking at the declarations, we know that we should >> translate (2) into (1). >>> >>> The problem with this approach is not in the RDF mapping, but in the difference in the semantics: >> in OWL 2 DL, we are completely >>> ignoring the semantics of axioms such as (1), but this is not the case with OWL 2 Full. Consider >> the following example: >>> (5) AnnotationPropertyDomain( ap C ) >>> (6) EntityAnnotation( NamedIndividual( i ) Annotation( ap "bla" ) ) >>> >>> In OWL 2 DL, axioms (5)--(6) *do not* have any semantics, and they *do not* entail the following >> assertion: >>> (7) ClassAssertion( C i ) >>> >>> Now consider what happens in OWL Full. The translation of (5)--(6) into RDF is this: >>> >>> (8) <ap, rdfs:domain, C> >>> (9) <i, ap, "bla"> >>> >>> By the OWL Full semantics, the following triple is implied: >>> >>> (10) <i, rdf:type, C> >>> >>> Note that (10) corresponds to (7), but (7) is not entailed whereas (10) is. This is a problem: >> annotations bring OWL 2 DL and OWL 2 >>> Full further apart. >>> >>> >>> Now the proposed change does not help: even if we convert (8) into >>> >>> (11) <ap, owl:annotationDomain, C> >>> >>> triple (10) is still entailed in OWL 2 Full if owl:annotationDomain is a subproperty of >> rdfs:domain. At the same time, (7) is still >>> not entailed in OWL 2 DL. Thus, we haven't actually solved the problem. >>> >>> >>> One possible solution to this problem would be *not to make* if owl:annotationDomain a subproperty >> of rdfs:domain in OWL 2 Full. In >>> this way, (11) *would not* be entailed in OWL 2 Full, and this would match the situation in OWL 2 >> DL. (I understand that some people >>> might not like this; that's why I'm saying "a possible solution".) >>> >>> Another solution is to decide that we don't care about this semantic divergence between the two >> languages. In that case, we don't >>> need the new properties: as I explained, we can reverse-map everything without any problems. >> Both of these are reasonable choices. I suggest that if we go in this >> direction we ask the community what their thoughts are. Note that we >> already have divergence in the semantics of annotations. >> >> If we have >> >> AnnotationPropertyDomain( ap C ) >> EntityAnnotation( NamedIndividual( i ) Annotation( ap "bla" ) ) >> NamedIndividual( j ) >> SameIndividual( i j) >> >> Then in OWL Full and OWL RL we get >> EntityAnnotation( NamedIndividual( j ) Annotation( ap "bla" ) ) >> >> Note that this means that Theorem 1 in Profiles needs to be adjusted >> to rule out this situation. >> >> >>> ---------------------------------------------------------- >>> >>> 2. The second proposal has a significant drawback that all ontologies that use rdfs:label would not >> be OWL 2 DL ontologies any more >>> (and I believe that these are actually most ontologies). In order to bring these ontologies into >> OWL 2 DL, one would need to >>> explicitly add the triple >>> >>> (12) <rdfs:label, rdf:type, owl:AnnotationProperty> >>> >>> It seems to me that this would potentially annoy quite a few people. >> I think we can ask this question to the wider community, offering that >> we could suggest that tools offer to "repair" such situations for OWL >> 1 ontologies. The trade off is that absent this ability there is no >> way for ontology writers to make effective use of OWL DL for >> properties that they might want to. For instance, in an ontology such >> as SKOS, I would argue that rdfs:label is *not* annotation - it is >> properly in the domain. The alternative - that they use some property >> other than rdfs:label (and therefore lose interoperability with the >> may tools that use this property for display purposes) or not be able >> to take advantage of reasoning about these properties, might be >> considered to be a greater annoyance. >> >> -Alan >> >> >>> >>> >>> Regards, >>> >>> Boris >>> >>> ________________________________________ >>> From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] On Behalf Of Alan >> Ruttenberg >>> Sent: 03 October 2008 14:01 >>> To: W3C OWL Working Group >>> Subject: Proposed tweaks to Annotations >>> >>> I'd like to suggest two tweaks on annotations that might address some problems with them. >>> >>> 1) Introduction of new properties owl:annotationSubPropertyOf owl:annotationDomain >> owl:annotationRange. In OWL DL these could be >>> considered annotations in this version but with notice that their behavior may be changed in >> subsequent versions of OWL. For OWL >>> Full we would make them sub properties of the corresponding non-annotation properties. >>> >>> 2) No explicit declaration of any properties as Annotation by default. Currently rdfs:label, >> rdfs:comment several others are so >>> defined as built-ins. Because of this it is not possible to do any DL reasoning with them, such as >> making real sub properties of >>> them. I think it would be better to not commit on this and instead leave to the editors of >> ontologies the choice of whether to >>> consider them to be annotation or not. We could leave it to tool to, as a courtesy, add annotation >> property declarations to the >>> would-be-former built-ins in the case that a user does not supply them. >>> >>> For SKOS we could advise that they choose one of these two options to handle their extensive use of >> subproperty axioms on annotation >>> properties such as label. >>> >>> -Alan >>> >>> > > -- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ PGP Key: http://www.ivan-herman.net/pgpkey.html FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Saturday, 4 October 2008 06:37:14 UTC