Re: Dealing with qualified expressions in DAML

"Peter F. Patel-Schneider" wrote:

Peter --

I could use another round of clarification on this thread.  This particular
question has come up in the course of implementing a DAML+OIL editor here at SRI.


> 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 far, so good.  To increase my level of comfort, please confirm that the
following is a correct paraphrase of the entire expression above:

(1)
Class CartoonCharacter is a subset of
{{things with at most 1 elephant in their pocket} \intersect
 {things with at most 2 elephants in their pocket} \intersect
 {things with at most 4 elephants in their pocket} \intersect
 {things with at most 1 dynamite in their pocket} \intersect
 {things with at most 2 dynamites in their pocket} \intersect
 {things with at most 4 dynamites in their pocket} \intersect
 {things with at most 1 anvil in their pocket} \intersect
 {things with at most 2 anvils in their pocket} \intersect
 {things with at most 4 anvils in their pocket}}

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

Earlier, you used the word "intersection", and I'd be happy if you'd written the
following just above: "The extension of the restriction is then the intersection of
all of them."  Is that what you are saying, or are you saying something that goes
beyond that?

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

I have to admit the above has me befuddled.  Why should it be so?  Suppose I define
the following 2 classes:

<daml:Class rdf:ID="foo">
  <rdfs:sameClassAs>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#hasInPocket"/>
      <daml:hasClassQ rdf:resource="#Elephant"/>
      <daml:maxCardinalityQ>1</daml:maxCardinalityQ>
    </daml:Restriction>
  </rdfs:sameClassAs>
</daml:Class>

<daml:Class rdf:ID="bar">
  <rdfs:sameClassAs>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#hasInPocket"/>
      <daml:hasClassQ rdf:resource="#Dynamite"/>
      <daml:maxCardinalityQ>2</daml:maxCardinalityQ>
    </daml:Restriction>
  </rdfs:sameClassAs>
</daml:Class>

From what you say above, a DAML+OIL reasoner should be able to infer, from these 2
definitions and (1) above, this:

<daml:Class rdf:about="bar">
  <rdfs:sameClassAs>foo</rdfs:sameClassAs>
</daml:Class>

How does that get to be a legitimate inference?  Intuitively, I can't see a shred
of basis for it.

Thanks,
David Martin

Received on Wednesday, 18 September 2002 01:31:28 UTC