[SCL] Re: [KIF] (SCL) Seqvars revisited
Adam Pease
apease at ks.teknowledge.com
Wed Dec 18 11:39:07 CST 2002
Folks,
Apologies for a somewhat repeated comment, but I think it's relevant. I
haven't followed all of this, but we're using a version of sequence vars
daily in a first order theorem prover. We simply treat them as macros
which expand to a fixed number of variables. I think that gets you all the
practical utility without the theoretical problems.
(=>
(and
(subrelation ?REL1 ?REL2)
(holds ?REL1 @ROW))
(holds ?REL2 @ROW))
would become
(=>
(and
(subrelation ?REL1 ?REL2)
(holds ?REL1 ?ARG1))
(holds ?REL2 ?ARG1))
(=>
(and
(subrelation ?REL1 ?REL2)
(holds ?REL1 ?ARG1 ?ARG2))
(holds ?REL2 ?ARG1 ?ARG2))
etc.
Adam
At 10:05 AM 12/18/2002 -0600, pat hayes wrote:
>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
>
>_______________________________________________
>KIF mailing list
>KIF at philebus.tamu.edu
>http://philebus.tamu.edu/mailman/listinfo/kif
More information about the Scl
mailing list