Information Exchanged During Query-Answering

From: Richard Fikes (
Date: 09/24/01

DQL 0.1 provides a language for expressing a query to a DAML+OIL
knowledge base and a language for expressing an answer to such a query. 
Although languages for expressing a query and an answer are clearly
needed, they support only a subset of the essential information that
needs to be exchanged during query-answering.  Specifically, they do not
support the following:

 * How many answers to a query does the query asking agent (which we
will refer to as the client) want?  All of them?  At most n?  All that
can be found in k seconds? 

 * What does the query answering agent (which we will refer to as the
server) return when it has been asked for all answers and it concludes
that there are an infinite number of answers?

 * What does the server return when it has found all the answers it can
(or has the resources to find), but doesn't know whether it has found
all possible answers?

 * What does the server return when it knows how many answers there are
(e.g., from a cardinality restriction), but has no object names from the
knowledge base for those answers?  (I.e., is the server to return
anonymous objects as answers to a query?)

 * How does the client ask for the answers "a batch at a time" so that
it can dynamically decide whether it wants the server to produce more

 * How does the client ask for proofs (or other explanatory information)
of the answers provided by the server?

Such requirements would lead us to expand DQL to include what might be
considered to be a set of commands (e.g., "Ask"), each with a set of
arguments and expected return values.  For example, we might posit an
"Ask" command as follows:

  Ask Command

    * Arguments: kb, query premise, query pattern, answers needed
(either a positive integer or "All")

    * Results: answer collection, answer status

       where the answer status has one of three values indicating:

         * The answer collection is all possible answers;

         * There are infinitely many answers and if n answers 
           were requested the answer collection contains as many 
           of the n answers as the server could produce or if all 
           answers were requested the answer collection contains 
           a sampling of answers;

         * The answer collection contains all the answers the server can
produce and there may be more.

We may also want to posit a collection of commands that enables the
client to pose a query and get back a process handle (aka, a
continuation) that can be sent to the server in subsequent commands to
incrementally request answers to the query.

Yulin Li and I have been developing a design for such expansions to DQL
0.1, but rather than send out that design at this point, I propose that
the committee consider the need for such an expansion.  When we reach a
consensus on whether and in what form to address the issues raised in
this message, we can then consider specific design proposals for doing


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