Logic Programming is the proposal to implement systems using mathematical logic. Perhaps the first published proposal to use mathematical logic for programming was John McCarthy’s Advice Taker paper. Planner was the first language to feature ''procedural plans'' that were called by ''pattern-directed invocation'' using ''goals'' and ''assertions''. A subset called Micro Planner was implemented by Gerry Sussman, Eugene Charniak and Terry Winograd and was used in Winograd's natural-language understanding program SHRDLU, Eugene Charniak's story understanding work, 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. The question arose as what the difference was between the procedural and logical approaches. It took several years to answer this question. The upshot is that the procedural approach has a different mathematical semantics (based on the denotational semantics of the Actor model) from the semantics of mathematical logic. There were some surprising results from this research including that mathematical logic is incapable of implementing general concurrent computation even though it can implement sequential computation and some kinds of parallel computation including the lambda calculus. Also along the way a large number of logic programming experiments were carried out although none met with great success. Also classical logic blows up in the face of inconsistent information that is becoming more ubiquitous with the growth of the Internet. Now we are in the midst of a huge paradigm shift to massive concurrency with the advent of Web Services and many-core computer architectures. This paradigm shift enables and requires a new generation of systems incorporating ideas from mathematical logic in their implementation. The result will be that logic programming will be reincarnated. But something is often transformed when reincarnated!