Re: proposal to close ISSUE-16 by adding annotations on annotations

I like this proposal, with the following caveats.

1) The resolution of the proposal should speak to the serialization  
of annotations on annotations but not imply a resolution on the  
semantics or pragmatics of annotation properties. That issue is still  
under discussion.
2) The proposal continues a practice of reifying without including  
the original triple that has not been resolved by the working group.  
That matter would be resolved separately.

-Alan

On Aug 11, 2008, at 3:03 PM, Peter F. Patel-Schneider wrote:

>
>                Middle-class Annotations
>
> This is a proposal to close ISSUE-16 by incorporating syntax for
> annotations on annotations into OWL 2.  It fleshes out version 2a  
> of the
> proposal that I made in January, which is archived at
> http://lists.w3.org/Archives/Public/public-owl-wg/2008Jan/0106.html
>
> This is *only* a proposal to change the syntax of OWL 2.  There is no
> need for any change to the semantics.  This proposal does not cover  
> any
> pragmatic issues related to processing annotations, as might be  
> desired
> to find out provenance information on axioms that generate an  
> inference
> or to generate a complete ontology of the annotation information in an
> ontology.  These pragmatic issues could be handled by a WG note or  
> even
> left to tool builders.
>
> This proposal does not cover the required changes to the structural
> specification or the XML serialization, but the required changes are
> straightforward and I believe that they can be left to the  
> discretion of
> the editors of Syntax and XML Serialization.
>
>
> FUNCTIONAL SYNTAX:
>
> Augment the productions for annotations as follows:
>
> labelAnnotation := 'Label' '(' { annotations } literal ')'
> commentAnnotation := 'Comment' '(' { annotations } literal ')'
> deprecationAnnotation := 'Deprecated'
> COMMENT:  the three productions above are just shorthands and not
>           considered further here
> explicitAnnotationByLiteral := 'Annotation' '(' { annotations }
>                                                  AnnotationProperty  
> literal ')'
> annotationByLiteral := explicitAnnotationByLiteral
>                       | labelAnnotation | commentAnnotation |  
> deprecationAnnotation
> annotationByEntity := 'Annotation' '(' { annotations }
>                                        AnnotationProperty entity ')'
> annotationByAnonymousIndividual := 'Annotation' '(' { annotations }
>                                        AnnotationProperty  
> anonymousIndividual ')'
> annotation := annotationByLiteral | annotationByEntity |
>               annotationByAnonymousIndividual
> COMMENT:  all annotations can have annotations on them
>
> RDF SERIALIZATION:
>
> Change the foward mapping as follows:
>
> 2.2.4 Annotations on annotations:
>
> An annotation always generates a single triple (2.1, 2.2.1, and 2.2.3)
> or a group of similar triples (2.2.2).  An annotation on this  
> annotation
> "reifies" the annotation triple or triples as below and attaches the
> annotation's annotation to that reification (each of the  
> reifications),
> so that if the annotation triple is
>         x T(AP) T(ect)
> then the annotated version of this annotation
>         y rdf:type owl:Annotation
>         y owl:subject x
>         y owl:predicate T(AP)
>         y owl:object T(ect)
> and annotations of the form
>         y T(AP1) T(ect1)
>         ...
>         y T(APn) T(ectn)
> are produced instead.
>
> Example
>
> The following subclass axiom:
>
> SubClassOf( Comment( Label("Profound") "Children are people." )  
> a:Child a:Person )
>
> generates
>
> _:x rdf:type owl:Axiom
> _:x owl:subject a:Child
> _:x owl:predicate rdfs:subClassOf
> _:x owl:object a:Person
> _:y rdf:type owl:Annotation
> _:y owl:subject _:x
> _:y owl:predicate rdfs:comment
> _:y owl:object "Children are people."
> _:y rdfs:label "Profound"
>
> Deeper nesting is handled in the same way.
>
>
> Augment the reverse mapping as follows:
>
> Throughout the reverse mapping section, any triple match for s p o  
> that
> produces an annotation (in Table 9, Table 15, Table 16, Table 17,  
> *and*
> here) also allows a match of
>         _:x rdf:type owl:Annotation
>         _:x owl:subject s
>         _:x owl:predicate p
>         _:x owl:object o
> and adds annotations to the annotation for each triple in G with  
> _:x as
> the subject as follows
>         _:x *:y ct      { ... }         Annotation(*:y ct)
>         _:x *:y *:z     { ... }         ExpandAnnotations(_:x *:y *:z)
>         _:x *:y _:z     { ... }         Annotation( *:y _:z)
> Any triples used here are removed.
>

Received on Tuesday, 19 August 2008 05:54:52 UTC