Knowledge Representation
Knowledge Representation
Knowledge Representation
1.
Introduction
In some cases more domain-specific knowledge may be needed than that required to solve a
problem using search. In these instances some form of representing and manipulating this
knowledge is needed. Knowledge is stored in a knowledge base using a particular
representation and inference techniques or algorithms are used to manipulate the knowledge.
Various representation schemes have been developed for knowledge representation and these
have been categorized as follows:
Logical representation schemes Inference rules and proof procedures are used to find
solutions to problem instances, e.g. first-order predicate logic. PROLOG is the most
appropriate language to implement knowledge bases using logical representation
schemes.
Procedural representation schemes Knowledge is represented as a list of instructions
to solve problems, e.g. production rule systems and essentially consist of a number of ifthen-else rules.
Network representation schemes Information is represented as a graph, e.g. semantic
networks, conceptual graphs. The nodes in the graph represent objects or concepts and
the arcs relationships between them.
Structured representation schemes These schemes extend networks so that each
node in the network is a complex structure including information regarding attributes of
the object. These complex structures usually consist of slots with attached values, e.g.
scripts and frames.
Structures for representing incomplete and inconsistent knowledge, e.g Bayesian
reasoning, Dempster-Shafer theory.
One of the problems encountered in representing knowledge is the frame problem. This
problem refers to the difficulty of representing facts that change often as well as those that do
not. How successful a program is at solving a problem is largely dependent on using the correct
scheme to represent the knowledge needed to solve the problem.
We will study three of the above representation schemes, namely,
2.
We are going to study two representation structures, namely, semantic networks and
conceptual graphs.
2.1
Semantic Networks
A semantic network is a graph consisting of nodes, where each node represents a fact or a
concept, and arcs, where each arc represents a relationship between two nodes. Inference
rules and algorithms are needed to answer questions regarding the knowledge represented in a
1
semantic network. However, in this section we will only examine how knowledge can be
represented in a semantic network.
Suppose that we want to represent the statement that Clyde is an elephant:
Mammal
is-a
Elephant
instance
Clyde
Clyde is referred to as an instance of the class Elephant. In turn any member of the class
Elephant is a Mammal. Thus, the class Elephant is a subclass of the class Mammal and
therefore Clyde is indirectly a Mammal. Semantic networks are used to represent inheritance
relationships such as the example above. In order to differentiate between instances and
subclasses the term instance is used to represent a relationship between a class and an
instance and the term is-a is used to represent a relationship between a subclass and a
superclass. Semantic networks also represent has-a/has relationships between objects. Both
these relationships are illustrated in the figure below.
has
Tail
is-a
communicates
Great
Dane
Barks
height
instance
Pluto
has 4 Legs
Dog
has
Tall
Spots
Figure 1
Note that in addition to is-a, instance and has/has-a relationships other relationships can also be
represented in a semantic network. For example, the relationship between a dog and barks is
communicates. An instance of a class and each subclass of a class inherits all the properties
of that class. Hence, since Great Dane is a subclass of the class Dog every member of the
class Great Dane has a tail and 4 legs. Similarly, the instance Pluto of the class Great
Dane will also have a tail and 4 legs. In addition to the inherited properties an instance or
subclass can have properties specific to the particular subclass or instance. For example, all
2
great danes are tall. The instance Pluto has spots in addition to possessing all the other
properties of great danes.
More examples of semantic networks are illustrated below:
Example 1
Mammal
is-a
Person
has-a
Nose
instance
Blue
Brooklyn
Dodgers
Figure 2
The semantic network in Figure 2 represents a number of relationships. For example, a
Person is a Mammal. Pee-Wee-Reese is an instance of the class Person. Pee-WeeReese is on the team Broklyn-Dodgers. The instance relationship identifies Pee-Wee-Reese
as a Person and a Person as a Mammal. From this semantic network we can infer that
Pee-Wee-Reese must have a Nose since Pee-Wee-Reese is a person.
Example 2
Johns height is 72.
John
height
72
Figure 3
John is taller than Bill.
John
Bill
height
height
H1 greater
than
H2
Figure 4
Example 3
Thus, far we have examined binary relationships, i.e. relationships between at most two objects.
However, it may be necessary to represent n-ary (n >2) relationships using a semantic network.
3
In this case the n-ary relationship must be converted into a number of binary relationships.
Suppose that we want to represent the fact that John gives Mary the book, i.e. give(john,
mary, book32). This relationship involves three objects. The relationship is broken down into a
number of binary relationships as indicated in Figure 5.
recipient
Mary
giver
Give
John
object
Book32
Figure 5
A number of problems were experienced with using semantic networks to represent knowledge.
Firstly, the relationships that can be represented using a semantic network are very general and
unstructured. Thus, semantic networks cannot be used to represent complex domains.
Attempts were made to standardize the relationships that could be represented in a semantic
network and so possibly alleviate some of the problems. The development of a verb-oriented
approach was one of the results of these endeavors.
This approach defines the following case relationships: agent, object, instrument, location and
time. Every sentence is represented using a case frame. A case frame represents a particular
action and basically consists of arcs linking nodes representing different participants involved in
an action. Figure 6 represents the corresponding semantic net using this approach to represent
the statement:
Sarah fixed the chair with glue.
time
Sarah
agent
object
Fix
instrument
past
chair
glue
Figure 6
Exercise 1
Construct a semantic network to represent each of the following statements:
1.
Pompeian(Marcus), Blacksmith(Marcus).
4
2.
3.
2.2.
Conceptual Graphs
bird
flies
2-ary relation
dog
colour
brown
3-ary relation
mother
child
parents
father
Let us look at a more detailed example. Suppose that we want to represent the relation that
Mary gave John the book. The corresponding conceptual graph is illustrated below:
person:
Mary
agent
person:
John
agent
give
book
object
Notice that each concept node represents an individual and specifies the type of the individual.
If an individual object is unknown a unique marker can be used in place of the name of the
object. A unique marker is comprised of a hash symbol (#) followed by a number. Each object
has its own unique marker. In the first conceptual graph in Figure 7 the name of the dog is
known. However, in the second conceptual graph it is not known and a unique marker is used
for this purpose.
dog:
Emma
dog:
#1352
colour
brown
colour
brown
Figure 7
The first conceptual graph in Figure 7 is equivalent to the conceptual graph in Figure 8.
dog:
#1352
colour
name
brown
emma
Figure 8
Note that when individuals of a particular type appear on their own (i.e. without the type
specified before the individual name) the name of the individual must appear in inverted
commas, e.g. emma.
Example 1
Suppose that we want to represent the following information using a conceptual graph:
Her name was McGill and she called herself Lil, but everyone knew her as Nancy.
name
McGill
person:
#941
name
Nancy
name
Lil
In addition to individual markers conceptual nodes can also contain generic markers. A generic
marker is represented by an asterisk *. A generic marker is used to represent an unspecified
individual of a type. The type dog specified in a node is equivalent dog:*. Name variables can
also be used, e.g., *X to indicate an unspecified individual. Let us look at an example of this.
Suppose that we want to represent the following information:
The dog is scratching its ear with its paw.
We need to indicate that the paw and ear belong to the same dog. We can use name variables
for this purpose. This is illustrated below:
dog: *X
agent
object
scratch
ear
instrument
part
paw
part
dog: *X
The format that we have used thus far to represent conceptual graphs is referred to as the
Display Form (DF). An alternative notation is the Linear Form (LF) which is a more compact
notation. Suppose that we wanted to represent the following statement:
John is going to Boston by bus.
The conceptual graph in DF notation:
person:
John
agent
go
instance
bus
destination
city:
Boston
3.
We are only going to look at one logical representation scheme, namely, first-order predicate
logic. Predicate logic is more powerful than propositional logic as it allows for quantification.
Facts are represented as logical propositions and additional information is deduced from these
facts using backward chaining or resolution.
3.1
The first step is to convert facts in English to logical propositions called well-formed formulas
(wffs). The wffs include the following symbols:
Implies:
And: /\
Or: \/
Not: ~
For all:
The exists:
1.
2.
3.
4.
5.
6.
7.
8.
9.
man(Marcus)
Pompeian(Marcus)
x: Pompeian(x) Roman(x)
ruler(Caesar)
x: Roman(x) loyalto(x,Caesar) \/ hate(x,Caesar)
x y: loyalto(x,y)
x y: person(x) /\ ruler(y) /\ tryassassinate(x,y) ~loyalto(x,y)
tryassassinate(Marcus,Caesar)
x: man(x) person(x)
man(Marcus)
Pompeian(Marcus)
born(Marcus,40)
x: man(x) mortal(x)
erupted(volcano,79) /\ x: Pompeian(x) died(x,79)
x t1 t2: mortal(x) /\ born(x,t1) /\ gt(t2-t1,150) dead(x,t2)
now=1991
x t: [alive(x,t) ~dead(x,t)] /\ [~dead(x,t) alive(x,t)]
x t1 t2:died(x,t1) /\ gt(t2,t1) dead(x,t2)
Suppose we want to answer the question Is Marcus alive now?. We can do this by either
proving alive(Marcus,now) or ~alive(Marcus,now). Let us try the latter:
10
~alive(Marcus,now)
8
~[~dead(Marcus,now)]
negation operation
dead(Marcus,now)
9
died(Marcus,t1) /\ gt(now,t1)
5
erupted(volcano,79) /\ Pompeian(Marcus) /\ gt(now,79)
fact, 2
gt(now,79)
gt(1991,79)
compute gt
nil
3.4 Resolution
In the previous sections facts were proved or queries were answered using backward chaining.
In this section we will examine the use of resolution for this purpose. Resolution proves facts
and answers queries by refutation. This involves assuming the fact/query is untrue and
reaching a contradiction which indicates that the opposite must be true. The wffs must firstly be
firstly converted to clause form before using resolution. The algorithm for converting wffs to
clause form and the resolution algorithm are listed below.
Algorithm: Converting wffs to Clause Form
1. Remove all implies, i.e. by applying the following: a b is equivalent to ~a \/ b.
2. Use the following rules to reduce the scope of each negation operator to a single term:
~(~a) = a
~(a /\ b) = ~a \/ ~b
~(a \/ b) = ~a /\ ~b
~x: p(x) = x: ~p(x)
~x: p(x) = x: ~p(x)
3. Each quantifier must be linked to a unique variable. For example, consider x: p(x) \/
x: q(x). In this both quantifiers are using the same variable and one must changed to
another variable: x: p(x) \/ y: q(y).
4. Move all quantifiers, in order, to the left of each wff.
5. Remove existential quantifiers by using Skolem constants or functions. For example, x:
p(x) becomes p(s1) and x y: q(x,y) is replaced with x: q(s2(x), x).
6. Drop the quantifier prefix.
7. Apply the associative property of disjunctions: a \/ (b \/ c) = (a \/ b) \/ c and remove
brackets giving a \/ b \/ c.
11
man(Marcus)
Pompeian(Marcus)
x: Pompeian(x) Roman(x)
ruler(Caesar)
x: Roman(x) loyalto(x,Caesar) \/ hate(x,Caesar)
x y: loyalto(x,y)
x y: person(x) /\ ruler(y) /\ tryassassinate(x,y) ~loyalto(x,y)
tryassassinate(Marcus,Caesar)
x: man(x) person(x)
man(Marcus)
Pompeian(Marcus)
~Pompeian(x) \/ Roman(x)
ruler(Caesar)
~Roman(x1) \/ loyalto(x1,Caesar) \/ hate(x1,Caesar)
loyalto(x2,s1(x2))
~person(x3) \/ ~ruler(y) \/ ~tryassassinate(x3,y) \/ ~loyalto(x3,y)
tryassassinate(Marcus, Caesar)
~man(x4) \/ person(x4)
12
Suppose that we want to prove that Marcus hates Caesar. We firstly convert this to a
wff: hate(Marcus,Caesar). The wff is then negated and converted to clause form:
~hate(Marcus,Caesar). This clause is added to the set of clauses and the resolution is
algorithm is applied:
~hate(Marcus,Caesar)
5
~Roman(Marcus) \/ loyalto(x1,Caesar)
3
~Pompeian(Marcus) \/ loyalto(Marcus,Caesar)
2
loyalto(Marcus,Caesar)
7
~person(Marcus) \/ ~ruler(Caesar) \/ ~tryassassinate(Marcus,Caesar)
4
~person(Marcus) \/ ~tryassassinate(Marcus,Caesar)
8
~person(Marcus)
9
~man(Marcus)
1
Thus, we have a contradiction and the original statement, i.e. Marcus hates Caesar must be
true.
Consider the wffs we created above:
1.
2.
3.
4.
5.
6.
7.
8.
9.
man(Marcus)
Pompeian(Marcus)
born(Marcus,40)
x: man(x) mortal(x)
erupted(volcano,79) /\ x: Pompeian(x) died(x,79)
x t1 t2: mortal(x) /\ born(x,t1) /\ gt(t2-t1,150) dead(x,t2)
now=1991
x t: [alive(x,t) ~dead(x,t)] /\ [~dead(x,t) alive(x,t)]
x t1 t2:died(x,t1) /\ gt(t2,t1) dead(x,t2)
Suppose we now want to use resolution to prove that Marcus is not alive now. We firstly have
to convert these statements to clause form:
1. man(Marcus)
2. Pompeian(Marcus)
3. born(Marcus,40)
4. ~man(x) \/ mortal(x)
5. erupted(volcano,79)
6. ~Pompeian(x1) \/ died(x1,79)
7. ~mortal(x2) \/ ~born(x2,t1) \/ ~gt(t2-t1,150) \/ dead(x2,t2)
8. now=1991
9. ~alive(x3,t) \/ ~dead(x3,t)
10. dead(x4,t3) \/ alive(x4,t3)
13
Exercise 4
1. Consider the following facts:
1.
2.
3.
4.
5.
6.
a) Convert the wffs for these facts (which you created in Exercise 3) to clause form.
b) Using resolution prove that John likes peanuts.
2. Consider the following facts:
1.
2.
3.
4.
a) Convert the wffs for these facts (which you created in Exercise 3) to clause form.
b) Use resolution to answer the question What course would Steve like?.
14