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