From: Richard Fikes ([email protected])
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