- From: Ivan Herman <ivan@w3.org>
- Date: Tue, 7 Oct 2008 06:56:56 -0000 (UTC)
- To: "Alan Ruttenberg" <alanruttenberg@gmail.com>
- Cc: "Ivan Herman" <ivan@w3.org>, "Boris Motik" <boris.motik@comlab.ox.ac.uk>, "W3C OWL Working Group" <public-owl-wg@w3.org>
Hi Alan, On Mon, October 6, 2008 5:24 pm, Alan Ruttenberg wrote: > 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? I am not sure I understand what you ask. My feeling was: there are none. But, if there are none, I am not sure I understand the rationale to introduce anything specific on the range/domain of annotations in the first place... Put it another way. If it is the case that I can define subproperties of annotation properties like rdf:comment without kicking the ontology out of DL (and my understanding is that this is the case) then I do not understand what the reasons are to do anything special. That is what I would like to understand with clear use cases... (I put the more complicated annotation proposal of Bijan aside, that seems to be off the discussion table for now...) Ivan > > -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 >> > -- Ivan Herman, W3C Semantic Web Activity Lead URL: http://www.w3.org/People/Ivan/ FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Tuesday, 7 October 2008 06:57:37 UTC