CSE
lec18 Logic Programming

# lec18 Logic Programming -...

• Notes
• PresidentHackerCaribou10582
• 23

This preview shows pages 1–3. Sign up to view the full content.

Logic Programming ========================================================================= (adapted from lecture notes by Henri Casanova and Todd Millstein) =============================== lecture 1 =============================== ------------------------------ introduction ----------------------------- We now turn to a brand new paradigm, called "Logic Programming Languages" -- our vehicle for studying this paradigm is Prolog, whose roots are in logic and on automated theorem proving. Prolog was developed in the 1970s for AI applications. Some such applications have a knowledge base (or database) of facts, from which you'd like to ask queries and deduce other facts. For example, given facts in the knowledge base like "Carnitas is Mexican" and "Mexican food is delicious", then we can deduce "Carnitas is delicious". Prolog probably looks nothing like any language you've seen before. Fundamental difference between Prolog and most other languages: You don't run a Prolog Program Instead, you ask questions and the system attempts to answer them using the rules and facts that it has been given. Logic programs are "declarative": the specification of the desired results are written, rather than how to obtain them. This approach is very good at expressing problems that involve searching a large space of possibilities. For example, given a list of cities and distances between them, find me the shortest route that passes through each one once (the travelling salesman problem). The philosophy of this approach is that it is often hard to specify a search algorithm -- and in such cases, it is easier to specify the characteristics of the solution. To do so, you specify *facts* and *rules* for deducing new facts from old facts, and then a *query*. So you just state what is true and then ask what (else) is true. The language implementation figures out how to actually compute appropriate solutions. Use the travelling salesman problem as an illustration: I say the constraints, not how to search the space of possible solutions. Of course, as we will see, this is a simplification, and often for reasons of efficiency, one has to impose constraints on the search. The original and principal applications for Prolog are in various AI settings such as (expert databases). Examples include using prolog-based databases to determine when credit card fraud has occurred (prolog is used to specify rules that indicate when a fraud occurs), and there are (1 of 23) [2/13/2008 5:16:44 PM]

This preview has intentionally blurred sections. Sign up to view the full version.

projects afoot to use ideas from prolog to determine suspicious people from phone/communication patterns. Note that currently AI researchers devise statistical techniques to complement (if not replace) logical approaches for such tasks. Another big application is as a database query language. E.g., my facts are things like the daily stock prices of various stocks over the last year. Queries can be things like: find me all pairs of stocks that had the same price on the same day at least 50 times this year.
This is the end of the preview. Sign up to access the rest of the document.
• Fall '06
• Jhala
• C Programming, Parent, Query language, Datalog, XPath

{[ snackBarMessage ]}

### What students are saying

• As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran Temple University Fox School of Business ‘17, Course Hero Intern

• I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana University of Pennsylvania ‘17, Course Hero Intern

• The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

Jill Tulane University ‘16, Course Hero Intern