Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/17/84; site bcsaic.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!cornell!uw-beaver!ssc-vax!bcsaic!shebs From: shebs@bcsaic.UUCP (stan shebs) Newsgroups: net.ai Subject: Re: Carl E. Hewitt's ``Prolog will fail...so will LOGIC...'' Message-ID: <222@bcsaic.UUCP> Date: Tue, 20-Aug-85 12:35:54 EDT Article-I.D.: bcsaic.222 Posted: Tue Aug 20 12:35:54 1985 Date-Received: Sat, 24-Aug-85 17:28:58 EDT References: <9955@ucbvax.ARPA> <782@water.UUCP> Reply-To: shebs@bcsaic.UUCP (stan shebs) Organization: Boeing Computer Services AI Center, Seattle Lines: 95 Summary: Just a few remarks to clarify and extend Randy's response: >> Prolog (like APL before it) will fail as the foundation for Artificial >> Intelligence because of competition with Lisp. There are commercially >> viable Prolog implementations written in Lisp but not conversely. > > Is there anyone around who claimed that APL would be the foundation for > AI? Will they admit it? I seem to remember a paper or two about somebody doing lists in APL, as a start towards an AI language. The name Q'nial comes to mind, but I couldn't locate any references... >...there is now much research directed at understanding >how the virtues of logic and functional programming can be combined >(e.g., see Joe Goguen's work). Some of us even spend a little time thinking about combining open systems (= object-oriented programming) in there too! Neither logic OR functional programming seem to address Hewitt's concerns about distributed computation properly. In fact, while there are known methods for distributing functional programs over multiple machines (such as Keller's Rediflow and others), similar attempts for logic and rule-based programs have been disappointing. Evaluation of logic programs appears to require uncomfortably close coupling of the entire database during computation, while open systems support a high degree of independence. >> LOGIC as a PROGRAMMING Language will fail as the foundation for AI because: I believe this is too strong a statement to make without a host of caveats. >>1. Logical inference cannot be used to infer the decisions that need to be >> taken in open systems because the decisions are not determined by >> system inputs. > >One can compute what is computable with ``LOGIC.'' One can compute what is computable with 8086 machine language; that doesn't mean that it's always a good idea. Computation in an open system can be imitated by an appropriate logic program. The sore point is that in order to write the logic program, one must make some pretty wild assumptions about the "state" of a distributed program in execution. People who study distributed systems aren't willing to make those kinds of assumptions, and get upset with those who do... >>2. Logic does not cope well with the contradictory knowledge bases inherent >>in open systems. It leaves out counterarguments and debate. > >My first reaction is to say ``neither do humans,'' followed by ``what >other method of reasoning about the world does?'' The use of logic is >for expedience, not for promulgating dogma. There is nothing about logic >that precludes one from positing a theory of counterargument or debate; >if one has such a theory? There are even systems that use deduction to >construct consistent knowledge bases, and that attempt to reason with >multiple (possibly inconsistent) knowledge bases. There is nothing >about logic that precludes one postulating a theory of how to reason > from multiple inconsisten knowledge bases. A quicky hack to combine logic programming and open systems models each knowledge base as an object. Within each object everything is logically consistent; objects may be mutually inconsistent. They communicate via messages as usual. A real solution would be more sophisticated... >> 3. Taking action does not fit within the logic paradigm. >> >There is a lot left to learn about the semantics of destructive >assignment, and a computation theory of action. However the ``logic >paradigm,'' at least in AI, is to use logic as a methodology for >developing computational formalisms for reasoning about the world. >Briefly, it provides a way to talk about what our symbols mean, and >a way to talk about what our programs are supposed to do (so that we can >can compare that with what they really do). This is a reasonable position. However, many proponents of logic want to use it for *everything*, down to and including the appending of lists and testing of set membership. I personally believe that while logic is a key component of the AI toolbox, we should keep an eye out for other types of representation. Pliers are useful, but that doesn't mean they make a good drill press! >I think everyone should re-read Pat Hayes IJCAI '77 article entitled ``In >defence of logic'' to help balance Hewitt's opinion. ... and keeping in mind that there is probably no "right" answer in the ongoing controversy... >Randy Goebel >Logic Programming and Artificial Intelligence Group >University of Waterloo stan shebs Boeing AI Center and PASS Group, U. Utah