[SCL] (SCL) Seqvars revisited
pat hayes
phayes at ai.uwf.edu
Wed Dec 18 10:05:50 CST 2002
I'm more and more coming to think that KIF bit off more than anyone
could chew, and a lot more than Mike Genesereth thought he was biting
off, when it just threw seqvars into the syntax. You say you need
them, Bill, but they were always slated for demolition in CL, if you
recall, on the grounds that nobody really knew what they meant. Mike
G insisted that without them you couldn't possibly quantify over
variadic relations, which seemed right, and then Chris and I figured
out that you could see them as abbreviations for infinitary
expressions, and since then we theoreticians have been happy as pigs
in s**t but the implementers have been depressed and wishing they had
never come to the party.
I think that we can get the benefits without the unworkable bad side
of them if we take a little more trouble and treat them explicitly as
sequences with a fixedpoint semantics a la LISP, which is after all
what the old KIF obviously had in mind, since it used LISP *as* its
syntax. This is what the implementers are asking for, and its what
the RDF/OWL axis has done (in a horribly ugly way, but leave that
aside for now.) I seem to see a convergence here between the demands
of theory and those of practice, which is very encouraging.
What everyone wants, I think, is the freedom to have variadic
relations and to quantify into them in neat ways and so on, PLUS the
ability to use recursion and to assume that intuitively recursive
constructions do in fact define what any sane LISP hacker would take
them to be defining. Right now, neither KIF nor CL actually has that
latter property, in fact - it requires a kind of induction principle
in CL which goes beyond the FO MT and needs a genuinely infinitary
axiom to state in the language - but if we were to look these things
in the face honestly, then I think we could get that in a clean way
which would also provide a clean semantics and a better metatheory
with a closer link between MT and proof theory. And we can always
leave CL infinitary-ivory-tower clean and have SCL be a worldly
recursive special case of it, if y'all prefer.
Heres a sketch. A relational atom is treated in CL basically as a
predication on tuples, right now, if you check the semantics, and
seqvars are actually a kind of schema for talking about tuples of
arbitrary length by implicitly quantifying over all finite tuples at
once. The key point here is that 'finite' which we kind of cheat
with, since we say its finite since its all in the syntax; but the
seqvars are using this to define a range of a *quantifier*. Hence all
the non-FO complexity. OK, so lets stop cheating and get explicit
about where that 'finite' comes from, which is a recursion on the
length of the tuples: you can add another widget to a finite tuple
and it stays finite, and we take the standard fixedpoint of the
obvious recursion. We don't even use the concept of 'finite' in the
metatheory anywhere. Tuples are then something awfully like LISP
lists (cf. KIF) and RDF collections (cf. OWL).
OK, now go back to relational atoms. Lets be up-front about what the
MT is saying: we have tuples now as explicit things, and a relation
is just a set of tuples, and relational atom syntax says this: its a
*unary* predication applied to a *single* argument which is a
sequence, or list if you prefer. Seqvars quantify over the lists,
normal vars are used to quantify over the things in the lists. They
are both perfectly normal quantifiers now, but they contribute to the
truthconditions of the relational atom in different ways. The seqvar
domain is defined recursively and is indeed not FO, but the normal
vars quantify over FO domains in the usual way. Key point: those
lists are NOT definable in any finite ontology, so any SCL *theory*
of lists isn't going to be able to eliminate them (you can describe
them in SCL but only by using them in the description in some way.)
Here's a way to put this into an 'honest' syntax. A relational atom
consists of two things: a term denoting the relation and a list of
terms indicating the arguments. Lists are indicated by writing their
elements inside parentheses. You can quantify over the lists :
R ?y
or over the things in the lists:
R(?y)
The first corresponds to CL syntax (R @y), the second to (R ?y).
Obviously the first only makes sense if ?y is instantiated by a list,
so you can think of it as a sorted quantifier if you like, but its
still just a quantifier.
To write something corresponding to, say, (R ?y @z ?x) in CL, you
need to get explicit about the list structures, and we can introduce
an implicit concatenation-by-adjacency into the syntax, so that this
might look like
R(?y) ?z (?x)
in this 'honest' version. The tail-sequence case is where you only
allow a single list variable in the tail position, obviously, so the
difference only amounts to
(R ..... @x)
R(..... ) ?x
But I don't mean to suggest this syntax seriously, its only to
illustrate the point.
All this is close to being a re-stating of the current CL MT, in
fact, and it could be applied directly to CL as it stands; but in
addition it makes sense of the KIF idea that syntax is LISP-like (and
of the KIF way of slipping the seqvars in by the back door, with an
implicit tail-recusion which doesnt get mentioned anywhere) and of
the RDF/OWL idea that N-ary things are unary (well, binary in RDF,
but never mind) things applied to lists of arguments; and instead of
forcing the metatheory into infinitary languages, it forces us only
into FO + recursion, which I think is where we should always have
been in any case.
Comments??
Pat
PS, BTW it occurs to me that the above syntax allows things like this:
R(?x) ?x
which at first I thought was crazy but in fact makes perfect sense:
it says that the first argument of R is the list of the remaining
arguments, and it does this magically without using recursion :-).
--
---------------------------------------------------------------------
IHMC (850)434 8903 or (650)494 3973 home
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32501 (850)291 0667 cell
phayes at ai.uwf.edu http://www.coginst.uwf.edu/~phayes
s.pam at ai.uwf.edu for spam
More information about the Scl
mailing list