- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Tue, 19 Aug 2008 01:54:09 -0400
- To: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Cc: public-owl-wg@w3.org
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