- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Mon, 20 Jan 2003 22:26:22 +0100
- To: www-webont-wg@w3.org
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)
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 . ]
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 . ]
Received on Monday, 20 January 2003 16:25:48 UTC