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
There exists
Implies
Not
Or
And
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.
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: m: mega_star(m) rich(m)
Rich people have fast cars, the third axiom is more difficult:
Assume cars is a relation then axiom 3 may be written: c,m: car(c,m)rich(m) 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: c: fast(c) m:car(c,m) consume(c) .
Is this enough? NO! -- Does prince have a car? We need the car_of function after all (and addition to car): 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) m: mega_star(m) rich(m) c:car(car_of(m),m). c,m: car(c,m) rich(m) fast(c). c: fast(c) m:car(c,m) consume(c) . Given this we could conclude:consume(car_of(prince)).
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.