[net.ai] Carl E. Hewitt's ``Prolog will fail...so will LOGIC...''

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