knowledge engg using & in fol

31
Knowledge Representation using First-Order Logic

Upload: chandsek666

Post on 12-May-2015

200 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Knowledge engg using & in fol

Knowledge Representation using First-Order Logic

Page 2: Knowledge engg using & in fol

Domain

• Domain is a section of the knowledge representation.

- The Kinship domain

- Mathematical sets

- Assertions and queries in first order logic

- The Wumpus World

Page 3: Knowledge engg using & in fol

Kinship domain

Page 4: Knowledge engg using & in fol

Kinship domain(family relationship)

It consists of

• Object – People

• Unary Predicates - Male and Female

• Binary Predicates - Parent,Brother,Sister

• Functions – Father, Mother

• Relations – Brotherhood, sisterhood.

Page 5: Knowledge engg using & in fol

Examples

The kinship domain:• Brothers are siblings

x,y Brother(x,y) => Sibling(x,y)

• Male and female are disjoint categoriesx, Male(x) ¬Female(x)

• Parent and child are inverse relationsp,c Parent(p,c) Child(c,p)

Page 6: Knowledge engg using & in fol

Mathematical sets

Page 7: Knowledge engg using & in fol

Mathematical set representation

• Constant – Empty set (s = {})• Predicate – Member and subset (s1 s2)• Functions – Intersection( ) and union ( ) • Example: Two sets are equal if and only if each is a subset of the

other.

s1,s2 (s1=s2) (subset(s1,s2) subset(s2,s1))Other eg: x,s1,s2 x (s1 s2) (x s1 x s2) x,s1,s2 x (s1 s2) (x s1 x s2)

Page 8: Knowledge engg using & in fol

Assertions and Queries in first-order logic

Page 9: Knowledge engg using & in fol

Assertions

• Sentences are added to a knowledge base using TELL are called assertions.

• We want to TELL things to the KB, e.g. TELL(KB, King(John))

TELL(KB, x king(x) => Person(x))

John is a king and that king is a person.

Page 10: Knowledge engg using & in fol

Queries

• Questions are asked to the knowledge base using ASK called as queries or goals.

• We also want to ASK things to the KB,

ASK(KB, )

returns true by substituting john to a x.

, ( )x Person x

Page 11: Knowledge engg using & in fol

Wumpus world

Page 12: Knowledge engg using & in fol

Agent Architectures

• Reflex agents: Classify their percept and act accordingly.

• Model based agents: Construct an internal representation of the world and use it to act.

• Goal based agent : Form goals and try to achieve them.

Page 13: Knowledge engg using & in fol

FOL Version of Wumpus World• Typical percept sentence:

Percept([Stench,Breeze,Glitter,None,None],3)

• In this sentence:

Percept - predicate

Stench, Breeze and glitter – Constants

3 – Integer to represent time

• Actions:Turn Right), Turn Left), Forward, Shoot, Grab, Release, Climb

Page 14: Knowledge engg using & in fol

Cont..,

• To determine best action, construct query: a BestAction(a,5)

• ASK solves this query and returns {a/Grab}– Agent program then calls TELL to record the action

which was taken to update the KB.

Page 15: Knowledge engg using & in fol

• Percept sequences

1. Synchronic sentences (same time).

- sentences dealing with time.

2. Diachronic sentences (across time).

- agent needs to know how to combine information about its previous location to current location.

Page 16: Knowledge engg using & in fol

Two kinds of synchronic rules

1.Diagnostic rules

2.Casual rules

Page 17: Knowledge engg using & in fol

Deducing hidden properties

• Squares are breezy near a pit:

– Diagnostic rule---infer cause from effects Breezy(s) r Adjacent(r,s) Pit(r)

– Causal rule---infer effect from cause

r Pit(r) [s Adjacent(r,s) Breezy(s)]

Page 18: Knowledge engg using & in fol

Knowledge engineering in FOL

Page 19: Knowledge engg using & in fol

Steps1. 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

Page 20: Knowledge engg using & in fol

The electronic circuits domain

One-bit full adder

Possible queries:

- does the circuit function properly?

- what gates are connected to the first input terminal?

- what would happen if one of the gates is broken?

and so on

Page 21: Knowledge engg using & in fol

The electronic circuits domain

1. Identify the task– Does the circuit actually add properly?

2. Assemble the relevant knowledge– Composed of wires and gates; Types of gates (AND,

OR, XOR, NOT)– Two input terminals and one output terminal

Page 22: Knowledge engg using & in fol

3. Decide on a vocabulary

• Alternatives:Type(X1) = XOR (function)

Type(X1, XOR) (binary predicate)

XOR(X1) (unary predicate)

It can be represented by either binary predicate or individual type.

Page 23: Knowledge engg using & in fol

4. Encode general knowledge of the domain

1.If two terminals are connected, then they have the same signal.

t1,t2 Connected(t1, t2) Signal(t1) = Signal(t2)

2.The signal at every terminal is either 1 or 0 (but not both)

t Signal(t) = 1 Signal(t) = 0

1 ≠ 0

Page 24: Knowledge engg using & in fol

3. Connected is a commutative predicate.

t1,t2 Connected(t1, t2) Connected(t2, t1)

4. An OR gate’s output is 1 if and only if any of its input is 1.

g Type(g) = OR Signal(Out(1,g)) = 1 n Signal(In(n,g)) = 1

Page 25: Knowledge engg using & in fol

5. An AND gate’s output is 0 if and only if any of its input is 0.

g Type(g) = AND

Signal(Out(1,g)) = 0 n Signal(In(n,g)) = 0

6. An XOR gate’s output is 1 if and only if any of its inputs are different:

g Type(g) = XOR Signal(Out(1,g)) = 1 Signal(In(1,g)) ≠ Signal(In(2,g))

Page 26: Knowledge engg using & in fol

7. An XOR gate’s output is 1 if and only if any of its inputs are different:

g Type(g) = NOT

Signal(Out(1,g)) ≠ Signal(In(1,g))

Page 27: Knowledge engg using & in fol

5. Encode the specific problem instance

• First we categorize the gates:

Type(X1) = XOR Type(X2) = XOR

Type(A1) = AND Type(A2) = AND

Type(O1) = OR

– Then show the connections between them:

Page 28: Knowledge engg using & in fol

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))

Page 29: Knowledge engg using & in fol

6. Pose queries to the inference procedure and get answers

For the given query the inference procedure operate on the problem specific facts and derive the answers.

Page 30: Knowledge engg using & in fol

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

Page 31: Knowledge engg using & in fol

7. Debug the knowledge base

• For the given query, if the result is not a user expected one then KB is updated with relevant axioms.

• The KB is checked with different constraints.eg:prove any output for the circuit i.e.,0 or 1.