Re: Proposed tweaks to Annotations

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