- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Wed, 22 Jan 2003 20:01:35 -0500 (EST)
- To: jjc@hpl.hp.com
- Cc: www-webont-wg@w3.org
From: Jeremy Carroll <jjc@hpl.hp.com> Subject: abstract syntax and RDFS Date: Mon, 20 Jan 2003 22:26:22 +0100 > > > In conducting my still unfinished review of the mapping rules I noticed that > no RDFS schema is an OWL DL document. > > This seems like an oversight, and can be addressed by a harmless extension to > the mapping rules. > > The problem is that every RDFS schema contains triples like > > <uri1> rdf:type rdf:Property . > and > <uri2> rdf:type rdfs:Class . > > These triples are simply illegal in OWL Lite and OWL DL. > > But they could be (non-deterministically) introduced in the mapping rules. > The latest version of the mapping rules does have some non-determinism already > for handling AllDifferent. By extending the notation of the mapping rules to > have say ? triple ? to denote an optional triple that can be omitted or > included at whim, I propose the following changes to the mapping rules to > enhance RDFS compatibility. > (Notationally it may be simpler just to duplicate the rules; this is what is > done with the Ontology construct). > > > OLD > > Class(classID partial > annotation1 … annotationn > description1 … descriptionn) > > => > > classID rdf:type owl:Class . > classID T(annotation1) . … classID T(annotationn) . > classID rdfs:subClassOf T(description1) . … > classID rdfs:subClassOf T(descriptionn) . > > PROPOSED > > Class(classID partial > annotation1 … annotationn > description1 … descriptionn) > > => > > classID rdf:type owl:Class . > ? classID rdf:type rdfs:Class . ? > classID T(annotation1) . … classID T(annotationn) . > classID rdfs:subClassOf T(description1) . … > classID rdfs:subClassOf T(descriptionn) . > > (similarly for the other two Class rules) > Done for all *four* Class rules. > OLD > > DatatypeProperty(ID > annotation1 … annotationn > super(super1)… super(supern) > domain(domain1)… > domain(domainn) > range(range1)… > range(rangen) > [Functional]) > > => > > ID rdf:type owl:DatatypeProperty . > ID T(annotation1) . … ID T(annotationn) . > ID rdfs:subPropertyOf T(super1) . … > ID rdfs:subPropertyOf T(supern) . > ID rdfs:domain T(domain1) . … > ID rdfs:domain T(domainn) . > ID rdfs:range T(range1) . … > ID rdfs:range T(rangen) . > [ID rdf:type owl:FunctionalProperty . ] > > PROPOSED > > DatatypeProperty(ID > annotation1 … annotationn > super(super1)… super(supern) > domain(domain1)… > domain(domainn) > range(range1)… > range(rangen) > [Functional]) > > => > > ? ID rdf:type rdf:Property . ? > ID rdf:type owl:DatatypeProperty . > ID T(annotation1) . … ID T(annotationn) . > ID rdfs:subPropertyOf T(super1) . … > ID rdfs:subPropertyOf T(supern) . > ID rdfs:domain T(domain1) . … > ID rdfs:domain T(domainn) . > ID rdfs:range T(range1) . … > ID rdfs:range T(rangen) . > [ID rdf:type owl:FunctionalProperty . ] Done. > OLD > > ObjectProperty(ID > annotation1 … annotationn > super(super1)… super(supern) > domain(domain1)… > domain(domainn) > range(range1)… > range(rangen) > [inverseOf(inverse)] > [Symmetric] > [Functional | > InverseFunctional | > Transitive]) > > => > > ID rdf:type owl:ObjectProperty . > ID T(annotation1) . … ID T(annotationn) . > ID rdfs:subPropertyOf T(super1) . … > ID rdfs:subPropertyOf T(supern) . > ID rdfs:domain T(domain1) . … > ID rdfs:domain T(domainn) . > ID rdfs:range T(range1) . … > ID rdfs:range T(rangen) . > [ID owl:inverseOf T(inverse) .] > [ID rdf:type owl:SymmetricProperty . ] > [ID rdf:type owl:FunctionalProperty . ] > [ID rdf:type owl:InverseFunctionalProperty . ] > [ID rdf:type owl:TransitiveProperty . ] > > PROPOSED > > ObjectProperty(ID > annotation1 … annotationn > super(super1)… super(supern) > domain(domain1)… > domain(domainn) > range(range1)… > range(rangen) > [inverseOf(inverse)] > [Symmetric] > [Functional | > InverseFunctional | > Transitive]) > > => > > ? ID rdf:type rdf:Property . ? > ID rdf:type owl:ObjectProperty . > ID T(annotation1) . … ID T(annotationn) . > ID rdfs:subPropertyOf T(super1) . … > ID rdfs:subPropertyOf T(supern) . > ID rdfs:domain T(domain1) . … > ID rdfs:domain T(domainn) . > ID rdfs:range T(range1) . … > ID rdfs:range T(rangen) . > [ID owl:inverseOf T(inverse) .] > [ID rdf:type owl:SymmetricProperty . ] > [ID rdf:type owl:FunctionalProperty . ] > [ID rdf:type owl:InverseFunctionalProperty . ] > [ID rdf:type owl:TransitiveProperty . ] Done. I also had to fix the informative portion as well. peter
Received on Wednesday, 22 January 2003 20:01:45 UTC