Title: Introduction to Rule-Based Reasoning
1Introduction to Rule-Based Reasoning
2Outline
- Rules as a knowledge representation formalism
- Common characteristics of rule-based systems
- Roadmap of rule-based languages
- Common advantages and limitations
- Example practical application of rules
declarative business rules - History of rule-based systems
- Production Systems
- Term Rewriting Systems
- Logic Programming and Prolog
3Rules as a Knowledge Representation Formalism
- What is a rule?
- A statement that specifies that
- If a determined logical combination of
conditions is satisfied, - over the set of an agents percepts
- and/or facts in its Knowledge Base (KB)
- that represent the current, past and/or
hypothetical future of its environment model, its
goals and/or its preferences, - then a logico-temporal combination of actions
can or must be executed by the agent, - directly on its environment (through actuators)
or on the facts in its KB. - A KB agent such that the persistent part of its
KB consists entirely of such rules is called a
rule-base agent - In such case, the inference engine used by the KB
agent is an interpreter or a compiler for a
specific rule language.
4Rule-Based Agent
Environment
Sensors
Ask
Tell
Retract
- Rule Engine
- Problem class independent
- Only dependent on rule language
- Declarative code interpreter or compiler
Ask
- Rule Base
- Persistant intentional knowledge
- Dependent on problem class, not instance
- Declarative code
Effectors
5Rule Languages Common Characteristics
- Syntax generally
- Extends a host programming language and/or
- Restricts a formal logic and/or
- Uses a semi-natural language with
- closed keyword set expressing logical
connectives and actions classes, - and an open keyword set to refer to the entities
and relations appearing in the agents fact base - Some systems provide 3 distinct syntax layers
for different users with automated tools to
translate a rule across the various layers - Declarative semantics generally based on some
formal logic - Operational semantics
- Generally based on transition systems, automata
or similar procedural formalisms - Formalizes the essence of the rule interpreter
algorithm.
6Rule Languages General Advantages
- Human experts in many domains (medicine, law,
finance, marketing, administration, design,
engineering, equipment maintenance, games,
sports, etc.) find it intuitive and easy to
formalize their knowledge as a rule base - Facilitates knowledge acquisition
- Rules can be easily paraphrased in semi-natural
language syntax, friendlier to experts averse to
computational languages - Facilitates knowledge acquisition
- Rule bases easy to formalize as logical formulas
(conjunctions of equivalences and/or
implications) - Facilitates building rule engine that perform
sound, logic-based inference - Each rule largely independent of others in the
base (but to precisely what degree depends highly
of the rule engine algorithm) - Can thus be viewed as an encapsulated,
declarative piece of knowledge - Facilitates life cycle evolution and composition
of knowledge bases - Very sophisticated, mature rule base compilation
techniques available - Allows scalable inference in practice
- Some engines for simple rule languages can
efficiently handle millions of rules
7Rule Languages General Limitations
- Subtle interactions between rules hard to debug
without - sophisticated rule explanation GUI
- detailed knowledge of the rule engines
algorithm - Especially serious with
- Object-oriented rule languages for combining
rule-based deduction or abduction with
class-based inheritance - Probabilistic rule languages for combining
logical and Bayesian inference - But purely logical relational rule language do
not naturally - Embed within mainstream object-oriented modeling
and programming languages - Represent inherently procedural, taxonomic and
uncertain knowledge - Current research challenge
- User-friendly reasoning engine for probabilistic
object-oriented rules
8Business Rules
- Example of modern commercial application of
rule-based knowledge representation
9Semi-Natural Language Syntaxfor Business Rules
- Associate key word or key phrase to
- Each domain model entity or relation name
- Each rule language syntactic construct
- Each host programming language construct used in
rules - Substitute in place of these constructs and
symbols the associated words or phrase - Example Is West Criminal? in semi-natural
language syntax - IF P is American AND P sells a W to N AND
W is a weapon - AND N is a nation AND N is hostile
- THEN P is a criminal
- IF nono owns a W AND W is a missile THEN west
sells W to nono - IF W is a missile THEN W is a weapon
- IF N is an enemy of America THEN N is hostile
10Roadmap of Rule-Based Languages
11Rewrite Rules Abstract Syntax
Rewrite Rule Base
- plus(X,0) ? X
- fib(suc(suc(N)))
- ? plus(fib(suc(N)),fib(N))
12Rewrite Rules Operational Semantics
13Rewrite Rule Base Computation Example
- plus(X,0) ? X
- plus(X,suc(Y)) ? suc(plus(X,Y))
- fib(0) ? suc(0)
- fib(suc(0)) ? suc(0)
- fib(suc(suc(N)) ? plus(fib(suc(N)),fib(N))
- fib(suc(suc(suc(0)))) w/ rule
e? - plus(fib(suc(suc(0))),fib(suc(0))) w/ rule d?
- plus(fib(suc(suc(0))),suc(0)) w/ rule b?
- suc(plus(fib(suc(suc(0))),0)) w/ rule a?
- suc(fib(suc(suc(0)))) w/ rule
e? - suc(plus(fib(suc(0)),fib(0))) w/ rule c?
- suc(plus(fib(suc(0)),suc(0))) w/ rule b?
- suc(suc(plus(fib(suc(0)),0))) w/ rule a?
- suc(suc(fib(suc(0)))) w/ rule
d? - suc(suc(suc(0)))
14Conditional Rewrite RulesAbstract Syntax
Rewrite Rule Base
Rewrite Rule
RHS
LHS
Condition
2
Term
Equation
- Rule with matching LHS can only be fired if
condition is also verified - Proving condition can be recursively done by
rewriting it to true
15Rewrite Rule Base Deduction ExampleIs West
Criminal?
- Rewrite Rule Base
- criminal(P) ? american(P) ? weapon(W) ? nation(N)
? hostile(N) ? sells(P,N,W) - sells(west,nono,W) ? owns(nono,W) ? missile(W)
- hostile(N) ? enemy(N,america)
- weapon(W) ? missile(W)
- owns(nono,m1) ? missile(m1) ? american(west) ?
nation(nono) ? enemy(nono,america) ? true - A ? B ? B ? A
- A ? A ? A
- Term
- criminal(P)
- american(P) ? weapon(W) ? nation(N) ? hostile(N)
? sells(P,N,W)
w/ rule a - american(P) ? weapon(W) ? nation(N) ? hostile(N)
? owns(nono,W) ? missile(W) w/
rule b - american(P) ? weapon(W) ? nation(N) ?
enemy(N,america) ? owns(nono,W) ? missile(W) w/
rule c - american(P) ? missile(W) ? nation(N) ?
enemy(N,america) ? owns(nono,W) ? missile(W)
w/ rule d - american(P) ? missile(W) ? nation(N) ?
enemy(N,america) ? owns(nono,W)
w/ rule g -
...
w/ rule f - owns(nono,W) ? missile(W) ? american(P) ?
nation(N) ? enemy(N,america)
w/ rule f - true
w/ rule e
16Rewriting Systems Practical Application
- Theorem proving
- CASE
- Programming language formal semantics
- Program verification
- Compiler design and implementation
- Model transformation and automatic programming
- Data integration
- Using XSLT an XML-based language to rewrite
XML-based data and documents - Web server pages and web services (also using
XSLT)
17Production Rules Abstract Syntax
IF (p(X,a) OR p(X,b)) AND
p(Y,Z) AND q(c) AND X ltgt Y AND X gt 3.5 THEN
Z X 12 AND addr(a,c,Z
AND deletep(Y,Z)
Arithmetic Predicate Symbol
Arithmetic Constant Symbol
18Production System Architecture
Fact Base Management Component
Fact Base
Rule Firing Policy Component
Action Execution Component
Pattern Matching Component
Rule Base
Host Language API
Candidate Rules
19Production Rules Operational Semantics
20Conflict Resolution Strategies
- Conflict resolution strategy
- Heuristic to choose at each cycle which of the
matching rule set to fire - Common strategies
- Follow writing order of rules in rule base
- Follow absolute priority level annotations
associated with each rule or rule class - Follow relative priority level annotations
associated with pairs of rules or rule classes - Prefer rules whose LHS match the most recently
derived facts in the fact base - Prefer rules that have remained for the longest
time unfired while matching a fact - Apply control meta-rules that declaratively
specify arbitrarily sophisticated strategies
21Production Rule Base ExampleIs West Criminal?
- Production Rule Base
- IF american(P) AND weapon(W) AND nation(N) AND
hostile(N) AND sell(P,N,W) - THEN addcriminal(P)
- IF owns(nono,W) AND missile(W) THEN
addsells(west,nono,W) - IF missile(W) THEN addweapon(W)
- IF enemy(N,america) THEN addhostile(N)
- Initial Fact Base
- owns(nono,m1)
- missile(m1)
- american(west)
- nation(nono)
- enemy(nono,america)
- nation(america)
22Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(W)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
23Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(W)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
24Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(m1)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(W)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
25Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(m1)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
26Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(m1)
nation(N)
hostile(nono)
sells(P,N,W)
sells(west,nono,W)
missile(W)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enemy(nono,america)
owns(nono,m1)
nation(america)
27Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(m1)
nation(N)
hostile(nono)
sells(P,N,W)
sells(west,nono,W)
missile(m1)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enemy(nono,america)
owns(nono,m1)
nation(america)
28Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(P)
weapon(m1)
nation(N)
hostile(nono)
sells(P,N,W)
sells(west,nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
29Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(P)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
30Production Rule Inference ExampleIs West
Criminal?
criminal(west)?
criminal(west)
weapon(m1)
hostile(nono)
sells(west,nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
31Production Rule Inference ExampleIs West
Criminal?
criminal(west)? yes
criminal(west)
weapon(m1)
hostile(nono)
sells(west,nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
32Properties of Production Systems
- Confluence
- From confluent rule base, same final fact base
is derived independently of rule firing order - Makes values of queries made to the system
independent of the conflict resolution strategy - Termination
- Terminating system does not enter in an infinite
loop - Example of non-termination production rule base
- Initial fact base p(0)
- Production rule base IF p(X) THEN Y X 1 AND
addp(Y) - Any production system which conflict resolution
strategy does not prevent the same rule instance
to be fired in two consecutive cycles is
trivially non-terminating.
33Production System Inference vs.Lifted Forward
Chaining
- Common characteristics
- Data driven reasoning
- Requires conflict resolution strategy to choose
- Which of several matching rules to fire
- Which of several unifying clauses for next Modus
Ponens inference step
- Production System Inference
- Sequential conjunction of actions in rule RHS
- Non-monotonic reasoning due to delete actions
- Matching only Datalog atoms (i.e., atoms which
arguments are all non-functional terms) - Matching ground fact atoms against non-ground
atoms in rule LHS And-Or atom - Neither sound nor complete inference engine
- Lifted Forward Chaining
- Unique conclusion in Horn Clause
- Monotonic reasoning
- Unifying arbitrary first-order atoms, possibly
functional - Unifying two arbitrary atoms, possibly both
non-grounds - Sound and refutation-complete
34Embedded Production System Abstract Syntax
35Generalized Production Rules ECA Rules
- Event-Condition-Action rule extension of
production rule with triggering event external to
addition of facts in fact base - Only the rule subset which event just occurred is
matched against the fact base - Events thus partition the rule base into subsets,
each one specifying a behavior in response to a
given events
Event Condtion Action Rule
LHS
RHS
Event
Agents Percept
HPL Boolean Operation
36Production Rules vs. Rewriting Rules
- Common characteristics
- Data driven reasoning
- Requires conflict resolution strategy to choose
- Which of several matching rules to fire
- Which of several rules with an LHS unifying with
a sub-term - Non-monotonic reasoning due to
- Fact deletion actions in RHS
- Retraction of substituted sub-term
- Tricky confluence and termination issues
- Production System Inference
- Fact base implicitly conjunctive
- Matching only Datalog atoms (i.e., atoms which
arguments are all non-functional terms) - Matching ground fact atoms against non-ground
atoms in rule LHS And-Or atom
- Term Rewriting
- Reified logical connectives in term provide full
first-order expressivity - Unifying arbitrary first-order atoms, possibly
functional - Unifying two arbitrary atoms, possibly both
non-grounds
37Logic Programming a Versatile Metaphor
38Logic Programming Key Ideas
Logical Theory Software Specification Declarative Programming Automated Reasoning Intelligent Databases
Logical Formula Abstract Specification Declarative Program / Data Structure Knowledge Base Database
Theorem Prover Specification Verifier Interpreter / Compiler Inference Engine Query Processor
Theorem Proof Specification Verification Program Execution Inference Query Execution
Theorem Proving Strategy Verification Algorithm Single, Fixed, Problem-Independent Control Structure Inference Search Algorithm Query Processing Algorithm
39Logic programming vision
- Single language with logic-based declarative
semantics that is - A Turing-complete, general purpose programming
language - A versatile, expressive knowledge representation
language to support deduction and other reasoning
services useful for intelligent agents
(abduction, induction, constraint solving, belief
revision, belief update, inheritance, planning) - Data definition, query and update language for
databases with built-in inference capabilities - "One tool solves all" philosophy
- Any computation resolution unification
search - Programming declaring logical axioms (Horn
clauses) - Running the program query about theorems
provable from declared axioms - Algorithmic design entirely avoided (single,
built-in control structure) - Same language for formal specification
(modeling) and implementation - Same language for model checking and code testing
40Prolog
- First and still most widely used logic
programming language - Falls short to fulfill the vision in many
respect - Many imperative constructs with no logical
declarative semantics - No commercial deductive database available
- Most other logic programming languages both
- Extend Prolog
- Fulfill better one aspect of the logic
programming vision - In the 80s, huge Japanese project tried to
entirely rebuild all of computing from ground up
using logic programming as hardware basis
41Pure Prolog abstract syntax
arg
0..1
Pure Prolog Atom
head
body
Function-Free Term
Functional Term
functor
Variable
- parent(al,jim)
- ? parent(jim,joe)
- ? anc(A,D) ? parent(A,D)
- ? anc(A,D) ? parent(A,P) ? anc(P,D)
42Full Prolog
arg
arg
Prolog Literal
Full Prolog Term
Functional Term
predicate
Function-Free Term
functor
Symbol
User-Defined Symbol
Built-in Symbol
Variable
Built-in Logical Symbol
Built-in Imperative Symbol
- Semantics of full Prolog
- Cannot be purely logic-based
- Must integrate algorithmic ones
Meta-Programming Predicate Symbol
Numerical Symbol
I/O Predicate Symbol
Search Customization Predicate Symbol
Program Update Predicate Symbol
43Pure Prolog program declarative formal semantics
- Declarative, denotational, intentional
- Clarks transformation to CFOL formula
- First-order formula semantically equivalent to
program - Declarative, denotational, extentional,
model-theoretic - Least Herbrand Model
- Intersection of all Herbrand Models
- Conjunction of all ground formulas that are
deductive consequences of program
44CFOL x Prolog Semantic Assumptions
- Classical First-Order Predicate Logic
- No Unique Name Assumption (UNA) two distinct
symbols can potentially be paraphrases to denote
the same domain entity - Open-World Assumption (OWA) If KB ? Q but KB
? ?Q , the truth value of Q is considered
unknown - Ex KB true ? core(ai) ? true ? core(se)
? core(C) ? offered(C,T) ?
true ? offered(mda,fall) - Q true ? offered(mda,spring)
- OWA necessary for monotonic, deductively sound
reasoning If KB T then ?A, KB ? A T
- Logic Programming
- UNA two distinct symbols necessarily denote two
distinct domain entities - Closed-World Assumption (CWA) If KB ? Q but KB
? ?Q , the truth value of Q is considered false - Ex ?- offered(mda,spring) fail
- CWA is a logically unsound form of negatively
abductive reasoning - CWA makes reasoning inherently non-monotonic as
one can haveKB T but KB ? A ? Tif the
proof KB T included steps assuming A false by
CWA - Motivation intuitive, representational economy,
consistent w/ databases
45Clarks completion semantics
- Transform Pure Prolog Program P into semantically
equivalent CFOL formula comp(P) - Same answer query set derived from P
(abductively) than from FP (deductively) - Example Pcore(se). core(ai).
offered(mda,fall). offered(C,T) - core(C). -
- ?- offered(mda,spring)
- no
- ?-
- Naive semantics naive(P)?C,T true ? core(ai)
? true ? core(se) ? true ?
offered(mda,fall) ? core(C) ?
offered(C,T) naive(P) ? ?offered(mda,spring) - Clarks completion semantics comp(P)
- ?C,T,C1,T1
- (core(C1) ? (C1ai ? C1se)) ?(offered(C1,T1) ?
(C1mda ? T1fall) ? (?C,T (C1C
? T1T ? core(C)))) ??(aise) ? ?(aimda) ?
?(aifall) ? ?(sefall) ? ?(semda) ?
?(mdafall)Fp ?offered(mda,spring)
46Clarks transformation
- Axiomatizes closed-world and unique name
assumptions in CFOL - Starts from naive Horn formula semantics of pure
Prolog program - Partitions program in clause sets, each one
defining one predicate (i.e., group together
clauses with same predicate c(t1, ..., tn) as
conclusion) - Replaces each such set by a logical equivalence
- One side of this equivalence contains c(X1, ...,
Xn) where X1, ..., Xn are fresh universally
quantified variables - The other side contains a disjunction of
conjunctions, one for each original clause - Each conjunction is either of the form
- Xi ci ? ... ? Xj ci, if the original clause
is a ground fact - ?Yi ... Yj Xi Yi ? ... ? Xj Yj ? p1( ...) ?
... ? pn( ... ) if the original clause is a rule
with body p1( ...) ? ... ? pn( ... ) containing
variables Yi ... Yj - Joins all resulting equivalences in a conjunction
- Adds conjunction of the form ?(ci cj) for all
possible pairs (ci,cj) of constant symbols in
pure Prolog program
47SLD Resolution
- SLD resolution (Linear resolution with Selection
function for Definite logic programs) - Joint use of goal-driven set of support and input
resolution heuristics - Always pick last proven theorem clause with next
untried axiom clause - Always questions last pick even if unrelated to
failure that triggered backtracking - A form of goal-driven backward chaining of Horn
clauses seen as deductive rules - Prolog uses special case of SLD resolution where
- Axiom clauses tried in top to bottom program
writing order - Atoms to unify in the two picked clauses
- Conclusion of selected axiom clause
- Next untried premise of last proven theorem
clause in left to right program writing order
(goal) - Unification without occur-check
- Generates proof tree in top-down, depth-first
manner - Failure triggers systematic, chronological
backtracking - Try next alternative for last selection even if
clearly unrelated to failure - Reprocess from scratch new occurrences of
sub-goals previously proven true or false - Simple, intuitive, space-efficient,
time-inefficient, potentially non-terminating
(incomplete)
48Refutation Resolution Proof Example
- Refutation proof principle
- To prove KB F
- Prove logically equivalent (KB ? F) True
- In turn logically equivalent to (KB ? ? F)
False -
- (american(P) ? weapon(W) ?
- nation(N) ? hostile(N) ?
- sells(P,N,W) ? criminal(P)) //1
- ? (T ? owns(nono,m1)) //2a
- ? (T ? missile(m1)) //2b
- ? (owns(nono,W) ? missile(W) ?
sells(west,nono,W)) //3 - ? (T ? american(west)) //4
- ? (T ? nation(nono)) //5
- ? (T ? enemy(nono,america)) //6
- ? (missile(W) ? weapon(W)) //7
- ? (enemy(N,america) ? hostile(N))
//8 - ? (T ? nation(america)) //9
- ? (criminal(west) ? F) //0
1. Solve 0 w/ 1 unifying P/westamerican(west) ?
weapon(W) ? nation(N) ?hostile(N) ?
sells(west,N,W) ? F //10 2. Solve
10 w/ 4weapon(W) ? nation(N) ? hostile(N)
?sells(west,N,W) ? F
//11 3. Solve 11 w/ 7 missile(W) ? nation(N)
? hostile(N) ?sells(west,N,W) ? F
//12 4. Solve 12 w/ 2b unifying
W/m1nation(N) ? hostile(N) ? sells(west,N,m1) ?
F //13 5. Solve 13 w/ 5 unifying
N/nonohostile(nono) ? sells(west,nono,m1) ? F
//14 6. Solve 14 w/ 8 unifying
N/nonoenemy(nono,america) ? sells(west,nono,m1)
? F //15 7. Solve 15 w/ 6 sells(west,nono,m1) ?
F //16 8. Solve 16 w/ 3 unifying W/m1
owns(nono,m1) ? missile(m1) ? F
//17 9. Solve 17 with 2a missile(m1) ? F
//18 10. Solve 18 with 2b F
49SLD resolution example
criminal(west)?
criminal(P)
american(P)
weapon(W)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
50SLD resolution example
criminal(west)?
criminal(west)
american(P)
weapon(W)
nation(N)
hostile(N)
sells(P,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
51SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
52SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
53SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
54SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
55SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(W)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
56SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(W)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
57SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,W)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
58SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
59SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
60SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
61SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
62SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
63SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
64SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
65SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
66SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
67SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
68SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,W)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
69SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
70SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
71SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
72SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
73SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
74SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
75SLD resolution example
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
76SLD resolution example
criminal(west)? yes
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,m1)
missile(m1)
enemy(nono,america)
owns(nono,m1)
missile(m1)
american(west)
nation(nono)
enermy(nono,america)
owns(nono,m1)
nation(america)
77SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
78SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
79SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
80SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(america)
sells(west,america,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
81SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(america)
sells(west,america,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
82SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(america)
sells(west,america,m1)
sells(west,nono,W)
missile(m1)
owns(nono,W)
enemy(america,america)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
83SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(america)
sells(west,america,m1)
sells(west,nono,W)
enemy(america,america)
missile(m1)
owns(nono,W)
fail
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
84SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(america)
hostile(america)
sells(west,america,m1)
sells(west,nono,W)
backtrack
missile(m1)
enemy(N,america)
owns(nono,W)
fail
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
85SLD resolution example with backtracking
criminal(west)?
criminal(west)
backtrack
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
86SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(N)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
87SLD resolution example with backtracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(N)
sells(west,N,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
88SLD resolution example with bactracking
criminal(west)?
criminal(west)
american(west)
weapon(m1)
nation(nono)
hostile(nono)
sells(west,nono,m1)
sells(west,nono,W)
missile(m1)
enemy(N,america)
owns(nono,W)
missile(m1)
american(west)
nation(america)
enermy(nono,america)
owns(nono,m1)
nation(nono)
89Limitations of Pure Prolog and ISO Prolog
- For programming
- no fine-grained encapsulation
- no code factoring (inheritance)
- poor data structures (function symbols as only
construct) - mismatch with dominant object-oriented paradigm
- not integrated to comprehensive software
engineering methodology - IDE not friendly enough
- scarce middleware
- very scarce reusable libraries or components (ex,
web, graphics) - mono-thread
- For declarative logic programming
- imperative numerical computation, I/O and
meta-programming without logical semantics
- For knowledge representation
- search customization
- No declarative constructs
- Limited support procedimental constructs (cuts)
- no support for uncertain reasoning
- forces unintuitive rule-based encoding of
inherently taxonomic and procedural knowledge - knowledge base updates non-backtrackable and
without logical semantics - ab - assert(a), b.if b fails, a remains as true
90Limitation of SLD resolution engines
- Unsound unification without occur-check
- Incomplete left-recursion
- Correct ancestor Prolog program
- anc(A,D) - parent(A,D).
- anc(A,D) - parent(P,D), anc(A,P).
- Logically equivalent program (since conjunction
is a commutative connective) that infinitely
loops anc(A,D) - anc(A,P), parent(P,D).
anc(A,D) - parent(A,D). - Inefficient
- repeated proofs of same sub-goals
- irrelevant chronological backtracking
91Prologs imperative arithmetics
- fac(0,1) - !.
- fac(I,O) - I1 is I - 1,
- fac(I1,O1), O is I O1.
- ?- fac(1,X).
- X 1
- ?- fac(3,X).
- X 6
- ?- I1 is I -1
- error
- ?- I1 I -1
- I1 I -1
- ?- I 2, I1 I -1
- I1 2 -1
- ?- I 2, I1 is I -1
- I1 1
- Arithmetic functions and predicates generate
exception if queried with non-ground terms as
arguments - is requires a uninstantiated variable on the
left and an arithmetic expression on the right - Relational programming property lost
- Syntax more like assembly than functional !
- is Prologs sole explicit variable assignment
predicate (only for arithmetics) - is a bi-directional, general-purpose
unification query predicate
92Prologs redundant sub-goal proofs
93Extensions of pure Prolog
Aleph
Inductive LP
Abductive LP
Preference LP
Functional LP
Pure Prolog
Constraint LP
ISO Prolog
XSB
High-Order LP
Tabled LP
Transaction LP
Flora
Frame (OO) LP
94Constraint Logic Programming (CLP)
- CSP libraries strengths
- Specification level, declarative programming for
predefined sets of constraints over given domains - Efficient
- Extensive libraries cover both finite domain
combinatorial problems and infinite numerical
domain optimization problems - CSP libraries weaknesses
- Constraint set extension can only be done
externally through API using general-purpose
programming language - Same problem for mixed constraint problems (ex,
mixing symbolic finite domain with real
variables)
- Prologs strengths
- Allows specification level, declarative
programming of arbitrary general purpose problems - A constraint is just a predicate
- New constraints easily declaratively specified
through user predicate definitions - Mixed-domain constraints straightforwardly
defined as predicate with arguments from
different domains - Prologs weakness
- Numerical programming is imperative, not
declarative - Very inefficient at solving finite domain
combinatorial problem
95CLP
- Integrate Prolog with constraint satisfaction and
solving libraries in a single inference engine - Get the best of both worlds
- Declarative user definition of arbitrary
constraints - Declarative definition of arbitrarily mixed
constraints - Declarative numerical and symbolic reasoning,
seamlessly integrated - Efficient combinatorial and optimization problem
solving - Single language to program constraint
satisfaction or solving problems and the rest of
the application
CLP Application Rule Base
CLP Engine
Prolog Engine
...
Procedural Solver for Domain D1
Procedural Solver for Domain Dk
Solver Programming Language L
Prolog/L Bridge