Re: DQL Query Patterns and Variable Bindings

From: Richard Fikes ([email protected])
Date: 12/13/01

In this message, I will reply to your comments on my overview of what's
in a query and in a query response.  I will comment on your proposed use
of continuations in a following message.

> >
> >* Knowledge Base - I think we are all agree that a query is posed with
> >respect to a DAML+OIL knowledge base.  Thus, a query needs to include a
> >reference to a DAML+OIL knowledge base.  I am referring to that
> >knowledge base as the "query KB".
> It would make more sense to call it the 'server KB'.
> Do we in fact want to assume that there is a unique KB for each 
> query? Eg consider a 'services' setting in which a query can be 
> published, meaning 'any site that can prove this, give me an answer'. 
> The RDF core WG considered such a possibility, where one might 
> publish a piece of RDF that said, in effect, please prove that I can 
> get flowers from you amounting to this quantity before this date at 
> less than this price (and then you and I have a deal).
> This might well be a natural way to deal with 'queries', in fact, in 
> a commercial B2B context; the logic is the same, so why not allow it 
> as a possibility? In other words, such a publication is a kind of 
> open-ended query in which the KB - ie the identification of the KB - 
> is itself part of the answer.

Interesting.  I have been thinking of a query as asking what is entailed
by a given logical theory.  I think you are suggesting that we expand
that notion to include asking what is true in some domain of discourse
like our consensus reality.  That would mean, for example, that a query
could ask "Who is the Chief Justice of the U.S. Supreme Court" (to take
a random example), or as you suggest, ask a query about a Web service. 
If we do that expansion, what constitutes a correct answer to such a
query.  What if a server said that I was Chief Justice of the U.S.
Supreme Court?  When a query is about entailment in a given logical
theory, we know what the test is for correctness of an answer.  I don't
know what a query is about when it is not with respect to a given
logical theory.  Of course, an easy case is where a knowledge base is
not specified in the query but is specified in a query answer so that
the answer specifies a sentence that is entailed by the knowledge base
that is referred to in the answer.

> >* Premise - I have proposed that a query optionally include a premise to
> >facilitate if-then queries while still remaining within the
> >expressiveness of DAML+OIL.  Specifically, I have proposed that a
> >premise be an arbitrary DAML+OIL knowledge base.  There has been no
> >formal agreement on whether or not DQL will allow a "query premise".
> I would vote not, in the first draft. It smacks of tiptoeing into 
> 'rules' territory, and it ought to be definable in any case by 
> querying a KB containing the premise and an import of the previous KB.

Well, we have discussed this before.  The primary motivation is to allow
queries to be stated using only DAML+OIL (no rules) that hypothesize and
describe objects and then ask a question about the hypothesized objects.

> >answer will include a binding for each distinguished variable.  I am
> >referring to the variables in the query pattern that are not
> >distinguished variables as "non-distinguished variables".
> undistinguished variables?

>From a quick check on the Web, I find them being called
"nondistinguished variables".

> >
> >* Query - The query to which this is a response.
> >
> >* Server - The server that produced this response.
> ? This seems rather like having a piece of code sign its name to 
> everything it does. Surely, if I am querying a KB, I already know 
> what the query was. Why do I need to be told this again?
> BUt in any case, what exactly *is* the 'server' here? You seem to be 
> assuming that servers are genuine things on the web, but that seems 
> to be something that we havn't really decided on yet. How does DAML 
> refer to agents, so it can express this response? (Or indeed to 
> queries, for that matter)?

I was assuming that a server has a URI.

I suppose it is not critical that a query response contain a pointer to
the query to which it is a response, but it certainly needs to contain a
pointer to the server, since the answers contained in a response are
server-specific in that those are the answers that that server did
produce to the query.  (Yes, each answer is correct or not regardless of
who produced it, but the set of answers is server-specific in that those
are the ones that were produced by the server out of all the possible
correct answers.) 

> >* Answers - Zero or more answers to the query.
> Right, but how is 'zero answers' indicated?

I don't see that as being a problem.  A query result would necessarily
have some sort of collection (e.g., a list) of query answers, and if
there are zero answers then that collection would be empty. 


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