- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Thu, 21 Aug 2008 13:33:42 -0400 (EDT)
- To: public-owl-wg@w3.org
Here is an ontology that (ab)uses overloading, which is the use of a URI
in different logical contexts.
The transfer syntax of OWL 1 DL forbade overloading, but this meant that
some useful ontologies were not in OWL 1 DL. OWL 2 DL employs punning
to allow many kinds of overloading while retaining implementability.
OWL 2 Full (and RDF and RDFS) allows even more overloading and has a
stronger semantics for some kinds of overloading.
Ontology( ex:o1 ex:o1
Import(ex:o3) Import(ex:o1)
EquivalentClasses ( Annotation ( ex:c1 "Surprise" ) ex:c1
IntersectionOf ( SomeValuesFrom ( ex:c1 ex:c1 )
SomeValuesFrom ( ex:c1 xsd:integer ) ) )
EquivalentClasses ( ex:c3
IntersectionOf ( MaxCardinality ( 1 ex:c1 )
HasValue ( ex:c1 ex:c3 )
HasValue ( ex:c1 ex:c4 ) ) )
PropertyDomain ( ex:c1 ex:c1 )
DisjointClasses ( xsd:integer ex:c1 )
ClassAssertion ( ex:c1 ex:c1 )
ClassAssertion ( ex:c3 ex:c3 )
SameIndividual ( ex:c1 ex:c2 )
SameIndividual ( ex:o3 ex:o4 )
SameIndividual ( owl:sameAs owl:sameAs )
)
Usages of URIs in the Ontology
Context URIs
Ontology Name ex:o1
Version Name ex:o1
Import Target ex:o1 ex:o3
Class ex:c1 xsd:integer ex:c3 ex:c4
Datatype xsd:integer
Object Property ex:c1
Data Property ex:c1
Annotation Prop ex:c1
Individuals ex:o3 ex:o4 ex:c1 ex:c2 ex:c3 ex:c4 owl:sameAs
The syntactically illegal OWL 2 DL overloadings in the ontology are:
- using ex:c1 as both an object and a data property
- using ex:c1 as both an object and an annotation property
- using ex:c1 as both a data and an annotation property
- using xsd:integer as both a class and a datatype
All other overloadings are acceptable and examples of punning in OWL 2
DL (i.e., there are no cross-over effects of the overloading):
- using ex:c1 as both an individual and a class
- using ex:c1 as both an individual and an object property
- using ex:c1 as both an individual and a data property
- using ex:c1 as both an individual and an annotation property
- using ex:c1 as both a class and an object property
- using ex:c1 as both a class and a data property
- using ex:c1 as both a class and an annotation property
- using ex:o1 as both an ontology name and a version name
- using ex:o1 as both an ontology name and an import target
- using ex:o1 as both an version name and an import target
It is also illegal in OWL 2 DL to use the disallowed vocabulary, so
using owl:sameAs as an individual is syntactically illegal.
The above ontology could be translated to an RDF graph using the mapping
to RDF (with perhaps a minor relaxation, but the intent is quite easy to
determine). The resulting RDF graph would be an acceptable OWL 2 Full
ontology. There would be some extra consequences because of the
differences between the OWL 2 Full semantics and the OWL 2 DL semantics.
- ex:c1 and ex:c2 would be equivalent classes
- ex:c1 would be an instance of ex:c2
- ex:c3 and ex:c4 would be equivalent classes
- ex:c3 would be an instance of ex:c4
It would *not* be the case that the OWL 2 Full semantics would require
the importation of ex:o4, even though ex:o3 is imported and ex:o3 and
ex:o4 are the same individual.
Received on Thursday, 21 August 2008 17:34:33 UTC