teaching-wiki.sti2.at

Download Report

Transcript teaching-wiki.sti2.at

Intelligent Systems
Predicate Logic – Lecture 3
Prof. Dieter Fensel (& Florian Fischer)
©www.sti-innsbruck.at
Copyright 2008 STI INNSBRUCK www.sti-innsbruck.at
Agenda
• Motivation
• Syntax of First Order Logic
• Semantics of First Order Logic
• Using FOL
• Knowledge engineering in FOL
www.sti-innsbruck.at
2
Motivation
Starting from propositional logic (see last lecture):
 Propositional logic is declarative
– Meaning is Independent of particular evaluation procedure
 Propositional logic allows partial/disjunctive/negated
information
– Unlike most data structures and relational database systems
 Propositional logic is compositional:
– meaning of B1,1  P1,2 is fully derived from meaning of B1,1 and of
P1,2
 Meaning in propositional logic is context-independent
– Statements convey the same meaning every time
 Propositional logic has very limited expressive power
www.sti-innsbruck.at
3
Motivation – Limitations of Propositional
Logic
• Propositional logic assumes the world contains facts that are either
true or false.
• In propositional logic the smallest atoms represent whole
propositions (propositions are atomic)
– Propositional logic does not capture the internal structure of the
propositions
– It is not possible to work with units smaller than a proposition
• Example:
– “A Mercedes Benz is a Car” and “A car drives” are two individual,
unrelated propositions
– We cannot conclude “A Mercedes Benz drives”
• It is possible to represent everything you want in propositional logic
• But often this is not very efficient
www.sti-innsbruck.at
4
Predicate Logic / First-order logic
• Basic idea: A proposition is expressed as predicate
about (on or more) objects in the world
• Propositions are predicates and arguments
– I.e. Car(Mercedes Benz).
• First-order logic (FOL) assumes the world contains:
– Objects: people, houses, numbers, colors, baseball games, wars, …
– Relations: red, round, prime, brother of, bigger than, part of, comes
between, …
– Functions: father of, best friend, one more than, plus, …
One to
one
mapping
www.sti-innsbruck.at
5
Predicate Logic / First-order logic
• Some relations are properties:
– They state some fact about a single object: Round(ball),
Prime(7).
• Some relations are n-ary relations:
– State facts about two or more objects: Married(John,Mary),
Largerthan(3,2).
• Some relations are functions:
– Their value is another object: Plus(2,3), Father(Dan).
www.sti-innsbruck.at
6
Defining First-Order Logic
• As usual for a Logic, FOL is defined in several parts:
– Syntax: Telling us how well-formed formulae can be built from basic
syntactic parts
– A proof theory, consisting of:
• Inference rules:Telling us what kind of conclusions are admissable base on
a set of propositions ((i.e. Modus ponens. see next lecture)
• Axioms: To encode basic assumptions (i.e. equality)
– Semantics: Telling us which interpretations make a formula true
www.sti-innsbruck.at
7
Syntax of FOL
• A First-Order language is formed by the following:
– A finite or countable set R of relation symbols or predicate
symbols, with an integer n associated with symbol. This is
called the arity of the symbol.
– A finite or countable set F of function symbols. Again each
function symbol has a specific arity.
– A finite or countable set C of constant symbols.
– Quantifiers (existential, universal)
– Punctuation ( “(”, “)”, “,”)
– Variables
– The (already known) usual connectives
www.sti-innsbruck.at
8
Syntax of FOL - Examples
•
•
•
•
•
•
•
Constants
KingJohn, 2, UIBK,...
Predicate symbols
Brother, >,...
Function symbolsSqrt, LeftLegOf,...
Variables x, y, a, b,...
Connectives
, , , , 
Equality
=
Quantifiers
, 
www.sti-innsbruck.at
9
Syntax of FOL - Terms
• From basic syntax we define terms:
– Any variable is a term
– Any constant symbol (member of C) is a term
– If f is an n-ary function symbol and t1,…,tn are terms, then f(t1,
…, tn) is a term
term
=
function (term1,...,termn)
or constant or variable
Functions can be
viewed as
complex names
for constants
• E.g., Brother(KingJohn,RichardTheLionheart)
• (Length(LeftLegOf(Richard)) = Length(LeftLegOf(KingJohn)))
www.sti-innsbruck.at
10
Syntax of FOL – Atomic Formulas
• An atomic formula is any string of the form r(t1, …, tn), where
– r is an n-ary relation symbol (a member of R)
– t1, …,tn are terms
Atomic formula
=
predicate (term1,...,termn)
or term1 = term2
Equality is a
special predicate
with a fixed
semantics
• E.g., Brother(KingJohn, RichardTheLionheart)
• (Length(LeftLegOf(Richard)) = Length(LeftLegOf(KingJohn)))
www.sti-innsbruck.at
11
Syntax of FOL – Atomic Formulas
• Formulas in logic state facts that are true or false.
• Properties and n-ary relations do just that:
– GreaterThan(2,3) (means 2>3) is false.
– Brother(Mary,Pete) is false.
• Functions do not state facts and form no sentence:
– Brother(Pete) refers to the object John (his brother) and is neither true
nor false.
• Brother(Pete, Brother(Pete)) is true.
Binary relation
www.sti-innsbruck.at
Function
12
Syntax of FOL – Formulas
• We can again use formulas to form more complex constructs
• Complex sentences are made from atomic sentences using
connectives (just like in propositional logic)
S, S1  S2, S1  S2, S1  S2, S1  S2,
• E.g. :
Sibling(KingJohn,Richard)  Sibling(Richard,KingJohn)
>(1,2)  ≤ (1,2)
www.sti-innsbruck.at
>(1,2)   >(1,2)
13
Syntax of FOL – Example
Brother (LeftLeg (Richard ),John )  (Democrat (Bush ))
binary
relation
function
objects
property
connectives
www.sti-innsbruck.at
14
Semantics of FOL
• Semantics of a logical sentence are described by relating it to a
formal description of a “possible world” called a model
– In propositional logic: A set of true and false propositions (think of a
truth-table)
– In FOL: A set of objects and a set of relations between objects
• Giving meaning to a logical formula is more difficult as the
propositional case:
– We must fix the domain (“what” we are talking about) over which
quantifiers operate
– We must fix the interpretation for constants, function, and relation
symbols (w.r.t this domain)
– We must give an assignment of values to variables
www.sti-innsbruck.at
15
Semantics of FOL (2)
• Sentences are true with respect to a model and an interpretation
• Model contains objects (domain elements) and relations among
them
• Interpretation specifies referents for
constant symbols
predicate symbols
function symbols
→
→
→
objects
relations
functions
• An atomic sentence predicate(term1,...,termn) is true
iff the objects referred to by term1,...,termn
are in the relation referred to by predicate
• For more theoretical (and philosophical!) background on model
theory see [4]
www.sti-innsbruck.at
16
Semantics of FOL (3)
•
More precisely, a model is a pair M = <D, I> where
–
–
D is a nonempty set, called the domain of M
I an interpretation that maps constant symbols, function symbols, relations elements in the
domain D
•
An assignment in a model M=<D,I> is a mapping from the set of
variables to the set D
•
Given an interpretation (that gives meaning to constant and function
symbols) and an assignment (that gives values to variables), we can
calculate truth values for arbitrary terms!
•
For a detailed definition see [1]
www.sti-innsbruck.at
17
Semantics of FOL: Example
www.sti-innsbruck.at
18
Semantics of FOL: Example (2)
www.sti-innsbruck.at
19
Logical Entailment in FOL
• Enumerating models to check if a statements logically follows is
not a good idea
• Nonentailment is even undecidable, i.e. cannot be computed !
• Overall FOL is semi-decideable
www.sti-innsbruck.at
20
Quantification
• Round (ball) is true or false because we give it a single argument
(ball).
• We can be much more flexible if we allow variables which can take
on values in a domain. e.g. reals x, all persons P, etc.
• To construct logical sentences we need a quantifier to make it true
or false.
www.sti-innsbruck.at
21
Quantification
x  5, x  R
• Is the following true or false?
• To make it true or false we use
 and 
x [(x  2)  (x  3)] x  R (false )
x [(x 2  1)]
For all real x, x>2 implies x>3.
www.sti-innsbruck.at
x  R (false )
There exists some real x which square is minus 1.
22
Universal quantification
• <variables> <sentence>
• E.g: "Everyone at UIBK is smart“:
x (At(x,UIBK)  Smart(x))
• x P is true in a model m iff P is true with x being each possible
object in the model
• Roughly speaking, equivalent to the conjunction of
instantiations of P



www.sti-innsbruck.at
At(KingJohn, UIBK)  Smart(KingJohn)
At(Richard, UIBK)  Smart(Richard)
At(UIBK, UIBK)  Smart(UIBK)
...
23
A common mistake to avoid
• Typically,  is the main connective with 
• Common mistake: using  as the main connective
with :
x (At(x,UIBK)  Smart(x))
means “Everyone is at UIBK and everyone is smart”
• Correct: x (At(x,UIBK)  Smart(x))
• As you can see many axioms can be written as
rules!
www.sti-innsbruck.at
24
Existential quantification
• <variables> <sentence>
• "Someone at UIBK is smart":
• x (At(x,UIBK)  Smart(x))
• x P is true in a model m iff P is true with x being some
possible object in the model
• Roughly speaking, equivalent to the disjunction of
instantiations of P
At(KingJohn,UIBK)  Smart(KingJohn)
 At(Richard,UIBK)  Smart(Richard)
 At(UIBK,UIBK)  Smart(UIBK)
 ...
www.sti-innsbruck.at
25
Another common mistake to avoid
• Typically,  is the main connective with 
• Common mistake: using  as the main connective
with :
x (At(x,UIBK)  Smart(x))
is true if there is anyone who is not at UIBK!
• Usually used in Queries:
"Is there someone in UIBK who is smart?"
Correct: x (At(x,UIBK)  Smart(x))
www.sti-innsbruck.at
26
Nested Quantifiers
• Combinations of universal and existential quantification
are possible:
x y Father (x , y )  y x Father (x , y )
x y Father (x , y )  y x Father (x , y )
x y Father (x , y )  y x Father (x , y )
x y Father (x , y )  y x Father (x , y )
x , y  {All people }
Which is which?:
www.sti-innsbruck.at
Binary relation:
“x is a father of y”.
Everyone is the father of someone.
Everyone has everyone as a father
There is a person who has everyone as a father.
There is a person who has a father
There is a person who is the father of everyone.
Everyone has a father.
27
Properties of quantifiers
• x y is the same as y x
• x y is the same as y x
• x y is not the same as y x
• x y Loves(x,y)
– “There is a person who loves everyone in the world”
• y x Loves(x,y)
– “Everyone in the world is loved by at least one person”
• Quantifier duality: each can be expressed using the
other
x Likes(x,IceCream)
x Likes(x,Broccoli)
www.sti-innsbruck.at
x Likes(x,IceCream)
x Likes(x,Broccoli)
28
De Morgan’s Law for Quantifiers
De Morgan’s Rule
Generalized De Morgan’s Rule
P  Q  (P  Q )
x P  x (P )
P  Q  (P  Q )
x P  x (P )
(P  Q )  P  Q
x P  x (P )
(P  Q )  P  Q
x P  x (P )
• Rule is simple:
If you bring a negation inside a disjunction or a conjunction,
always switch between them (or and, and  or).
• Equality symbol: Father(John)=Henry.
This relates two objects.
www.sti-innsbruck.at
29
Equality
• term1 = term2 is true under a given interpretation if and
only if term1 and term2 refer to the same object
• E.g., definition of Sibling in terms of Parent:
x,y Sibling(x,y)  [(x = y)  m,f  (m = f)  Parent(m,x) 
Parent(f,x)  Parent(m,y)  Parent(f,y)]
www.sti-innsbruck.at
30
Using FOL
• We want to TELL things to the KB,
– e.g. TELL(KB, x ,King (x )  Person (x ) )
• We also want to ASK things to the KB,
– e.g. ASK(KB, x , Person (x ) )
• The KB should return the list of x’s for which Person(x) is
true: {x/John,x/Richard,...}
– A variable binding!
www.sti-innsbruck.at
31
Using FOL – Simple Example
The family domain:
• Brothers are siblings
x,y Brother(x,y) ) Sibling(x,y)
• One's mother is one's female parent
m,c Mother(c) = m  (Female(m)  Parent(m,c))
• “Sibling” is symmetric
x,y Sibling(x,y)  Sibling(y,x)
www.sti-innsbruck.at
Attention! Mother is a
function symbol here,
whereas female and
parent are predicate
symbols!
32
Using Fol
More complex example: The set domain
•
•
•
•
•
•
•
•
∀ s Set(s) ⇔ (s = {} ) ∨ (∃x,s2 Set(s2) ∧ s = { x | s2 })
¬∃x,s { x | s } = {}
∀ x,s x ∈ s ⇔ s = { x | s }
∀ x,s x ∈ s ⇔ [ ∃y,s2} ( s = { y | s2} ∧ (x = y ∨ x ∈ s2 ))]
∀ s1,s2 s1 ⊆ s2 ⇔ (∀x x ∈s1⇒x ∈s2)
∀ s1,s2 (s1= s2) ⇔ (s1⊆s2∧s2⊆s1 )
∀ x, s1,s2 x ∈(s1 ∩ s2) ⇔ (x ∈ s1 ∧ x ∈ s2 )
∀ x, s1,s2 x ∈(s1 ∪ s2) ⇔ (x ∈ s1 ∨ x ∈ s2)
www.sti-innsbruck.at
33
Representing Knowledge in FOL
1. Identify the task
2. Assemble the relevant knowledge
3. Decide on a vocabulary of predicates, functions, and
constants
4. Encode general knowledge about the domain
5. Encode a description of the specific problem instance
6. Pose queries to the inference procedure and get
answers
7. Debug the knowledge base
www.sti-innsbruck.at
34
Example: The electronic circuits domain
One-bit full adder
www.sti-innsbruck.at
35
Example: The electronic circuits domain (2)
1. Identify the task
–
Does the circuit actually add properly? (circuit verification)
2. Assemble the relevant knowledge
–
–
Composed of wires and gates; Types of gates (AND, OR, XOR,
NOT)
Irrelevant: size, shape, color, cost of gates
3. Decide on a vocabulary/encoding
–
Alternatives:
Type(X1) = XOR
Type(X1, XOR)
XOR(X1)
…
www.sti-innsbruck.at
36
Example: The electronic circuits domain (3)
4.
Encode general knowledge of the domain
•
•
•
•
•
•
•
t1,t2 Connected(t1, t2)  Signal(t1) = Signal(t2)
t Signal(t) = 1  Signal(t) = 0
1≠0
t1,t2 Connected(t1, t2)  Connected(t2, t1)
g Type(g) = OR  (Signal(Out(1,g)) = 1  n Signal(In(n,g)) = 1)
g Type(g) = AND  (Signal(Out(1,g)) = 0  n Signal(In(n,g)) = 0)
g Type(g) = XOR  (Signal(Out(1,g)) = 1  Signal(In(1,g)) ≠
Signal(In(2,g)))
g Type(g) = NOT  Signal(Out(1,g)) ≠ Signal(In(1,g))
•
www.sti-innsbruck.at
37
Example: The electronic circuits domain (4)
5. Encode the specific problem instance
Type(X1) = XOR
Type(A1) = AND
Type(O1) = OR
Type(X2) = XOR
Type(A2) = AND
Connected(Out(1,X1),In(1,X2)) Connected(In(1,C1),In(1,X1))
Connected(Out(1,X1),In(2,A2)) Connected(In(1,C1),In(1,A1))
Connected(Out(1,A2),In(1,O1)) Connected(In(2,C1),In(2,X1))
Connected(Out(1,A1),In(2,O1)) Connected(In(2,C1),In(2,A1))
Connected(Out(1,X2),Out(1,C1)) Connected(In(3,C1),In(2,X2))
Connected(Out(1,O1),Out(2,C1)) Connected(In(3,C1),In(1,A2))
www.sti-innsbruck.at
38
Example: The electronic circuits domain (5)
6.
Pose queries to the inference procedure
–
–
What are the possible sets of values of all the terminals for the adder
circuit?
 i1,i2,i3,o1,o2 Signal( In(1,C1) ) = i1  Signal( In(2,C1) ) = i2 
Signal( In(3,C1) ) = i3  Signal( Out(1,C1) ) = o1  Signal( Out(2,C1) )
= o2
7.
Debug the knowledge base
–
Maybe you have omitted assertions like 1 ≠ 0, etc?
www.sti-innsbruck.at
39
Summary
• Predicate Logic:
– objects, relations and functions are semantic primitives
– syntax: constants, function symbols, predicate symbols, equality,
quantifiers
• Increased expressive power over propositional logic
– Predicate Logic allows generalisations over objects
– It is more economical in many cases
• Atomic sentences have internal structure
– Atomic sentences are decomposed into predicates and terms
• The semantics of predicate logic:
– Model is a set of objects, a set of relations and a set of referential
functions
– An interpretation maps a language onto a model
• Next time: Inference in First-Order logic
www.sti-innsbruck.at
40
References
•
•
•
•
•
[1] M. Fitting: First-Order Logic and Automated Theorem Proving, 1996
Springer-Verlag New York (Chapter 5)
[2] Michael Huth and Mark Ryan, Logic in Computer Science(second
edition) , 2004, Cambridge University Press
[3] S. Russel and P. Norvig: Artifical Intelligence – Modern Approach,
2002k, Prentice Hall (Web-site: http://aima.cs.berkeley.edu/ )
[4] http://plato.stanford.edu/entries/model-theory/
Wikipedia:
– http://en.wikipedia.org/wiki/First-order_logic and particularly
– http://en.wikipedia.org/wiki/First-order_logic#Metalogical_theorems_of_firstorder_logic for several relevant properties
www.sti-innsbruck.at
41