www.jntuworld.com G.
NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Unit-VIII Logic Programming Languages
Topics
Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming The Origins of Prolog The Basic Elements of Prolog Deficiencies of Prolog Applications of Logic Programming
Introduction
Logic programming languages, sometimes called declarative programming
languages
Express programs in a form of symbolic logic Use a logical inferencing process to produce results Declarative rather that procedural:
them)
Only specification of results are stated (not detailed procedures for producing
Proposition
A logical statement that may or may not be true
Symbolic Logic
Consists of objects and relationships of objects to each other
Logic which can be used for the basic needs of formal logic:
Express propositions Express relationships between propositions Describe how new propositions can be inferred from other propositions
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Particular form of symbolic logic used for logic programming called predicate
calculus Object Representation
Objects in propositions are represented by simple terms: either constants or
variables
Constant: a symbol that represents an object Variable: a symbol that can represent different objects at different times
Different from variables in imperative languages
Compound Terms
Atomic propositions consist of compound terms Compound term: one element of a mathematical relation, written like a
mathematical function
Mathematical function is a mapping Can be written as a table
Parts of a Compound Term
Compound term composed of two parts
Functor: function symbol that names the relationship Ordered list of parameters (tuple)
Examples:
student(jon) like(seth, OSX) like(nick, windows) like(jim, linux)
Forms of a Proposition
Propositions can be stated in two forms:
Compound proposition:
Fact: proposition is assumed to be true Query: truth of proposition is to be determined
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Have two or more atomic propositions Propositions are connected by operators
Logical Operators
Name negation conjunction disjunction equivalence implication a a a a a Symbol Example a b b b b b Meaning not a a and b a or b a is equivalent to b a implies b b implies a
Quantifiers
Name universal existential Example X.P X.P Meaning For all X, P is true There exists a value of X such that P is true
Clausal Form
Too many ways to state the same thing Use a standard form for propositions Clausal form:
B1
means if all the As are true, then at least one B is true
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
B2
Bn
A1
A2
Am
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Antecedent: right side Consequent: left side
Predicate Calculus and Proving Theorems
A use of propositions is to discover new theorems that can be inferred from
known axioms and theorems
Resolution: an inference principle that allows inferred propositions to be
computed from given propositions Resolution
Unification: finding values for variables in propositions that allows matching
process to succeed succeed
Instantiation: assigning temporary values to variables to allow unification to After instantiating a variable with a value,
Theorem Proving if matching fails, may need to backtrack and instantiate with a different value
Basis for logic programming When propositions used for resolution, only restricted form can be used Horn clause - can have only two forms
Headed: single atomic proposition on left side Headless: empty left side (used to state facts)
Overview of Logic Programming
Most propositions can be stated as Horn clauses Declarative semantics
Programming is nonprocedural
form of the result
There is a simple way to determine the meaning of each statement Simpler than the semantics of imperative languages Programs do not state now a result is to be computed, but rather the
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
The Origins of Prolog
University of Aix-Marseille University of Edinburgh
Natural language processing Automated theorem proving
Terms
Edinburgh Syntax Term: a constant, variable, or structure Constant: an atom or an integer Atom: symbolic value of Prolog Atom consists of either:
a string of letters, digits, and underscores beginning with a lowercase letter a string of printable ASCII characters delimited by apostrophes
Terms: Variables and Structures
Variable: any string of letters, digits, and underscores beginning with an
uppercase letter
Instantiation: binding of a variable to a value Structure: represents atomic proposition
functor(parameter list) Fact Statements
Lasts only as long as it takes to satisfy one complete goal
Used for the hypotheses Headless Horn clauses
female(shelley). male(bill). father(bill, jake).
Rule Statements
Used for the hypotheses
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Headed Horn clause Right side: antecedent (if part)
Left side: consequent (then part)
May be single term or conjunction Must be single term
Conjunction: multiple terms separated by logical AND operations (implied)
Example Rules ancestor(mary,shelley):- mother(mary,shelley).
Can use variables (universal objects) to generalize meaning:
parent(X,Y):- mother(X,Y). parent(X,Y):- father(X,Y). grandparent(X,Z):- parent(X,Y), parent(Y,Z). sibling(X,Y):- mother(M,X), mother(M,Y), father(F,X), father(F,Y).
Goal Statements
For theorem proving, theorem is in form of proposition that we want system
to prove or disprove goal statement
Same format as headless Horn
man(fred)
Conjunctive propositions and propositions with variables also legal goals
father(X,mike) Inferencing Process of Prolog
Queries are called goals If a goal is a compound proposition, each of the facts is a subgoal To prove a goal is true, must find a chain of inference rules and/or facts.
For goal Q: B :- A C :- B Q :- P
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Process of proving a subgoal called matching, satisfying, or resolution
Approaches
Bottom-up resolution, forward chaining
that leads to goal
Begin with facts and rules of database and attempt to find sequence Works well with a large set of possibly correct answers Begin with goal and attempt to find sequence that leads to set of facts
in database
Top-down resolution, backward chaining
Prolog implementations use backward chaining
Subgoal Strategies
Works well with a small set of possibly correct answers
When goal has more than one subgoal, can use either
Depth-first search:
working on others
find a complete proof for the first subgoal before
Prolog uses depth-first search
Backtracking
Breadth-first search: work on all subgoals in parallel Can be done with fewer computer resources
With a goal with multiple subgoals, if fail to show truth of one of subgoals,
reconsider previous subgoal to find an alternative solution: backtracking
Begin search where previous search left off Can take lots of time and space because may find all possible proofs to every
subgoal Simple Arithmetic
Prolog supports integer variables and integer arithmetic
left operand
is operator: takes an arithmetic expression as right operand and variable as
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Not the same as an assignment statement!
Example speed(ford,100). speed(chevy,105). speed(dodge,95). speed(volvo,80). time(ford,20). time(chevy,21). time(dodge,24). time(volvo,24). distance(X,Y) :speed(X,Speed), time(X,Time), Y is Speed * Time. Trace
A is B / 17 + C
Built-in structure that displays instantiations at each step Tracing model of execution - four events:
Call (beginning of attempt to satisfy goal) Exit (when a goal has been satisfied) Redo (when backtrack occurs) Fail (when goal fails)
Example likes(jake,chocolate). likes(jake,apricots). likes(darcie,licorice). likes(darcie,apricots). trace. likes(jake,X), likes(darcie,X).
List Structures PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
Other basic data structure (besides atomic propositions we have already
seen): list
List is a sequence of any number of elements Elements can be atoms, atomic propositions, or other terms (including other
lists) [apple, prune, grape, kumquat] [] (empty list) [X | Y] (head X and tail Y) Append Example append([], List, List). append([Head | List_1], List_2, [Head | List_3]) :append (List_1, List_2, List_3). Reverse Example reverse([], []). reverse([Head | Tail], List) :reverse (Tail, Result), append (Result, [Head], List). Deficiencies of Prolog
Resolution order control The closed-world assumption The negation problem Intrinsic limitations
Applications of Logic Programming
Relational database management systems Expert systems Natural language processing
Summary
Symbolic logic provides basis for logic programming Logic programs should be nonprocedural Prolog statements are facts, rules, or goals Resolution is the primary activity of a Prolog interpreter Although there are a number of drawbacks with the current state of logic
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com
www.jntuworld.com G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT
www.jwjobs.net
Principles of Programming Language
programming it has been used in a number of areas
PDF Watermark Remover DEMO : Purchase from www.PDFWatermarkRemover.com to remove the watermark www.jntuworld.com