From: Richard Fikes ([email protected])
Date: 12/13/01
> Here's a modification to Richard's suggestion for handling queries. I basically like this proposal. My proposals have included the option of returning answers a batch at a time along with a continuation (aka enumerator). I had been assuming that we would also want to support the case that did not use such continuations. But, I think you make a compelling argument that the other cases can be constructed from the core enumeration mechanism that you describe. Here are some detailed comments. > A query is an expression containing d-variables and nd-variables > which would be legal DAML+OIL when appropriate bindings are made to > the variables. Change "A query is" to "A query includes a query pattern that is". We have not yet decided what else is included in a query (e.g., a knowledge base, premise, request for justifications, etc.). > An answer is a set of bindings to some of the d-variables, with the > understanding that the expression got taking the existential closure > of the expression got by applying those bindings to the query follows > from the KB. An answer may be empty, which simply means that the > existential closure of the query follows from the KB. Notice that > there is no need to have a special 'blank' binding, with this > convention. Interesting. I would certainly welcome getting rid of the "blank" bindings. However, your proposal seems to have two problems: First, the proposal is not sufficiently restrictive in that it allows for answers in which distinguished variables do not have bindings to any of whatever the DAML+OIL equivalent to RDF nodes turns out to be. For example, if the query pattern is "(parentOf Joe ?p)" and ?p is a distinguished variable, a legitimate answer would be the empty set of bindings based only on the cardinality constraint on parents of persons. I thought we agreed on the telecon that we wanted query-answering to mean finding bindings for distinguished variables to "whatever the DAML+OIL equivalent to RDF nodes turns out to be", and that it did not mean determining whether objects exist that satisfy the query pattern. So, your proposal would need to be amended to say something like that the entailed sentence is one in which the unbound distinguished variables can only be bound to (anonymous) nodes in the query KB. Second, the proposal does not require the server to return bindings for the d-variables when it knows them. For example, if the query pattern is "(parentOf Joe ?p)" and ?p is a distinguished variable, a legitimate answer would be the empty set of bindings even in the case where values of parentOf for Joe are asserted in the knowledge base. So, again, I think we want to say that unbound distinguished variables can only be bound to anonymous nodes in the query KB. > (Each answer indicates a distinct proof found by the KB, but there is > no guarantee that each answer represents a distinct set of entities, > so it is not in general valid to infer numbers of distinct answers > from numbers of responses; the task of finding a set of semantically > distinct answers is a different, quite complex inference process.) We have discussed this before. I don't like the idea of defining answers in terms of "distinct proofs". What makes one proof distinct from another? Such a definition will likely vary for varying reasoning algorithms. I would prefer, instead, to say that each set of bindings must be distinct. They don't have to guarantee that they denote different sets of objects, just that the bindings themselves must be distinct. So, all that says is that it would not be acceptable to return the identical set of bindings a second time. Richard
This archive was generated by hypermail 2.1.4 : 04/02/02 EST