DQL Query Patterns and Variable Bindings

From: Richard Fikes (fikes@ksl.stanford.edu)
Date: 12/10/01


We seem to have reached some significant agreements in last week's
telecon regarding DQL, the query language for DAML+OIL.  This message is
an attempt to record those agreements.

As a prelude, Pat in particular has been asking for an overview of what
is in a DQL query and what is in the response to a query.  We haven't
agreed on all the components of a query or a query response, but
attached below is an outline that hopefully will provide some context
for the agreements we have reached and help clarify what else is to be
done.

Here is what I think we agreed on in last week's telecon:

A query contains a query pattern that specifies a conjunction of
DAML+OIL sentences in which literals and/or resources have been replaced
by variables.  A query includes a specification of which of the
variables in the query pattern are distinguished variables.  A query
answer includes a binding for each distinguished variable such that the
query knowledge base entails the sentence produced by replacing each
distinguished variable  in the query pattern by its binding and
considering the remaining variables in the query pattern to be
existentially quantified.

A binding for a distinguished variable can be one of the following:

* A literal;

* The name of a resource that occurs in the query kb or that is defined
in the DAML+OIL language; or

* A "blank" name that corresponds to an anonymous resource that occurs
in the query kb.

There is a given set of DAML+OIL property names and class names that
cannot be bindings for a distinguished variable in a query answer.  That
set is yet to be specified.


If you disagree with any of the above, I would like for you to be
constructive in your disagreement by providing an edited version of the
above with which you do agree.

Richard

---------------------------------------------------------------------

TERMINOLOGY

I am referring to the agent sending the query as the "client" and the
agent receiving the query as the "server".  I am referring to the
response sent by the server to the client as a "query result" and
assuming that a query result may contain one or more "query answers".

WHAT'S IN A QUERY

* 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".

* 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".

* Pattern - I think we are agreed that a query necessarily contains a
"query pattern" that specifies relationships among unknown sets of
objects in a domain of discourse.  Each unknown object is represented in
the query pattern by a variable.

* Distinguished Variables - I think we all agree that a query
necessarily contains a specification of which of the variables that
occur in the query pattern are "distinguished variables".  Each query
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".

* Number of Answers Requested - I have proposed that a query contain a
specification of how many query answers are being requested and whether
those answers are to be returned all at once or in batches accompanied
by an "enumerator" that allows for requesting the next batch of
answers.  We have not agreed on that proposal nor have we agreed on what
makes two query answers distinct when counting them.

* Justifications Requested - I have proposed that a query can optionally
contain a request for a justification of each query answer.  We have not
agreed on that proposal nor on what a justification for a query answer
is.

* What else?   


WHAT'S IN A QUERY RESPONSE

* Query - The query to which this is a response.

* Server - The server that produced this response.

* Answers - Zero or more answers to the query.

* Number of Answers - I have proposed that a query result optionally
contain a specification provided by the server of the number of answers
to the query that are entailed by the query kb.  We have not agreed on
that proposal.

* What else?   


WHAT'S IN A QUERY ANSWER

* Bindings - I think we all agree that each query answer will contain a
binding for each of the query's distinguished variables.  We have not
agreed on whether bindings for the non-distinguished variables are to be
included in a query answer.

* Justification - If we include a request for justifications in a query,
then each query answer would include a justification when the query
contains such a request.

* What else?


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