From: Pat Hayes ([email protected])
Date: 11/13/01
.....
>It seems to me that the use of a single <blank> binding in query answers
>is inadequate. What I would suggest is needed is a vocabulary of blank
>bindings, say <blank-1>, <blank-2>, ..., that can be used as bindings in
>query answers and that have the semantics of existentially quantified
>variables.
I agree, that is needed for full generality. These are just
existential variables, of course, but the reason for having a special
'blank' term is to indicate that they are not to be understood as
binding to anything inside the KB itself. In other words, the 'blank'
is really an indicator of scope.
[Later, post-telcon: It is interesting to think what their scope
actually is. Seems to me that it has to be something like the
querying process itself, ie the querying and answering take place in
a semantic region within which names can be scoped, and this 'common
ground' of the querying conversation can have names that are private
to it, just as the KB has names that are private to it and cannot be
published. Then each of the protagonists has access to its own
private scope and to the public common ground, and can keep track of
the connections between terms used in both of them, but each does not
have access to the other's private names. So the querier, in making a
query, puts the query variables into the common ground; and the KB -
the answerer - in responding with bindings, puts those bindings into
the common ground. If the KB proves that (exists (?x)<query-1>) then
it will choose a blank-n binding to ?x and put that into the common
ground. The querying agent can then use that name in further queries,
and (as long as the common ground still exists, ie as long as
something is maintaining the state of the transaction) the KB will be
able to retrieve its private bindings, so that if eg a further
query-2 is made, the KB knows that the full query is [?x](<query-1>
and <query-2>). ]
>Such a vocabulary would be used in our example as follows:
>
>A query answer of [x/Ian, y/blank-1] would mean that the following
>sentence is entailed by the query KB:
>
> (exists b1) (P Ian & RC b1 & O Ian b1)
>
>A query result of [[x/blank-1 y/blank-2]] would mean that the following
>sentence is entailed by the query KB:
>
> (exists b1 b2) (P b1 & RC b2 & O b1 b2)
>
>A query result of [[x/blank-1 y/blank-1]] would mean that the following
>sentence is entailed by the query KB:
>
> (exists b1) (P b1 & RC b1 & O b1 b1)
>
>That answer doesn't make sense in the intended interpretation of our
>example query, but I assume it is clear that one could generate an
>example query where such an answer would make sense.
>
>What about a query result of [[x/blank-1 y/blank-2][x/blank-3
>y/blank-4]]? Such a result seems to make sense only when the query asks
>for answers each of which is known to denote a distinct set of objects.
I disagree. That would be a non-monotonic reading. Say rather than
the KB does not know them to be identical, not that it knows them to
be distinct. I think this makes perfect sense in any case: it simple
reports that two different sets of existential bindings have been
found to satisfy the query. Whether or not those two sets of bindings
are known to denote distinct entities is another query.
>(See my proposal in the attachment regarding "Uniqueness of Answers".)
>If the only requirement in the query is that each set of bindings is
>unique (rather than each set of objects denoted by the bindings), then
>the server could generate any number of answers by simply using
>different blank-i bindings.
No; the idea is that each blank in the answer is supposed to reflect
a genuine (and distinct) existential binding in the KB's proof space,
so this kind of behavior would be incorrect. In other words, getting
a 'blank-n' answer is just like getting any other binding as an
answer, in terms of what it means regarding provability and
uniqueness of the bindings; it just says, in effect, I am not going
to tell you the exact binding. So blank-n bindings should be
interpreted exactly like other answer bindings as far as what is
known (and not known) about their uniqueness is concerned.
>If the query does indeed ask for answers
>each of which is known to denote a distinct set of objects, then the
>query result means that the following sentence is (sentences are?)
>entailed by the query KB:
>
> (exists b1 b2 b3 b4) (P b1 & RC b2 & O b1 b2)
> (P b3 & RC b4 & O b3 b4)
>
>and that not both "(equivalentTo b1 b3)" and "(equivalentTo b2 b4)" are
>entailed by the query KB.
I think you mean, both of these are not entailed, right? If so, I
would agree, but would note that 'not being entailed' includes the
trivial case where nothing is known about identity at all.
I would be willing to just say that the answer is noncommittal about
identity, in fact. If someone wants to get more information about
identity (or anything else) then they can ask another query, after
all.
>We might decide that results such as [[x/blank-1 y/blank-2][x/blank-3
>y/blank-4]] are beyond the scope of our query language. However, there
>seem to be cases that are more compelling, such as [[x/Ian
>y/blank-1][x/Ian y/blank-2], meaning Ian owns two red cars, or
>[[x/blank-1 y/blank-2][x/blank-1 y/blank-3], meaning someone owns two
>red cars.
>
>What do you think of this proposal?
Modulo the above comments, fine.
Pat
--
---------------------------------------------------------------------
IHMC (850)434 8903 home
40 South Alcaniz St. (850)202 4416 office
Pensacola, FL 32501 (850)202 4440 fax
[email protected]
http://www.coginst.uwf.edu/~phayes
This archive was generated by hypermail 2.1.4 : 04/02/02 EST