rggoebel@water.UUCP (Randy Goebel LPAIG) (08/18/85)
> 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 don't believe that the lack of commercially viable LISP implementations written in Prolog has anything to do with the question. Functional programmers already know how BAD LISP is as a functional programming language; in fact, 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). It seems that it is the LISP machine manufacturers who felt the demand for Prolog. You don't suppose that SYMBOLICS would develop the microcode for Prolog if nobody would buy it? > LOGIC as a PROGRAMMING Language will fail as the foundation for AI because: > > 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.'' The notion of deduction that is demonstrated with the Socrates syllogisms is the same as the one that shows how sorting can be done axiomatically. Saying that ``logical inference cannot be used...'' is either claiming that what must be inferred in open systems is not computable, or is based on some fundamental misconception about what logic is? There has been some work on combining meta and object level logics (e.g., Weyrauch, Bowen and Kowalski) which suggest that all is not lost? There has also been some work on viewing the external world as just another knowledge base, with a human serving as transducer...surely Hewitt is not suggesting this is misguided? > 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. > > 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). I think everyone should re-read Pat Hayes IJCAI '77 article entitled ``In defence of logic'' to help balance Hewitt's opinion. Randy Goebel Logic Programming and Artificial Intelligence Group University of Waterloo
shebs@bcsaic.UUCP (stan shebs) (08/20/85)
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