RE: Proposed tweaks to Annotations

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