- 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