Re: existential answers to queries (was: Re: on behalf of sandro)

From: Ian Horrocks (horrocks@cs.man.ac.uk)
Date: 10/25/01


I think that we are now in danger of conflating the query language
with a dialogue that some application might have with a user given the
existence of a DAML+OIL reasoner with the kind of query language I
thought we were discussing. The kind of query language structure I
described in my previous message (which I thought was roughly what we
have been talking about up to now) would be able to power the
dialogues Pat described, but are we really imagining building all this
extra stuff into it? 

E.g., in Pat's second example we could answer the question using the
two queries "return me all the instances of the class of soups with
things in them" and "return me all the instances of the class of
things that are in MySoup" - if MySoup is in the first set we can
return the second set, or "don't know" if it is empty (actually, Pat's
dialogue seems a bit broken at this point as there may be many things
in the soup, some/all of which we can name and some/all of which we
can't).

Ian



On October 24, Deborah McGuinness writes:
> comments inline below  but I think this discussion supports a position i
> believe in - answers should be interactive - a user should be able to get
> more information about portions of the answer.
> 
> support below:
> 
> Pat Hayes wrote:
> 
> > >  >>And then we have the query: "is there anything with any color?", or
> > >>>RDF(?x, color, ?y).
> > >>>
> > >>>Do we get back
> > >>>
> > >>>(a) 1 triple
> > >>>
> > >>>   <patsCar> <color> <blue>.
> > >>>
> > >>>or (b) 2 triples
> > >>>
> > >>>   <patsCar> <color> <blue>.
> > >>>   _:b <color> <red>.
> > >>>
> > >>>(where I've changed the _:a to _:b just to emphasise that it is an
> > >>>arbitrary term, and its scope does not carry over from the knowledge
> > >>>base to the response).
> > >>>
> > >>>or (c) 2 triples with genid (skolem constant)
> > >>>
> > >>>   <patsCar> <color> <blue>.
> > >>>   <reasonerCreatedSymbol79878687> <color> <red>.
> > >>>
> > >>>If everyone actually is happy with (b), then we were in fact in
> > >>>violent agreement.  If not, then there's a real issue here.
> > >
> > >If we accept that we can say in rdf "exists x (RDF(x, color, red))",
> > >then I indeed have been arguing for (a) rather than (b) or (c).
> > >
> > >It seems to me that (b) and (c) are saying that we will allow an answer
> > >to a query to contain a binding of a query variable to a constant
> > >created to represent an existential variable.  As I think Pat is
> > >pointing out, that makes sense only if the answer is constructed so that
> > >it is clear which constants represent existential variables, and that
> > >for query body instances to be entailed by the KB, the constants in the
> > >answers that represent existential variables need to be appropriately
> > >replaced by existential variables.
> >
> > I wouldn't phrase it quite that way. If the KB uses *constants* then
> > they are perfectly OK as bindings to query variables, right? The
> > issue is what to do if the KB has an existential *variable* in it (eg
> > an anonNode in RDF, say) and the query-answering process would
> > 'succeed' only if it were able to bind this existential to an answer
> > variable. Notice that it would be fine to bind it to a variable in
> > the query that is not an answer variable, as Ian pointed out in the
> > telecon; so its not that the binding itself is logically invalid,
> > only that it wouldn't be correct to deliver that variable as an
> > answer (bound to a query variable), because that delivery - from the
> > KB to the query engine - would take the name outside its scope. So,
> > if we were to block the delivery of the local name from the KB to the
> > query engine, in effect what the KB would be saying would be
> > something like : 'your query is true, and I have found something that
> > satisfies it, but I'm not going to tell what it is.' At which point
> > the 'sensible' thing for the query engine to do is to decide to
> > believe an existential assertion, ie to make up its own local name
> > for the thing that it now knows exists but hasn't been told a name
> > for.
> >
> > >I am ok with that scheme, and so could agree to query variable bindings
> > >in answers that are identified as being gensyms representing existential
> > >variables.
> >
> > I'd say that a gensym was a skolem constant if it was generated by
> > the KB, and that a skolem constant is a perfectly reasonable
> > answer-binding. (The trouble with talking about gensyms in this
> > context is that you have to say who has the licence to generate the
> > sym.  Gensyms are local variables inside the scope 'owned' by the
> > generator of the symbol, and in this discussion there are two
> > different generators, using different sets of rules. )
> >
> 
> I do not think it is so bad to return a gensym  or skolem as long as the user
> can essentially point and click and ask what the system knows about it (or in
> a text based interface  ask say for the parents of it, the color of it, etc.)
> 
> >
> > >Just to check, I presume this would apply to cardinality restrictions as
> > >well.  For example, if the KB says that persons have exactly two values
> > >of property "parent" (because of a cardinality restriction), the KB does
> > >not identify Pat's parent, and we ask the query RDF(Pat parent ?x), then
> > >I presume the complete set of answers would be the triples (Pat parent
> > >_:p1) and (Pat parent _:p2) (or the bindings {[?x _:p1]} and {[?x
> > >_:p2]}) where _:p1 and _:p2 are noted to be existentials.
> >
> > That raises a more general issue, about how much information should
> > be in an 'answer'. If the answer is just a set of bindings, I would
> > say that in this case expecting to get two existentials back from a
> > cardinality restriction is asking for too much. That is like saying
> > 'who is Pat's parent?' and getting the answer 'Don't know, but I know
> > there are two of them'. That really is an answer to a different
> > question, seems to me. Who knows what the KB might know about Pat's
> > parent? Would you expect to get something like 'Don't know, but I
> > know that one of them had an uncle who was once seen talking to
> > someone in the Chinese civil service'?
> 
> i dont think we want to give everything we know about it - that is likely to
> be quite a lot.
> this is where i think followup questions make sense
> 
> >
> >
> > Pat
> >
> > PS. Example to illustrate the above discussion. Two people, K and Q,
> > are talking to each other.
> > 1. Simple existential query:
> > Q: Is there anything in the soup?
> > K: Yes.
> >
> 
> followup might be - would you like to know more about what is in the soup?
> (in one interface i did, we had "obvious" followup questions appear in a pull
> down menu.
> these were based on meta information about what slots were "interesting" for
> classes and then followup questions could be generated for the "interesting"
> slots (along with followups about parents)
> 
> >
> > 2.  Existential query with answer variable binding:
> > Q: Is there anything in the soup, and if so what is it called?
> > K: Yes, but I'm not going to tell you what I call it.
> >
> 
> a followup might say - i do have the following information about it -
> parents  and information on the following 4 properties - would you like some
> of it?
> 
> >
> > 3.  Simple existential query with constant name in the KB:
> > Q: Is there anything in the soup, and if so what is it called?
> > K: Yes, and it is called Fred.
> > Q: What kind of thing is Fred?
> > K: Fred is a frog.
> >
> > The basic difference between 2 and 3 is that because the name is
> > handed across the conversational boundary (ie is in the common ground
> > of the conversation, which is like a global scope that contains both
> > conversationalists), it is possible to ask for more information about
> > it in case 3, but not in case 2. So handing out a name gives the
> > querier a handle with which it can eventually extract more of the
> > information about the entity, even though the KB does not deliver it
> > all at once.
> >
> > --
> > ---------------------------------------------------------------------
> > IHMC                                    (850)434 8903   home
> > 40 South Alcaniz St.                    (850)202 4416   office
> > Pensacola,  FL 32501                    (850)202 4440   fax
> > phayes@ai.uwf.edu
> > http://www.coginst.uwf.edu/~phayes
> 
> --
>  Deborah L. McGuinness
>  Knowledge Systems Laboratory
>  Gates Computer Science Building, 2A Room 241
>  Stanford University, Stanford, CA 94305-9020
>  email: dlm@ksl.stanford.edu
>  URL: http://ksl.stanford.edu/people/dlm/index.html
>  (voice) 650 723 9770    (stanford fax) 650 725 5850   (computer fax)  801
> 705 0941
> 


This archive was generated by hypermail 2.1.4 : 04/02/02 EST