Slide 1

Slide 1 text

Challenges for Logic Programming Steve Miner @miner [email protected] Clojure Conj 2012

Slide 2

Slide 2 text

Prologue Last year at the Conj • Dan Friedman and William Byrd - miniKanren • Ambrose Bonnaire-Sergeant - core.logic (ported by David Nolen) • Jim Duey - recent fork/join work

Slide 3

Slide 3 text

Outline • Personal experience • Historical narrative • Boring filler • Dramatic conflict • Unsatisfying ending

Slide 4

Slide 4 text

Challenge • An objection or query as to the truth of something, often with an implicit demand for proof • Why learn logic programming?

Slide 5

Slide 5 text

25 years ago • A Lisp programmer • Expert systems and planning • Discovered Prolog

Slide 6

Slide 6 text

AALPS • Automated Air Load Planning System • Loadmaster: logistics, restraints, weight, balance • Army-wide standard for cargo-aircraft load planning and analysis • small team of Prolog programmers at SRI

Slide 7

Slide 7 text

Cultural Challenge • Common Lisp • s-exprs, macros, CLOS • full control • Prolog • strange syntax • unification and backtracking

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Logic Programming • inspired by logic • facts, rules, queries • defining relationships between objects • computation is deduction

Slide 11

Slide 11 text

Pearl Fryar

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Art of Prolog • Leon Sterling and Ehud Shapiro,1986 • “In Prolog programming (in contrast, perhaps, to life in general) our goal is to fail as quickly as possible” • Shapiro: Concurrent Prolog • consulted on Fifth Generation Project

Slide 14

Slide 14 text

Benefits • Precise problem statement • Elegance • Declarative semantics • Procedural execution • Flexible and transformable • Verification by proof (maybe)

Slide 15

Slide 15 text

• “Beware of bugs in the above code; I have only proved it correct, not tried it.” Don Knuth

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

The Fifth Generation • Artificial Intelligence and Japan's Computer Challenge to the World • Edward A. Feigenbaum and Pamela McCorduck, 1983

Slide 18

Slide 18 text

Edward Feigenbaum • Knowledge Systems Lab at Stanford • 1994 ACM Turing Award for AI work • IntelliCorp and Teknowledge

Slide 19

Slide 19 text

The Fifth Generation • Japanese Government sponsored (MITI) • Parallel hardware • Prolog based software • Natural language interface • Knowledge Information Processing Systems (KIPS)

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Mixed reactions • Feigenbaum saw US falling behind • IBM didn’t care • Lisp hackers were skeptical • Prolog proponents anticipated success • Europe had cut back on funding CS • DARPA - AI Winter is coming

Slide 22

Slide 22 text

"Development of Logic Programming" • paper by Carl Hewitt, 2008 (many versions) • What went wrong • What was done about it • What it might mean for the future

Slide 23

Slide 23 text

Carl Hewitt • Planner language (1969) • procedural embedding of knowledge • Actor model of computation • Direct Logic (TM) to deal with inconsistency • now visiting professor at Stanford

Slide 24

Slide 24 text

Hewitt on Prolog • “Prolog was basically a subset of Planner that restricted programs to clausal form using backward chaining and consequently had a simpler more uniform syntax.”

Slide 25

Slide 25 text

"The birth of Prolog" • Alain Colmerauer on Planner: • “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.”

Slide 26

Slide 26 text

Hewitt on Planner • backtracking proved to be too rigid and uncontrollable • single global data base which was not modular or scalable • the syntax was not a pretty sight • Prolog is a more controlled approach

Slide 27

Slide 27 text

What Went Wrong • Clausal form hides the underlying structure of the information • Practical domains of knowledge are inconsistent • Proof by contradiction is not a sound rule of inference for inconsistent systems

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Japanese Fifth Generation • Hewitt quoting Robert Kowalski: • Logic Programming was virtually unknown (1980s) • Most of its research activity was in Europe. • Logic programming was to play a central, unifying role in the FGCS Project.

Slide 30

Slide 30 text

Unifying Role of LP • Kowalski: “computation could be subsumed by deduction” • Pat Hayes: “Computation = controlled deduction” • Hewitt disagrees • Fifth Generation as a test case

Slide 31

Slide 31 text

Failure of Fifth Gen • High risk approach • Consortium wasn’t totally committed • Hardware was late • Natural language interaction wasn’t ready • Parallelization and committed choice • Prolog took the blame

Slide 32

Slide 32 text

Logic inspired • languages: Concurrent Prolog, Mercury, Oz, λProlog, Shen, miniKanren, core.logic • Constraint Logic Programming • SAT solvers • Rule-based systems (OPS5, CLIPS, Drools) • Datalog

Slide 33

Slide 33 text

Haskell • Phillip Wadler on Type Inference • “Faith, Evolution, and Programming Languages” on YouTube • Simon Peyton Jones on Data Parallelism • “Harnessing the Multicores” on YouTube

Slide 34

Slide 34 text

Clojure can help • Community • Functional Programming is a good host • Facts, Rules, even Models can be values • Run everywhere + the browser • Concurrency

Slide 35

Slide 35 text

Meeting Challenges • Awareness • Prove usefulness to engineers • Beyond toy problems • Clojure adoption

Slide 36

Slide 36 text

Pearl Fryar

Slide 37

Slide 37 text

References • Hewitt - http://www.aaai.org/Papers/ Workshops/2008/WS-08-14/ WS08-14-003.pdf • Colmerauer - http://reference.kfupm.edu.sa/ content/b/i/the_birth_of_prolog__24094.pdf • Feigenbaum - http://ksl-web.stanford.edu/ people/eaf/ • http://pearlfryar.com • Anderson, D. and Ortiz, C.L. “AALPS: A Knowledge-Based System for Aircraft Loading” IEEE Expert, Winter 1987.

Slide 38

Slide 38 text

The End • Steve Miner • @miner

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

Extras bonus slides

Slide 41

Slide 41 text

John McCarthy • Father of Lisp • Logical approach to AI • Nonmonotonic reasoning • http://www- formal.stanford.edu/jmc/

Slide 42

Slide 42 text

Frame Problem • Minksy's "A Framework for Representing Knowledge" • What stays the same after an action? • Default reasoning, unless abnormal • Circumscription based on minimal models

Slide 43

Slide 43 text

Research work • McCarthy’s context for situational calculus • Meta-level reasoning • Generating rules • Data models or models as data

Slide 44

Slide 44 text

Edsger Dijkstra • “The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don't master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.”

Slide 45

Slide 45 text

H.L. Mencken • “Philosophy first constructs a scheme of happiness and then tries to fit the world to it.”