Re: Dealing with qualified expressions in DAML

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,
> David Martin

peter

Received on Wednesday, 18 September 2002 05:18:08 UTC