Re: Proposed tweaks to Annotations

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