- From: David Martin <martin@ai.sri.com>
- Date: Tue, 17 Sep 2002 22:32:13 -0700
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- CC: pacheco@ai.sri.com, www-rdf-logic@w3.org
"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