annotations and extra-logical constructs

In a burst of madnessfervour I hacked together changes to the
abstract syntax and mapping to triples portion of the semantics document to
allow for relatively arbitrary annotations on ontologies and also on
various OWL constructs.  I also changed the direct semantics appropriately
(i.e., such annotations are ignored).  I believe that I can get the
semantic correspondence to work out as well, although this is not yet done.
(I'll be doing something like requiring that the RHS can't have

I'm definitely not ecstatic about this, but I think that it gets the job
done.  I also hope that it doesn't cause problems later on.  (What is the
emoticon for crossed fingers?)

The abstract syntax changes are:

<ontology> ::= Ontology ( {<directive>} )

<directive> ::= Annotation ( <URI reference> <URI reference> )
<directive> ::= Annotation ( <URI reference> <lexical-form> )
<directive> ::= Imports ( <URI> )
<directive> ::= <axiom>
<directive> ::= <fact>

<annotation> ::= annotation ( <URI reference> <URI reference> )
<annotation> ::= annotation ( <URI reference> <lexical-form> )

The lower-case annotations can occur as part of Individual facts and as
part of Class, EnumeratedClass, ObjectProperty, and DatatypeProperty

Basically this allows things like

<owl:Class rdf:about="#foo">

to be in OWL/DL without causing problems and without having to make each
such thing a special case.

The trick is that the property used cannot be an OWL property (or the
mapping to n-triples breaks down).

If anyone thinks that this is a good solution to Issue 4.4, please consider
making a proposal (after first reading what I did).  Please also wait until
I've worked on the correspondence proof.

Peter F. Patel-Schneider
Bell Labs Research

PS: I was watching Halloween while doing this, so those of us without the
    protection-from-danger attribute should be concerned.  ;-)

Received on Thursday, 31 October 2002 22:20:12 UTC