Logic Knowledge Representation    

We briefly mentioned how logic can be used to represent simple facts in the last lecture. Here we will highlight major principles involved in knowledge representation. In particular predicate logic will be met in other knowledge representation schemes and reasoning methods.

A more comprehensive treatment is given in the third year Expert Systems course. Symbols used The following standard logic symbols we use in this course are:

 

For all                     tex2html_wrap_inline7176

 

There exists                           tex2html_wrap_inline7174

 

Implies                    tex2html_wrap_inline7156

 

Not                         tex2html_wrap_inline7182

 

Or                           tex2html_wrap_inline7184

 

And                         tex2html_wrap_inline7186

 

Let us now look at an example of how predicate logic is used to represent knowledge. There are other ways but this form is popular.

 

Predicate logic

Consider the following:

and try to draw the conclusion: Prince's car consumes a lot of petrol.

So we can translate Prince is a mega star into: mega_star(prince) and Mega stars are rich into: tex2html_wrap_inline7176m: mega_star(m) tex2html_wrap_inline7156 rich(m)

Rich people have fast cars, the third axiom is more difficult:

Assume cars is a relation then axiom 3 may be written: tex2html_wrap_inline7176c,m: car(c,m)tex2html_wrap_inline7186rich(m) tex2html_wrap_inline7156 fast(c).

The fourth axiom is a general statement about fast cars. Let consume(c) mean that car c consumes a lot of petrol. Then we may write: tex2html_wrap_inline7176 c:tex2html_wrap_inline7204 fast(c) tex2html_wrap_inline7206 m:car(c,m) tex2html_wrap_inline7156 consume(c) tex2html_wrap_inline7210.

Is this enough? NO! -- Does prince have a car? We need the car_of function after all (and addition to car): tex2html_wrap_inline7176 c:car(car_of(m),m). The result of applying car_of to m is m's car. The final set of predicates is:mega_star(prince) tex2html_wrap_inline7176 m: mega_star(m) tex2html_wrap_inline7156 rich(m) tex2html_wrap_inline7176 c:car(car_of(m),m)tex2html_wrap_inline7176 c,m: car(c,m) tex2html_wrap_inline7186 rich(m) tex2html_wrap_inline7156 fast(c). tex2html_wrap_inline7176 c:tex2html_wrap_inline7204 fast(c) tex2html_wrap_inline7206 m:car(c,m) tex2html_wrap_inline7156 consume(c) tex2html_wrap_inline7210. Given this we could conclude:consume(car_of(prince)).

 

Isa and instance relationships

Two attributes isa and instance play an important role in many aspects of knowledge representation.

The reason for this is that they support property inheritance.

isa

-- used to show class inclusion, e.g. isa(mega_star,rich).

instance

-- used to show class membership, e.g. instance(prince,mega_star).

From the above it should be simple to see how to represent these in predicate logic.

 

Applications and extensions