From jimc@MATH.UCLA.EDU Tue Mar 12 21:10:24 2002 Return-Path: X-Sender: jimc@math.ucla.edu X-Apparently-To: lojban@yahoogroups.com Received: (EGP: unknown); 13 Mar 2002 05:10:24 -0000 Received: (qmail 86194 invoked from network); 13 Mar 2002 05:10:24 -0000 Received: from unknown (216.115.97.167) by m10.grp.snv.yahoo.com with QMQP; 13 Mar 2002 05:10:24 -0000 Received: from unknown (HELO bodhi.math.ucla.edu) (128.97.4.253) by mta1.grp.snv.yahoo.com with SMTP; 13 Mar 2002 05:10:24 -0000 Received: from localhost (bodhi.math.ucla.edu [128.97.4.253]) by bodhi.math.ucla.edu (8.8.8/8.8.8) with ESMTP id VAA20009 for ; Tue, 12 Mar 2002 21:10:22 -0800 (PST) Date: Tue, 12 Mar 2002 21:10:30 -0800 (PST) Sender: To: Subject: Re: [lojban] Programming Languages for Lojban In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII From: Jim Carter X-Yahoo-Group-Post: member; u=810565 X-Yahoo-Message-Num: 13658 On Mon, 11 Mar 2002, Invent Yourself wrote: > On Mon, 11 Mar 2002, Robert J. Chassell wrote: > > If one were to try to parse Lojban and use it for the internal workings of > > an inference engine, would Lisp or Prolog be more appropriate? > > > > Lisp is perceived as a more general purpose language than Prolog, so > > it more closely matches Lojban, which is a completely general purpose > > language. To my mind, both Lojban and Prolog are adapted to handling "tuples", which are ordered sets of N (pointers to) referents, each the occupant of one place of a predicate. So far as I know, the following isn't official in Lojban, but it *is* official in -gua!spi: a predicate is defined as an exhaustive list of all its tuples (possibly truly infinite). Of course a person or database is not expected to actually store the whole list, and humans are good at inferring whether a newly seen tuple is in or out of the predicate, using extra-linguistic pattern recognition skills. For storing the relations that the artificial intelligence knows, and for retrieving and transforming them, I think Prolog would be best. Its special feature is the ability to locate tuples matching a pattern, using an optimized engine. But in my experience Prolog is a disaster if asked to do procedural tasks. I don't know all that much about Lisp, but my impression is that it is much more a procedural language. And if its pattern recognition code were written in a highly procedural fashion, the result would be achingly slow. "C", as in the Gnu "C" compiler's implementation, or C++, would be a much better choice for that. James F. Carter Voice 310 825 2897 FAX 310 206 6673 UCLA-Mathnet; 6115 MSA; 405 Hilgard Ave.; Los Angeles, CA, USA 90095-1555 Email: jimc@math.ucla.edu http://www.math.ucla.edu/~jimc (q.v. for PGP key)