- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Mon, 6 Oct 2008 13:24:59 -0400
- To: "Ivan Herman" <ivan@w3.org>
- Cc: "Boris Motik" <boris.motik@comlab.ox.ac.uk>, "W3C OWL Working Group" <public-owl-wg@w3.org>
I also don't see justification for the claim that annotation domains and ranges are different from any other ___domain and range statements with respect to this. As you point out, and as Boris has written about, many uses of ___domain/range are mistakenly intended as constraints. But what evidence is there that annotation properties differ in this respect? -Alan On Mon, Oct 6, 2008 at 11:38 AM, Ivan Herman <ivan@w3.org> wrote: > > Hi Boris, > > as far as I know, the intention of using range/___domain as a constraint instead of a > license to infer typing on the subject or the object is a common mistake people make > when starting to use OWL. If that is the general usage for annotations, then this is > simply an erronous usage from OWL point of view; ie, I am not sure this is a good enough > argument to specially deal with it... I may have misunderstood you, though. > > (As an aside: don't take me wrong, trying to define constraints like that on the usage > of a predicate is a legitimate user request and I have met this several time when > talking to people. It is just that OWL does not look like the right tool for that...) > > Ivan > > > On Sat, October 4, 2008 9:35 am, Boris Motik wrote: >> Hello, >> >> In my experience, people use ___domain and ranges on annotation properties in the >> constraint sense. For example, they want to say >> something like "the range of rdfs:label is an xsd:string", and by doing so they want to >> prevent people from writing something like >> <a:myInd rdfs:label "2"^^xsd:integer>. >> >> The situation is similar with domains: they want to say that "the ___domain of a:hasID is >> an a:Protein". Now ___domain axioms on >> annotation properties are the ones that give us most of the trouble, because they can >> infer new concept memberships. Note, however, >> that people usually don't want that: the intended meaning of the mentioned statement is >> usually as an integrity constraint. That is, >> people want to say that you can use the annotation property a:hasID only on instances of >> a:Protein. In other words, if a:myProt is >> not an instance of a:Protein and you have annotated it with a:hasID, then the ontology >> is in error. >> >> Thus, ___domain axioms on annotation properties are the ones that lead to the semantic >> divergence between OWL 2 DL and OWL 2 Full. If >> we had only SubAnnotationPropertyOf axioms, then there would be no semantic divergence. >> Finally, if we had only >> AnnotationPropertyRange axioms, then the divergence would exists, but would be "small": >> the only thing you could do with such axioms >> is make the ontology inconsistent in OWL 2 Full, whereas it would be consistent in OWL 2 >> DL. Thus, the main difference is in the >> AnnotationPropertyDomain axioms: there you start seeing new consequences in OWL 2 Full >> which you don't see in OWL 2 DL. >> >> Regards, >> >> Boris >> >>> -----Original Message----- >>> From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] On Behalf Of >>> Ivan Herman >>> Sent: 04 October 2008 07:37 >>> To: Boris Motik >>> Cc: 'Alan Ruttenberg'; 'W3C OWL Working Group' >>> Subject: Re: Proposed tweaks to Annotations >>> >>> 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 >> >> > > > -- > Ivan Herman, W3C Semantic Web Activity Lead > URL: http://www.w3.org/People/Ivan/ > FOAF: http://www.ivan-herman.net/foaf.rdf >
Received on Monday, 6 October 2008 17:25:37 UTC