Re: Dealing with qualified expressions in DAML

From: John Pacheco <pacheco@AI.SRI.COM>
Subject: Re: Dealing with qualified expressions in DAML
Date: Tue, 17 Sep 2002 12:14:07 -0700 (PDT)

> > > <daml:Class rdf:ID="CartoonCharacter">
> > >   <rdfs:subClassOf>
> > >     <daml:Restriction>
> > >       <daml:onProperty rdf:resource="#hasInPocket"/>
> > >       <daml:hasClassQ rdf:resource="#Elephant"/>
> > >       <daml:maxCardinalityQ>2</daml:maxCardinalityQ>
> > >       <daml:hasClassQ rdf:resource="#Dynamite"/>
> > >       <daml:maxCardinalityQ>4</daml:maxCardinalityQ>
> > >       <daml:hasClassQ rdf:resource="#Anvil"/>
> > >       <daml:maxCardinalityQ>1</daml:maxCardinalityQ>
> > >     </daml:Restriction>
> > >   </rdfs:subClassOf>
> > > </daml:Class>
> > 
> > This is valid DAML+OIL, but it does not mean what you might think that it
> > means. To get the standard meaning of this you need to create an
> > intersectionOf multiple restrictions.
> 
> So what does this code mean then?  How is one to interpret multiple hasClassQ 
> and cardinalityQ tags?
> 
> -John Pacheco

Take all possible ways of combining the pieces that make a complete
DAML+OIL restriction.  The extension of the restriction is then *each* of
them.  

This doesn't sound so weird said like this, but a side effect is to assert
that each of the restrictions thus formed has the same extension.  So, the
above example says that any object that has at most 2 dynamites in its pocket
also has atmost 1 elephant in its pocket, and vice versa.  

Peter F. Patel-Schneider

Received on Tuesday, 17 September 2002 15:45:27 UTC