- From: Boris Motik <boris.motik@comlab.ox.ac.uk>
- Date: Tue, 18 Nov 2008 09:04:47 -0000
- To: "'Ivan Herman'" <ivan@w3.org>
- Cc: "'W3C OWL Working Group'" <public-owl-wg@w3.org>
Hello, The other way around is affected in as much because the FS would change, so I need to adjust the table a bit. However, the actual RDF triples produced by annotations will not change. Regards, Boris > -----Original Message----- > From: Ivan Herman [mailto:ivan@w3.org] > Sent: 18 November 2008 07:47 > To: Boris Motik > Cc: 'W3C OWL Working Group' > Subject: Re: A proposal for a simplification of the annotations subsystem > > Boris, > > I will not be at the phone meeting, so: I like what I read:-) I am all > for a simplification and this looks like one... > > You write that it affects the RDF Mapping; I presume it is the RDF->FS > that is affected and not the other way round, right? > > Thanks > > Ivan > > Boris Motik wrote: > > Hello, > > > > I know it is quite late in the day, but while I was implementing the resolution from the last F2F, > I've noticed several > > opportunities for simplification of the current spec. Please understand that > > > > - this would be just a simplification/clean-up of the structural specification and it does not > incur any fundamental changes > > regarding the actual capabilities of annotations, and > > > > - it would affect only the structural specification, the RDF Mapping, and the XML Syntax documents. > > > > > > Problem > > ---------------------- > > > > Currently, in the metamodel of OWL 2 we have three classes for various types of annotations: > > > > - AnnotationByURI, > > - AnnotationByLiteral, and > > - AnnotationByAnonymousIndividual. > > > > This is quite unwieldy. > > > > Furthermore, the metamodel of OWL 2 currently contains two different axioms for associating > annotations with things: > > > > - URIAnnotation and > > - AnonymousIndividualAnnotation. > > > > Again, quite unwieldy. > > > > Another problem is that, while it would be intuitive to expect the structure of annotations to be > similar to assertions, this is not > > the case. A property assertion consists of two individuals and a property, and it specifies just > one fact. In contrast, a single > > annotation axiom specifies a set of annotations for an individual, and essentially specifies more > than one fact. Consider the > > following examples: > > > > (1) PropertyAssertion( P i1 i2 ) > > (2) URIAnnotation( i1 Annotation( AP1 v1 ) Annotation( AP2 v2) ) > > > > In fact latter syntax is quite unwieldy, because it uses the terminal 'Annotation' quite often. > > > > Because of this, round-tripping of annotations through RDF is not possible. If you wrote (2) as two > separate annotations, serialized > > the ontology into RDF, and read everything back, your two annotation axioms would be merged into > one axiom (2). > > > > > > Proposal Outline > > ---------------------- > > > > The proposal consists of two changes. > > > > The first problem could be addressed by introducing a class called, say, AnnotationValue, as a > superclass of URI, Literal, and > > AnonymousIndividual. Then, we could replace three types of annotations with just one type that > refers to AnnotationValue. > > > > The second problem could be addressed by breaking up axioms of the form (2) into several axioms, > each of which provides just one > > annotation value. Thus, instead of (2), we would write something like this: > > > > (3) Annotation( AP1 i1 v1 ) > > (4) Annotation( AP1 i2 v2 ) > > > > This would actually bring the structural specification closer to RDF. > > > > > > Concrete Proposal for the Grammar > > ---------------------- > > > > Here is what the grammar of the FS might look like: > > > > AnnotationSubject := URI | AnonymousIndividual > > AnnotationValue := URI | AnonymousIndividual | Literal > > Annotation := 'Annotation' '(' axiomAnnotations AnnotationSubject AnnotationValue ')' > > > > axiomAnnotations := { StatementAnnotation } > > StatementAnnotation := 'StatementAnnotation' '(' > > { StatementAnnotation } AnnotationProperty AnnotationValue ')' > > AnnotationAxiom := Annotation | SubAnnotationPropertyOf | > > AnnotationPropertyDomain | AnnotationPropertyRange > > > > Here is a summary of the grammar changes: > > > > - What is currently the Annotation nonterminal would become StatementAnnotation. > > - What is currently URIAnnotation and AnonymousIndividualAnnotation would become Annotation. > > > > I believe that the result would be a much simpler metamodel and a much nicer syntax. I could enact > this change really quickly. > > > > > > > > Please let me know how you feel about this. Could we perhaps discuss this at the next teleconf? > > > > Regards, > > > > Boris > > > > > > -- > > 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 Tuesday, 18 November 2008 09:05:32 UTC