Re: abstract syntax and RDFS

Jeremy Carroll wrote:
> 
> 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 . ?

The owl.wol file defines owl:Class as a subclass of rdfs:Class.
So this seems redundant to me, or are we not assuming owl.owl is always 
imported? The same holds for the other examples (owl:ObjectProperty is a 
subclass of rdf:Property, etc.).
Sorry if I misunderstand.
Guus

> 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 . ] 
> 
> 

-- 
A. Th. Schreiber, SWI, University of Amsterdam,
http://www.swi.psy.uva.nl/usr/Schreiber/home.html

Received on Monday, 20 January 2003 17:56:48 UTC