- From: Ivan Herman <ivan@w3.org>
- Date: Mon, 6 Oct 2008 15:38:49 -0000 (UTC)
- To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
- Cc: "'Ivan Herman'" <ivan@w3.org>, "'Alan Ruttenberg'" <alanruttenberg@gmail.com>, "'W3C OWL Working Group'" <public-owl-wg@w3.org>
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 15:39:29 UTC