- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Tue, 21 Nov 2006 14:24:45 +0000
- To: Sandro Hawke <sandro@w3.org>
- CC: public-rif-wg@w3.org
Sandro Hawke wrote: >> I agree we can, though asn06 has the virtue of compactness. In >> particular expressing "list of" is a pain in OWL full (and worse in OWL DL). > > Can you summarize or send me a pointer to the best way or ways of saying > "list of"? That's kind of where I got bogged down, not sure of the > correct way to do it here. One (OWL/full) idiom is: :R a owl:Class . :RList a owl:Class; rdfs:subClassOf rdf:List, [ a owl:Restriction; owl:onProperty rdf:first; owl:allValuesFrom :R], [ a owl:Restriction; owl:onProperty rdf:rest; owl:allValuesFrom :RList ] . rdf:nil a :RList . Some people don't like having the empty list as a member of typed lists and use something more like: :R a owl:Class . :RList a owl:Class; rdfs:subClassOf rdf:List, [ a owl:Restriction; owl:onProperty rdf:first; owl:allValuesFrom :R], [ a owl:Restriction; owl:onProperty rdf:rest; owl:allValuesFrom [a owl:class owl:unionOf (rdf:nil :RList)] ]] . also OWL/full. To do something like this in OWL/DL you are not allowed to reuse the rdf:List vocabulary and so have to invent a new base level List/first/rest/nil vocabulary terms. All of which is largely irrelevant to the purpose at hand and best hidden behind a mapping to a simpler notation. Dave
Received on Tuesday, 21 November 2006 14:25:17 UTC