Re: asn06 take 2 (Abstract Syntax as a kind of ontology?)

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