Re: Dealing with qualified expressions in DAML

response at the end...

"Peter F. Patel-Schneider" wrote:

> From: David Martin <martin@ai.sri.com>
> Subject: Re: Dealing with qualified expressions in DAML
> Date: Tue, 17 Sep 2002 22:32:13 -0700
>
> > "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}}
>
> Yes, but there is even more said above.
>
> > >
> > > >
> > > > 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?
>
> There is something more, which is the point of not saying it like you said it.
>
> > >
> > > 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?
>
> Because that is the way it has to work.
>
> There is no point in trying to think of an intuitive reason for all this,
> it is a necessary consequence of the way RDF works and doesn't have to be
> intuitive.
>
> > 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>
>
> No, because there are two daml:Restrictions.
>
> > How does that get to be a legitimate inference?  Intuitively, I can't see a shred
> > of basis for it.
>
> It is not a legitimate inference.
>

Thanks.  I'm relieved that it's not a legitimate inference.  But then I have to admit I
still can't make sense of your statement:

(2) "a side effect is to assert that each of the restrictions thus formed has the same
extension. ."

Clearly we understand one or more of the words in (2) differently - and I suspect it has
to do with "side effect" and "assert".

I'm not that concerned to get additional clarification; you've already addressed our
questions with respect to our tool building effort.  (Again, thanks.)  But if you feel
like giving additional clarification, I would suggest that you do one of the following:

(a) state in a formal notation some legitimate inference from the CartoonCharacter class
definition above, which illustrates your statement (2), but is *not* illustrative of "The
extension of the restriction is then the intersection of all of them."

(b) explain some practical consequence of (2) - say, for a parser builder

OR

(c) Give a pointer to a paper or other document that explains the idea behind (2).

Regards,
David Martin

Received on Wednesday, 18 September 2002 10:59:10 UTC