W3C home > Mailing lists > Public > public-owl-wg@w3.org > November 2008

Re: A proposal for a simplification of the annotations subsystem

From: Alan Ruttenberg <alanruttenberg@gmail.com>
Date: Wed, 19 Nov 2008 08:42:53 -0500
Message-ID: <29af5e2d0811190542w7e3fdc3dlf8ee6f7ffed64fd4@mail.gmail.com>
To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
Cc: "W3C OWL Working Group" <public-owl-wg@w3.org>

Looks like a positive change to me. I'm still uncomfortable with the
URI as name for "entities which we may have different 'views' of".
Perhaps there is some variant of URI (that uses the term "view" in it)
that better expresses that it is something identified that we are
talking about, rather than the identifier of that thing. i.e. in
productions about properties, we use ObjectProperty := URI, not
ObjectPropertyURI := URI

possibilities: AnyView, AllViews, SomeView, Entity, Resource...

-Alan

On Mon, Nov 17, 2008 at 2:43 PM, Boris Motik
<boris.motik@comlab.ox.ac.uk> 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
>
>
>
Received on Wednesday, 19 November 2008 13:43:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 19 November 2008 13:43:31 GMT