- 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