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

Received on Saturday, 4 October 2008 06:37:14 UTC