Nicozan-Blog

Knowledge Seeking

Knowledge Elicitation – Using Protocol Analysis April 19, 2011

Introduction

As you might remember in previous posts I have talked about Knowledge Engineering, Expert Systems and Rule Based Systems. Today I’ll get back to those concepts and explain you the Protocol Analysis Method to do Knowledge Elicitation.

Protocol Analysis

Before we begin, I would like to highlight that there are other methods to elicit knowledge such as interviews, questionnaires and repertory grids.
This method have several steps, obviously lets start we the first one :

1- The Idea is to search and capture ,and then study, everything the expert says while he is solving a problem. That’s why we record the experts explanation with a tape recorder during his task. In other words, the expert have to explain what he is thinking.

2- After we record our experts explanation (Protocol),we have to write down the recorded audio and divide the text into segments. Please have a look at the next simple example:
Protocol: “As we can see the Porsche 911 is a very comfortable and fast car, so it is expensive”
Transcription:

Line

Text

1

As we can see

2

the Porsche 911

3

is a very comfortable

4

and fast car

5

so it is

6 expensive

In the example protocol,  the expert was explaining what makes a car expensive, thats this ob

3- Now it’s time to identify concepts, characteristics, values, relations and operators. Considering the Drools Expert tool: Concepts are facts, characteristics are the facts properties and values are the values of the properties.
The operators are elements use by the expert to move from a state of the problem to an other state closer to the final solution.
Let’s see the next classification table:

Element

ID

As we can see

Relation

Porsche 911

Concept
very comfortable

Value

fast

Value

so it is

Operator

expensive

Concept

The states in our problem can be Concepts or Characteristics, but not both at the same time. In this case I’ll choose Concepts as states of the problem.
In the table that follows we’ll specify the explicit relations:

Concepts

Characteristics Values
Porsche 911 (Comfort)

very comfortable

(Speed)

fast

Expensive

A value must be always related to a characteristic. If there is an explicit value in the text but there isn’t the explicit characteristic, we have to write the implicit one between parenthesis like the example above.
Now we represent the implicit relations, that are always between concepts.

After this schema, we draw, what is called,  a “Search Identification”:

4- Now that we have done our search identification it is time to write the rule associated to it. Obviously we’ll be using the DRL syntax of Drools Expert.

rule "It's an expensive car"
when
  $porsche : Porsche911( speed  == "Fast", comfort == “Very Comfortable” )
then
  System.out.println( “Car: ”  + $porsche.getName() + “ is an expensive car” );
end

Well, this short explanation would be enough for you to start your first knowledge elicitation and get closer to the knowledge engineering.

Advertisements