Planner programming language
Encyclopedia
Planner is a programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 designed by Carl Hewitt
Carl Hewitt
Carl Hewitt is Board Chair of the International Society for Inconsistency Robustness. He has been a Visiting Professor at Stanford University and the University of Keio. In 2000, he became emeritus in the EECS department at MIT....

 at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and then essentially the whole language was implemented in Popler. Derivations such as QA4, Conniver, QLISP and Ether (see Scientific Community Metaphor
Scientific community metaphor
In computer science, the Scientific Community Metaphor is a metaphor used to aid understanding scientific communities. The first publications on the Scientific Community Metaphor in 1981 and 1982 involved the development of a programming language named Ether that invoked procedural plans to...

) were important tools in Artificial Intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

 research in the 1970s, which influenced commercial developments such as KEE and ART.

Procedural approach versus logical approach

The two major paradigms for constructing semantic software systems were procedural and logical. The procedural paradigm was epitomized by
Lisp [McCarthy et al. 1962] which featured recursive procedures that operated on list structures.

The logical paradigm was epitomized by uniform proof procedure resolution theorem provers
Resolution (logic)
In mathematical logic and automated theorem proving, resolution is a rule of inference leading to a refutation theorem-proving technique for sentences in propositional logic and first-order logic...

 [Robinson 1965]. According to the logical paradigm it was “cheating” to incorporate procedural knowledge [Green 1969].

Procedural embedding of knowledge

Planner was invented for the purposes of the procedural embedding of knowledge [Hewitt 1971] and was a rejection of the resolution
Resolution (logic)
In mathematical logic and automated theorem proving, resolution is a rule of inference leading to a refutation theorem-proving technique for sentences in propositional logic and first-order logic...

 uniform proof procedure paradigm [Robinson 1965], which
  1. Converted everything to clausal form. Converting all information to clausal form is problematic because it hides the underlying structure of the information.
  2. Then used resolution to attempt to obtain a proof by contradiction by adding the clausal form of the negation of the theorem to be proved. Using only resolution as the rule of inference is problematical because it hides the underlying structure of proofs. Also, using proof by contradiction is problematical because the axiomatizations of all practical domains of knowledge are inconsistent in practice.


Planner was a kind of hybrid between the procedural and logical paradigms because it combined programmability with logical reasoning. Planner featured a procedural interpretation of logical sentences where an implication of the form (P implies Q) can be procedurally interpreted in the following ways using pattern-directed invocation:
  1. Forward chaining
    Forward chaining
    Forward chaining is one of the two main methods of reasoning when using inference rules and can be described logically as repeated application of modus ponens. Forward chaining is a popular implementation strategy for expert systems, business and production rule systems...

     (antecedently):
    • If assert P, assert Q
      If assert not Q, assert not P

  1. Backward chaining
    Backward chaining
    Backward chaining is an inference method that can be described as working backward from the goal...

     (consequently)
    • If goal Q, goal P
      If goal not P, goal not Q


In this respect, the development of Planner was influenced by natural deductive
Natural deduction
In logic and proof theory, natural deduction is a kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning...

 logical systems (especially the one by Frederic Fitch
Fitch-style calculus
Fitch-style calculus, also known as Fitch diagrams , is a method for constructing formal proofs used in first-order logic. It was invented by American logician Frederic Brenton Fitch...

 [1952]).

Micro-planner implementation

A subset called Micro-Planner was implemented by Gerry Sussman
Gerald Jay Sussman
Gerald Jay Sussman is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology . He received his S.B. and Ph.D. degrees in mathematics from MIT in 1968 and 1973 respectively. He has been involved in artificial intelligence research at MIT since 1964...

, Eugene Charniak
Eugene Charniak
Eugene Charniak is a Computer Science and Cognitive Science professor at Brown University. He has an A.B. in Physics from The University of Chicago and a Ph.D. from M.I.T. in Computer Science. His research has always been in the area of language understanding or technologies which relate to it,...

 and Terry Winograd
Terry Winograd
Terry Allen Winograd is an American professor of computer science at Stanford University, and co-director of the Stanford Human-Computer Interaction Group...

 [Sussman, Charniak, and Winograd 1971] and was used in Winograd's natural-language understanding program SHRDLU
SHRDLU
SHRDLU was an early natural language understanding computer program, developed by Terry Winograd at MIT from 1968-1970. In it, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "blocks world", essentially a virtual box...

, Eugene Charniak's story understanding work, Thorne McCarty's work on legal reasoning, and some other projects. This generated a great deal of excitement in the field of AI. It also generated controversy because it proposed an alternative to the logic approach that had been one of the mainstay paradigms for AI. At SRI
SRI International
SRI International , founded as Stanford Research Institute, is one of the world's largest contract research institutes. Based in Menlo Park, California, the trustees of Stanford University established it in 1946 as a center of innovation to support economic development in the region. It was later...

, Jeff Rulifson, Jan Derksen, and Richard Waldinger
Richard Waldinger
Richard J. Waldinger is a computer science researcher at SRI International's Artificial Intelligence Center whose interests focus on the application of automated deductive reasoning to problems in software engineering and artificial intelligence...

 developed QA4 which built on the constructs in Planner and introduced a context mechanism to provide modularity for expressions in the database. Earl Sacerdoti and Rene Reboh developed QLISP, an extension of QA4 embedded in INTERLISP
Interlisp
Interlisp was a programming environment built around a version of the Lisp programming language. Interlisp development began in 1967 at Bolt, Beranek and Newman in Cambridge, Massachusetts as BBN LISP, which ran on PDP-10 machines running the TENEX operating system...

, providing Planner-like reasoning embedded in a procedural language and developed in its rich programming environment. QLISP was used by Richard Waldinger
Richard Waldinger
Richard J. Waldinger is a computer science researcher at SRI International's Artificial Intelligence Center whose interests focus on the application of automated deductive reasoning to problems in software engineering and artificial intelligence...

 and Karl Levitt for program verification, by Earl Sacerdoti for planning and execution monitoring, by Jean-Claude Latombe
Jean-Claude Latombe
Jean-Claude Latombe is a French-American roboticist and the Kumagai Professor in the School of Engineering at Stanford University...

 for computer-aided design, by Richard Fikes for deductive retrieval, and by Steven Coles for an early expert system that guided use of an econometric model.

Computers were expensive. They had only a single slow processor and their memories were very small by comparison with today. So Planner adopted some efficiency expedients including the following:
  • Backtracking [Golomb and Baumert 1965] was adopted to economize on the use of time and storage by working on and storing only one possibility at a time in exploring alternatives.
  • A unique name assumption was adopted to save space and time by assuming that different names referred to different objects. For example names like Peking and Beijing were assumed to refer to different objects.
  • A closed world assumption could be implemented by conditionally testing whether an attempt to prove a goal exhaustively failed. Later this capability was given the misleading name "negation as failure" because for a goal G it was possible to say: "if attempting to achieve G exhaustively fails then assert (Not G)."

Control structure controversy

As related in Hewitt [2006], computer memories were very small by current standards because they were expensive, being made of iron ferrite cores at that time. So Planner adopted the then common expedient of using backtracking
Backtracking
Backtracking is a general algorithm for finding all solutions to some computational problem, that incrementally builds candidates to the solutions, and abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution.The classic textbook example...

 control structures to economize on the use of computer memory. In this way, the computer only had to store one possibility at a time in exploring alternatives.

One implementation decision in Micro Planner had unfortunate consequences. Lisp had adopted the programming pun
Type punning
In computer science, type punning is a common term for any programming technique that subverts or circumvents the type system of a programming language in order to achieve an effect that would be difficult or impossible to achieve within the bounds of the formal language.In C and C++, constructs...

 of identifying NIL, the empty list with logical false (at memory location 0) because testing for 0 was faster than anything else. Because of the pun, testing for NIL was extremely common in Lisp programs. Micro Planner extended this pun also to use NIL as a signal to begin backtracking. In Micro Planner, it was common to write programs to perform some operation on every element of a list by using a loop to process the first element of a list, take the rest of the list, and then jump back to the top of the loop to test if the list was empty. If the list tested empty, then the program would go on to do other things. Such a program never made it to testing the empty list after processing all the elements because when the last element was processed and the rest of the list was taken, NIL was returned as a value. The Micro Planner interpreter took this as the signal to begin backtracking and began undoing all the work of processing the elements of the list! People were dumbfounded [Fahlman 1973].

In this and several other ways, backtracking proved unwieldy, helping to fuel the great control structure debate. Hewitt investigated some alternatives in his thesis.

Hairy control structure

According to Hewitt [2006], Peter Landin had introduced an even more powerful control structure using his "J" (for Jump) operator that could perform a non-local goto into the middle of a procedure invocation. In fact the "J" operator could jump back into the middle of a procedure invocation even after it had already returned. Drew McDermott and Gerald Sussman
Gerald Jay Sussman
Gerald Jay Sussman is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology . He received his S.B. and Ph.D. degrees in mathematics from MIT in 1968 and 1973 respectively. He has been involved in artificial intelligence research at MIT since 1964...

 called Landin's concept the "Hairy Control Structure" and used it in the form of a nonlocal goto for the Conniver programming language. Scott Fahlman used Conniver in his planning system for robot construction tasks. This is related to what are now called re-invocable continuations
Continuation
In computer science and programming, a continuation is an abstract representation of the control state of a computer program. A continuation reifies the program control state, i.e...

.

Difficulties in communication were a root cause of the control structure difficulties.

Control structures are patterns of passing messages

Hewitt reported: "... we have found that we can do without the paraphernalia of "hairy control structure" (such as possibility lists, non-local gotos, and assignments of values to the internal variables of other procedures in CONNIVER.)... The conventions of ordinary message-passing seem to provide a better structured, more intuitive foundation for constructing the communication systems needed for expert problem-solving modules to cooperate effectively."

The Actor model
Actor model
In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and...

 provided the foundation for solving the Artificial Intelligence control structure problem. It took considerable time to develop programming methodologies for the Actor model. Indeed, the implementation of the scientific community metaphor
Scientific community metaphor
In computer science, the Scientific Community Metaphor is a metaphor used to aid understanding scientific communities. The first publications on the Scientific Community Metaphor in 1981 and 1982 involved the development of a programming language named Ether that invoked procedural plans to...

 requires sophisticated message passing that is still the subject of research.

The genesis of prolog

Gerry Sussman [Sussman, Winograd and (Charniak
Eugene Charniak
Eugene Charniak is a Computer Science and Cognitive Science professor at Brown University. He has an A.B. in Physics from The University of Chicago and a Ph.D. from M.I.T. in Computer Science. His research has always been in the area of language understanding or technologies which relate to it,...

 1971), Seymour Papert
Seymour Papert
Seymour Papert is an MIT mathematician, computer scientist, and educator. He is one of the pioneers of artificial intelligence, as well as an inventor of the Logo programming language....

 (Minsky
Marvin Minsky
Marvin Lee Minsky is an American cognitive scientist in the field of artificial intelligence , co-founder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy.-Biography:...

 and Papert 1971), and Terry Winograd
Terry Winograd
Terry Allen Winograd is an American professor of computer science at Stanford University, and co-director of the Stanford Human-Computer Interaction Group...

 (Winograd 1971) visited Edinburgh
Edinburgh
Edinburgh is the capital city of Scotland, the second largest city in Scotland, and the eighth most populous in the United Kingdom. The City of Edinburgh Council governs one of Scotland's 32 local government council areas. The council area includes urban Edinburgh and a rural area...

 spreading the news about Micro-Planner and SHRDLU
SHRDLU
SHRDLU was an early natural language understanding computer program, developed by Terry Winograd at MIT from 1968-1970. In it, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "blocks world", essentially a virtual box...

 casting doubt on the resolution uniform proof procedure approach that had been the mainstay of the Edinburgh Logicists. At the University of Edinburgh, Bruce Anderson implemented a subset of Micro-Planner called PICO-PLANNER (Anderson 1972) and Julian Davies (1973) implemented essentially all of Planner.

According to Donald MacKenzie, Pat Hayes
Patrick J. Hayes
Patrick John Hayes or Pat Hayes is a British computer scientist who lives and works in the United States. , he is a Senior Research Scientist at the Institute for Human and Machine Cognition in Pensacola, Florida. He received a B.A. in Mathematics from University of Cambridge and a Ph.D...

 recalled the impact of a visit from Papert to Edinburgh, which had become the "heart of artificial intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

's Logicland," according to Papert's MIT colleague, Carl Hewitt. Papert eloquently voiced his critique of the resolution approach dominant at Edinburgh "...and at least one person upped sticks and left because of Papert." [MacKenzie 2001 pg 82.]

The above developments generated tension among the Logicists at Edinburgh. These tensions were exacerbated when the UK Science Research Council commissioned Sir James Lighthill to write a report on the AI research situation in the UK. The resulting report
Lighthill report
The Lighthill report is the name commonly used for the paper "Artificial Intelligence: A General Survey" by James Lighthill, published in Artificial Intelligence: a paper symposium in 1973....

 [Lighthill
James Lighthill
Sir Michael James Lighthill, FRS was a British applied mathematician, known for his pioneering work in the field of aeroacoustics.-Biography:...

 1973; McCarthy
McCarthy
McCarthy may refer to:* McCarthy * McCarthy, Alaska* McCarthy , an indie pop band* MacCarthy , a Bordeaux wine* McCarthy Tétrault, a Canadian law firm...

 1973] was highly critical although SHRDLU
SHRDLU
SHRDLU was an early natural language understanding computer program, developed by Terry Winograd at MIT from 1968-1970. In it, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "blocks world", essentially a virtual box...

 was favorably mentioned.

Pat Hayes visited Stanford where he learned about Planner. When he returned to Edinburgh, he tried to influence his friend Bob Kowalski to take Planner into account in their joint work on automated theorem proving. "Resolution theorem-proving was demoted from a hot topic to a relic of the misguided past. Bob [Kowalski] doggedly stuck to his faith in the potential of resolution theorem proving. He carefully studied Planner.” according to Bruynooghe, Pereira, Sickmann, and van Emden [2004]. Kowalski [1988] states "I can recall trying to convince Hewitt that Planner was similar to SL-resolution." But Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm. Colmerauer and Roussel recalled their reaction to learning about Planner in the following way:

"While attending an IJCAI convention in September ‘71 with Jean Trudel, we met Robert Kowalski again and heard a lecture by Terry Winograd on natural language processing. The fact that he did not use a unified formalism left us puzzled. It was at this time that we learned of the existence of Carl Hewitt’s programming language, Planner [Hewitt, 1969]. The lack of formalization of this language, our ignorance of Lisp and, above all, the fact that we were absolutely devoted to logic meant that this work had little influence on our later research." [Colmerauer and Roussel 1996]

In the fall of 1972, Roussel implemented a language called Prolog
Prolog
Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of...

 (an abbreviation for PROgrammation en LOGique - French for "programming in logic"). Prolog programs are generically of the following form (which is a special case of the backward-chaining in Planner):
When goal Q, goal P1 and ... and goal Pn


Prolog duplicated the following aspects of Micro-Planner:
  • Pattern directed invocation of procedures from goals (i.e. backward chaining
    Backward chaining
    Backward chaining is an inference method that can be described as working backward from the goal...

    )
  • An indexed data base of pattern-directed procedures and ground sentences.
  • Giving up on the completeness paradigm that had characterized previous work on theorem proving and replacing it with the programming language procedural embedding of knowledge paradigm.


Prolog also duplicated the following capabilities of Micro-Planner which were pragmatically useful for the computers of the era because they saved space and time:
  • Backtracking control structure
  • Unique Name Assumption by which different names are assumed to refer to distinct entities, e.g., Peking and Beijing are assumed to be different.
  • Reification of Failure. The way that Planner established that something was provable was to successfully attempt it as a goal and the way that it establish that something was unprovable was to attempt it as a goal and explicitly fail. Of course the other possibility is that the attempt to prove the goal runs forever and never returns any value. Planner also had a (not expression) construct which succeeded if expression failed, which gave rise to the “Negation as Failure” terminology in Planner.


Use of the Unique Name Assumption and Negation as Failure became more questionable when attention turned to Open Systems [Hewitt and de Jong 1983, Hewitt 1985, Hewitt and Inman 1991].

The following capabilities of Micro-Planner were omitted from Prolog:
  • Pattern-directed invocation of procedural plans from assertions (i.e., forward chaining
    Forward chaining
    Forward chaining is one of the two main methods of reasoning when using inference rules and can be described logically as repeated application of modus ponens. Forward chaining is a popular implementation strategy for expert systems, business and production rule systems...

    )
  • Logical negation, e.g., (not (human Socrates)).


Prolog did not include negation in part because it raises implementation issues. Consider for example if negation were included in the following Prolog program:
not Q.
Q :- P.


The above program would be unable to prove not P even though it follows by the rules of mathematical logic. This is an illustration of the fact that Prolog (like Planner) is intended to be a programming language and so does not (by itself) prove many of the logical consequences that follow from a declarative reading of its programs.

The work on Prolog was valuable in that it was much simpler than Planner. However, as the need arose for greater expressive power in the language, Prolog began to include many of the capabilities of Planner that were left out of the original version of Prolog.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK