lecture 6 frame-based expert systems · methods and demons © negnevitsky, pearson education, 2005...
TRANSCRIPT
© Negnevitsky, Pearson Education, 2005 1
Introduction, or what is a frame?
Frames as a knowledge representation technique
Inference in frame-based experts
Methods and demons
Interaction of frames and rules
Buy Smart: a frame-based expert system
Summary
Lecture 6
Frame-based expert systems
© Negnevitsky, Pearson Education, 2005 2
A frame is a data structure with typical
knowledge about a particular object or concept.
Introduction, or what is a frame?
Frames were first proposed by Marvin Minsky
in the 1970s.
© Negnevitsky, Pearson Education, 2005 3
Boarding pass frames
QANTAS BOARDING PASS
Carrier: QANTAS AIRWAYS
Name: MR N BLACK
Flight: QF 612
Date: 29DEC
Seat: 23A
From: HOBART
To: MELBOURNE
Boarding: 0620
Gate: 2
AIR NEW ZEALAND BOARDING PASS
Carrier: AIR NEW ZEALAND
Name: MRS J WHITE
Flight: NZ 0198
Date: 23NOV
Seat: 27K
From: MELBOURNE
To: CHRISTCHURCH
Boarding: 1815
Gate: 4
© Negnevitsky, Pearson Education, 2005 4
Each frame has its own name and a set of attributes
associated with it. Name, weight, height and age are
slots in the frame Person. Model, processor,
memory and price are slots in the frame Computer.
Each attribute or slot has a value attached to it.
Frames provide a natural way for the structured and
concise representation of knowledge.
A frame provides a means of organising knowledge
in slots to describe various attributes and
characteristics of the object.
Frames are an application of object-oriented
programming for expert systems.
© Negnevitsky, Pearson Education, 2005 5
Object-oriented programming is a programming
method that uses objects as a basis for analysis,
design and implementation.
In object-oriented programming, an object is
defined as a concept, abstraction or thing with crisp
boundaries and meaning for the problem at hand.
All objects have identity and are clearly
distinguishable. Michael Black, Audi 5000 Turbo,
IBM Aptiva S35 are examples of objects.
© Negnevitsky, Pearson Education, 2005 6
An object combines both data structure and its
behaviour in a single entity. This is in sharp
contrast to conventional programming, in which
data structure and the program behaviour have
concealed or vague connections.
When an object is created in an object-oriented
programming language, we first assign a name to
the object, then determine a set of attributes to
describe the object’s characteristics, and at last
write procedures to specify the object’s behaviour.
A knowledge engineer refers to an object as a
frame (the term, which has become the AI jargon).
© Negnevitsky, Pearson Education, 2005 7
The concept of a frame is defined by a collection of
slots. Each slot describes a particular attribute or
operation of the frame.
Slots are used to store values. A slot may contain a
default value or a pointer to another frame, a set of
rules or procedure by which the slot value is
obtained.
Frames as a knowledge representation
technique
© Negnevitsky, Pearson Education, 2005 8
Frame name.
Relationship of the frame to the other frames.
The frame IBM Aptiva S35 might be a member of
the class Computer, which in turn might belong to
the class Hardware.
Slot value. A slot value can be symbolic, numeric or
Boolean. For example, the slot Name has symbolic
values, and the slot Age numeric values. Slot values
can be assigned when the frame is created or during
a session with the expert system.
Typical information included in a slot
© Negnevitsky, Pearson Education, 2005 9
Default slot value. The default value is taken to be true when no evidence to the contrary has been found. For example, a car frame might have four wheels and a chair frame four legs as default values in the corresponding slots.
Range of the slot value. The range of the slot
value determines whether a particular object
complies with the stereotype requirements defined
by the frame. For example, the cost of a computer
might be specified between $750 and $1500.
Procedural information. A slot can have a
procedure attached to it, which is executed if the
slot value is changed or needed.
© Negnevitsky, Pearson Education, 2005 10
Frame-based expert systems also provide an
extension to the slot-value structure through the
application of facets.
A facet is a means of providing extended
knowledge about an attribute of a frame.
Facets are used to establish the attribute value,
control end-user queries, and tell the inference
engine how to process the attribute.
© Negnevitsky, Pearson Education, 2005 11
The word frame often has a vague meaning. The
frame may refer to a particular object, for example
the computer IBM Aptiva S35, or to a group of
similar objects. To be more precise, we will use
the instance-frame when referring to a particular
object, and the class-frame when referring to a
group of similar objects.
A class-frame describes a group of objects with
common attributes. Animal, person, car and
computer are all class-frames.
Each frame “knows” its class.
What are the class and instances?
© Negnevitsky, Pearson Education, 2005 12
Computer class
CLASS: Computer
[Str] Item Code:
[Str] Model:
[Str] Processor:
[Str] Memory:
[Str] Hard Drive:
[Str] Floppy: [Default]
[Str] CD-ROM:
[Str] Mouse:
[Str] Keyboard:
[Str] Power Supply: [Default]
[Str] Warranty: [Default]
[N] Cost:
[Str] Stock: [Initial]
3.5”; 1.44MB
145Watt
3 years
In stock
© Negnevitsky, Pearson Education, 2005 13
Computer instances
INSTANCE: IBM Aptiva S35
Class: Computer
[Str] Item Code: SY7973
[Str] Model: IBM Aptiva S35
[Str] Processor: Pentium 233MHz
[Str] Memory: 48MB
[Str] Hard Drive: 6.4GB
[Str] Floppy: 3.5"; 1.44MB
[Str] CD-ROM: 24X
[Str] Mouse: Cordless Mouse
[Str] Keyboard: 104-key
[Str] Power Supply: 145 Watt
[Str] Warranty: 3 years
[N] Cost: 1199.99
[Str] Stock: In stock
INSTANCE: IBM Aptiva S9C
Class: Computer
[Str] Item Code: SY7975
[Str] Model: IBM S9C
[Str] Processor: Pentium 200MHz
[Str] Memory: 32MB
[Str] Hard Drive: 4.2GB
[Str] Floppy: 3.5"; 1.44MB
[Str] CD-ROM: 16X
[Str] Mouse: 2-button mouse
[Str] Keyboard: 104-key
[Str] Power Supply: 145 Watt
[Str] Warranty: 3 years
[N] Cost: 999.99
[Str] Stock: In stock
© Negnevitsky, Pearson Education, 2005 14
Frame-based systems support class inheritance.
The fundamental idea of inheritance is that
attributes of the class-frame represent things that
are typically true for all objects in the class.
However, slots in the instance-frames can be filled
with actual data uniquely specified for each
instance.
Relations of the car frames
Class inheritance in frame-based systems
Passenger car Mazda Mazda 626 Mazda DR-1216
is-a is-a is-a
© Negnevitsky, Pearson Education, 2005 15
Inheritance of slot values
CLASS: Mazda
Superclass: Passengercar
[C] Enginetype
In-line 4 cylinder:V6:
[N] Horsepower:
[C] Drivetrain typeRear wheeldrive:Front wheeldrive:Four wheeldrive:
[C] Transmissiontype
5-speedmanual:
4-speedautomatic:
[N] Fuel consumption (mpg):
[N] Seatingcapacity:
[Str] Country of manufacture: Japan
CLASS: Passenger car
[C] Enginetype
In-line4 cylinder:V6:
[N] Horsepower:
[C] Drivetrain type
Rear wheeldrive:
Front wheeldrive:Four wheeldrive:
[C] Transmissiontype
5-speedmanual:
4-speedautomatic:
[N] Fuel consumption (mpg):
[N] Seatingcapacity:
© Negnevitsky, Pearson Education, 2005 16
Inheritance of slot values (continued) CLASS: ZE vehicle
[N] Weight, kg:
[N] Top speed, km/h:
CLASS: Electric vehicle
Superclass: ZEvehicle
[N] Weight, kg:
[N] Top speed, km/h:
[Str] Motor:
[Str] Batterytype:
CLASS: Car
Superclass: Electric vehicle
[N] Weight, kg:
[N] Top speed, km/h:
[Str] Motor:
[Str] Batterytype:
[N] Range, km:
CLASS: Solar vehicle
Superclass: ZEvehicle
CLASS: Muscle vehicle
Superclass: ZEvehicle
CLASS: Motorcycle
Superclass: Electric vehicle
CLASS: Scooter
Superclass: Electric vehicle
© Negnevitsky, Pearson Education, 2005 17
Generalisation denotes a-kind-of or is-a relationship
between superclass and its subclasses. For example,
a car is a vehicle, or in other words, Car represents a
subclass of the more general superclass Vehicle.
Each subclass inherits all features of the superclass.
Relationships among objects
CLASS: Vehicle
CLASS: Boat
Superclass: Vehicle
CLASS: Car
Superclass: Vehicle
CLASS: Airplane
Superclass: Vehicle
© Negnevitsky, Pearson Education, 2005 18
Aggregation is a-part-of or part-whole
relationship in which several subclasses
representing components are associated with a
superclass representing a whole. For example, an
engine is a part of a car.
CLASS: Car
CLASS: Chassis
Superclass: Car
CLASS: Engine
Superclass: Car
CLASS: Transmission
Superclass: Car
© Negnevitsky, Pearson Education, 2005 19
Association describes some semantic relationship
between different classes which are unrelated
otherwise. For example, Mr Black owns a house, a
car and a computer. Such classes as House, Car and
Computer are mutually independent, but they are
linked with the frame Mr Black through the
semantic association.
CLASS: Mr Black
CLASS: House
Superclass: Mr Black
CLASS: Car
Superclass: Mr Black
CLASS: Computer
Superclass: Mr Black
© Negnevitsky, Pearson Education, 2005 20
Inheritance is defined as the process by which all
characteristics of a class-frame are assumed by the
instance-frame.
A common use of inheritance is to impose default
features on all instance-frames. We can create just
one class-frame that contains generic characteristics
of some object, and then obtain several instance-
frames without encoding the class-level
characteristics.
Inheritance in frame-based systems
© Negnevitsky, Pearson Education, 2005 21
One-parent inheritance in zero-emission vehicles
CLASS: ZE vehicle
[N] Weight, kg:
[N] Top speed, km/h:
CLASS: Electric vehicle
Superclass: ZE vehicle
[N] Weight, kg:
[N] Top speed, km/h:
[Str] Motor:
[Str] Battery type:
CLASS: Car
Superclass: Electric vehicle
[N] Weight, kg:
[N] Top speed, km/h:
[Str] Motor:
[Str] Battery type:
[N] Range, km:
CLASS: Solar vehicle
Superclass: ZE vehicle
CLASS: Muscle vehicle
Superclass: ZE vehicle
CLASS: Motorcycle
Superclass: Electric vehicle
CLASS: Scooter
Superclass: Electric vehicle
© Negnevitsky, Pearson Education, 2005 22
One-parent inheritance (continued)
CLASS: Van
Superclass: Car
[N] Weight, kg:
[N] Top speed, km/h:
[Str] Motor:
[Str] Battery type:
[N] Range, km:
[N] Payload, kg:
INSTANCE: Ford Ecostar
Class: Van
[N] Weight, kg: 1851
[N] Top speed, km/h: 113
[Str] Motor: 3-phase, AC induction
[Str] Battery type: Sodium sulfur
[N] Range, km: 161
[N] Payload, kg: 463
© Negnevitsky, Pearson Education, 2005 23
Multiple inheritance CLASS: Muscle vehicle
[N] Number of wheels:
[N] Pedalling manpower:
CLASS: Solar vehicle
[Str] Solar panel type:
[Str] Solar cell material:
CLASS: Muscle-Solar-Electric vehicle
Superclass: Electric vehicleSolar vehicle
Muscle vehicle
[Str] Motor:
[Str] Battery type:
[Str] Solar panel type:
[Str] Solar cell material:
[N] Number of wheels:
[N] Pedalling manpower:
[N] Weight, kg:
[N] Top speed, km/h:
INSTANCE: Didik Muscle Car
Class: Muscle-Solar-Electric vehicle
[Str] Motor: 24V DC
[Str] Battery type: Sealed lead acid
[Str] Solar panel type: BP140
[Str] Solar cell material: Crystalline silicon
[N] Number of wheels: 4
[N] Pedalling manpower: 2
[N] Weight, kg: 60
[N] Top speed, km/h: 35
CLASS: Electric vehicle
[Str] Motor:
[Str] Battery type:
© Negnevitsky, Pearson Education, 2005 24
Expert systems are required not only to store the
knowledge but also to validate and manipulate
this knowledge. To add actions to our frames,
we need methods and demons.
Methods and demons
© Negnevitsky, Pearson Education, 2005 25
A method is a procedure associated with a frame
attribute that is executed whenever requested.
We write a method for a specific attribute to
determine the attribute’s value or execute a series of
actions when the attribute’s value changes.
Most frame-based expert systems use two types of
methods:
WHEN CHANGED and WHEN NEEDED.
© Negnevitsky, Pearson Education, 2005 26
A demon has an IF-THEN structure. It is executed
whenever an attribute in the demon’s IF statement
changes its value. In this sense, demons and
methods are very similar, and the two terms are
often used as synonyms.
However, methods are more appropriate if we need
to write complex procedures. Demons, on the other
hand, are usually limited to IF-THEN statements.
What is the difference between methods
and demons?
© Negnevitsky, Pearson Education, 2005 27
WHEN CHANGED method
A WHEN CHANGED method is executed
immediately when the value of its attribute changes.
To understand how WHEN CHANGED methods work,
we consider a simple problem.
© Negnevitsky, Pearson Education, 2005 28
The expert system is required to assist a loan officer in
evaluating credit requests from small business ventures.
A credit request is to be classified into one of three
categories, “Give credit”, “Deny credit” or “Consult a
superior”.
When a loan officer provides a qualitative rating of the
expected yield from the loan, the expert system
compares the business collateral with the amount of
credit requested, evaluates a financial rating based on a
weighted sum of the business’s net worth to assets, last
year’s sales growth, gross profit on sales and short-term
debt to sales, and determines a category for the credit
request.
© Negnevitsky, Pearson Education, 2005 29
Input display for the request selection Credit Evaluation Advisor
LastFirst
NextPrevious
No Applicant Name
CN002-98
CN003-98
CN001-98
Mr Black, N.
Mr Green, P.
Mr Clark, E.
CN001-98 Mrs White, J.
List of Requests
has determined the category of
the credit request as
Give Credit
Exit
Requested credit
Currency deposit
Stocks
Mortgages
Net worth to assets
Last year’s sales growth
Gross profit on sales
Short-term debt to sales
Expected yeld
50000
50000
9000
12000
40
20
45
9
Excellent
Collateral
Financial rating
Excellent
Good
RestartHelp
EvaluateCredit
© Negnevitsky, Pearson Education, 2005 30
The class Action Data and WHEN CHANGED methods CLASS: ActionData
[S] GotoNext: [WHEN CHANGED]
[S] GotoPrevious: [WHEN CHANGED]
[S] GotoFirst: [WHEN CHANGED]
[S] GotoLast: [WHEN CHANGED]
INSTANCE: Action Data 1
Class: ActionData
[S] GotoNext: TRUE
[S] GotoPrevious: UNDETERMINED
[S] GotoFirst: UNDETERMINED
[S] GotoLast: UNDETERMINED
WHEN CHANGEDBEGINCurrent Request Number := Request Number OF Request
FIND RequestLIMI T 1WHERERequest Number OF Request > Current Request Number
FIND ENDEND
WHEN CHANGEDBEGINTarget Request Number := Request Number OF Request - 1IF TargetRequest Number > 0 THENBEGINFIND RequestLIMI T 1
WHERERequest Number OF Request = Target Request NumberFIND ENDEND
END
WHEN CHANGEDBEGIN
FIND RequestLIMI T 1
FIND ENDEND
WHEN CHANGEDBEGINTarget Request Number := Total Number of RequestsFIND RequestLIMI T 1WHERE Request Number OF Request = TargetRequest Number
FIND ENDEND
© Negnevitsky, Pearson Education, 2005 31
Class Request
CLASS: Request
[Str] Applicant’s name:
[Str] Application no.:
[N] Requested credit:
[N] Currency deposits:
[N] Stocks:
[N] Mortgages:
[N] Net worth to assets:
[N] Last year's sales growth:
[N] Gross profits on sales:
[N] Short-term debt to sales:
[C] Expected yield
Excellent:
Reasonable:
Poor:
[N] Request Number:
© Negnevitsky, Pearson Education, 2005 32
Instances of the Class Request
INSTANCE: Request 1
Class: Request
[Str] Applicant’s name: Mrs White, J.
[Str] Application no.: CN001-98
[N] Requested credit: 50000
[N] Currency deposits: 50000
[N] Stocks: 9000
[N] Mortgages: 12000
[N] Net worth to assets: 40
[N] Last year's sales growth: 20
[N] Gross profits on sales: 45
[N] Short-term debt to sales: 9
[C] Expected yield
Excellent: TRUEReasonable: FALSE
Poor: FALSE
[N] Request Number: 1
INSTANCE: Request 2
Class: Request
[Str] Applicant’s name: Mr Black, N.
[Str] Application no.: CN002-98
[N] Requested credit: 75000
[N] Currency deposits: 45000
[N] Stocks: 10000
[N] Mortgages: 20000
[N] Net worth to assets: 45
[N] Last year's sales growth: 25
[N] Gross profits on sales: 35
[N] Short-term debt to sales: 10
[C] Expected yield
Excellent: FALSEReasonable: TRUE
Poor: FALSE
[N] Request Number: 2
© Negnevitsky, Pearson Education, 2005 33
A WHEN NEEDED method is used to obtain the
attribute value only when it is needed.
A WHEN NEEDED method is executed when
information associated with a particular attribute is
needed for solving the problem, but the attribute
value is undetermined.
WHEN NEEDED method
© Negnevitsky, Pearson Education, 2005 34
Interaction of frames and rules
Most frame-based expert systems allow us to
use a set of rules to evaluate information
contained in frames.
© Negnevitsky, Pearson Education, 2005 35
How does an inference engine work in a frame
based system?
In a rule-based expert system, the inference engine links the rules contained in the knowledge base with data given in the database.
When the goal is set up, the inference engine searches the knowledge base to find a rule that has the goal in its consequent.
If such a rule is found and its IF part matches data in the database, the rule is fired and the specified object, the goal, obtains its value. If no rules are found that can derive a value for the goal, the system queries the user to supply that value.
© Negnevitsky, Pearson Education, 2005 36
In a frame-based system, the inference engine also
searches for the goal.
But:
In a frame-based system, rules play an auxiliary
role. Frames represent here a major source of
knowledge, and both methods and demons are
used to add actions to the frames.
Thus, the goal in a frame-based system can be
established either in a method or in a demon.
© Negnevitsky, Pearson Education, 2005 37
Example:
Suppose we want to evaluate the credit request
selected by the user. The expert system is expected
to begin the evaluation when the user clicks the
Evaluate Credit pushbutton on the input display.
This pushbutton is attached to the attribute Evaluate
Credit of the class Credit Evaluation.
© Negnevitsky, Pearson Education, 2005 38
The Credit Evaluation class, WHEN CHANGED
and WHEN NEEDED methods
WHEN CHANGED
BEGIN
PURSUE Evaluation OF Credit Evaluation
END
CLASS: Credit Evaluation
[S] Evaluate Credit: [WHEN CHANGED]
[C] Collateral:Excellent:Good:
Moderate:
[C] Financial rating:Excellent:Good:Medium:Bad:
[C] Evaluation: [WHEN NEEDED]Give credit:Deny credit:
Consult a superior:
WHEN NEEDED
BEGIN
Evaluation OF Credit Evaluation IS Consult
superior := TRUE
END
© Negnevitsky, Pearson Education, 2005 39
Example of rules for credit evaluation
RULE 1
IF Currency deposits OF Request >= Requested credit OF RequestTHEN Collateral OF Credit Evaluation IS Excellent
RULE 2IF Currency deposits OF Request >= Requested credit OF Request * 0.7
AND (Currency deposits OF Request + Stocks OF Request) >= Requested credit OF RequestTHEN Collateral OF Credit Evaluation IS Excellent
RULE 3
IF (Currency deposits OF Request + Stocks OF Request) > Requested credit OF Request * 0.6AND (Currency deposits OF Request + Stocks OF Request) < Requested credit OF Request * 0.7
AND (Currency deposits OF Request + Stocks OF Request + Mortgages OF Request) >= Requestedcredit OF RequestTHEN Collateral OF Credit Evaluation IS Good
RULE 4
IF (Currency deposits OF Request + Stocks OF Request + Mortgages OF Request) <= Requested creditOF RequestTHEN Collateral OF Credit Evaluation IS Moderate
RULE 5IF Net worth to assets OF Request * 5 + Last year's sales growth OF Request + Gross profits on sales OF
Request * 5 + Short term debt to sales OF Request * 2 <= -500THEN Financial rating OF Credit Evaluation IS Bad
© Negnevitsky, Pearson Education, 2005 40
Based on the set of rules provided for credit
evaluation, the inference engine cannot establish the
value of the attribute Evaluation in some cases.
We can use the WHEN NEEDED method to
establish the attribute value.
The WHEN NEEDED method is attached to the
attribute Evaluation. The inference engine executes
this method when it needs to determine the value of
Evaluation. When the WHEN NEEDED method is
executed, the attribute Evaluation receives the value
Consult a superior.
© Negnevitsky, Pearson Education, 2005 41
Buy Smart: a Frame-based Expert System
1. Specify the problem and define the scope of the
system.
2. Determine classes and their attributes.
3. Define instances.
4. Design displays.
5. Define WHEN CHANGED and WHEN NEEDED
methods, and demons.
6. Define rules.
7. Evaluate and expand the system.
The development of a frame-based system typically involves the following steps:
© Negnevitsky, Pearson Education, 2005 42
Step 1:
Specify the problem and define the scope of the system
We start by collecting some information about
properties for sale in our region. We can identify
relevant details such as the property type, location,
number of bedrooms and bathrooms, and of course,
the property price. We also should provide a short
description and a nice photo for each property.
© Negnevitsky, Pearson Education, 2005 43
What is the maximum amount you want to spend
on a property?
What type of the property do you prefer?
Which suburb would you like to live in?
How many bedrooms do you want?
How many bathrooms do you want?
Step 1: (Continued)
The next step is to list all possible queries we
might think of:
© Negnevitsky, Pearson Education, 2005 44
Step 2:
Determine classes and their attributes
We begin with the general or conceptual type of
classes. For example, we can talk about the concept
of a property and describe general features that are
common to most properties. We can characterise
each property by its location, price, type, number of
bedrooms and bathrooms, construction, picture and
description.
We also need to present contact details of the
property, such as its address or phone number.
© Negnevitsky, Pearson Education, 2005 45
Class Property
CLASS: Property
[Str] Area:
[Str] Suburb:
[N] Price:
[Str] Type:
[N] Bedrooms:
[N] Bathrooms:
[Str] Construction:
[Str] Phone:
[Str] Pictfile:
[Str] Textfile:
[N] Instance Number:
© Negnevitsky, Pearson Education, 2005 46
Step 3:
Define instances
Once we determined the class-frame Property, we
can create its instances by using data stored in the
database.
For most frame-based expert systems, this task
requires us to tell the system that we want a new
instance to be created.
© Negnevitsky, Pearson Education, 2005 47
Step 3: (Continued)
For example, to create a new instance of the class
Property in Level5 Object, we use the following code:
MAKE Property
WITH Area := area OF dB3 HOUSE 1
WITH Suburb := suburb OF dB3 HOUSE 1
WITH Price := price OF dB3 HOUSE 1
WITH Type := type OF dB3 HOUSE 1
WITH Bedrooms := bedrooms OF dB3 HOUSE 1
WITH Bathrooms := bathrooms OF dB3 HOUSE 1
WITH Construction := construct OF dB3 HOUSE 1
WITH Phone := phone OF dB3 HOUSE 1
WITH Pictfile := pictfile OF dB3 HOUSE 1
WITH Textfile := textfile OF dB3 HOUSE 1
WITH Instance Number := Current Instance Number
© Negnevitsky, Pearson Education, 2005 48
Instances of the Class Property
INSTANCE: Property 1
Class: Property
[Str] Area: Central Suburbs
[Str] Suburb: New Town
[N] Price: 164000
[Str] Type: House
[N] Bedrooms: 3
[N] Bathrooms: 1
[Str] Construction: Weatherboard
[Str] Phone: (03) 6226 4212
[Str] Pictfile: house01.bmp
[Str] Textfile: house01.txt
[N] Instance Number: 1
INSTANCE: Property 2
Class: Property
[Str] Area: Central Suburbs
[Str] Suburb: Taroona
[N] Price: 150000
[Str] Type: House
[N] Bedrooms: 3
[N] Bathrooms: 1
[Str] Construction: Brick
[Str] Phone: (03) 6226 1416
[Str] Pictfile: house02.bmp
[Str] Textfile: house02.txt
[N] Instance Number: 2
© Negnevitsky, Pearson Education, 2005 49
Step 4:
Design displays
We need the Application Title Display to present
some general information to the user at the
beginning of each application. This display may
consist of the application title, general description
of the problem, representative graphics and also
copyright information.
© Negnevitsky, Pearson Education, 2005 50
The Application Title Display
Buy Smart
Buying any property – especially your first –
is very exciting, but it is
often a little nerve-racking as well. It is
important you take the time
to do your home work properly. This expert
system will assists you in
choosing a home to meet your particular
requirements.
© Negnevitsky, Pearson Education, 2005 51
Step 4: (Continued)
The next display is the Query Display. This display
should allow us to indicate our preferences by
answering the queries presented by the expert
system.
© Negnevitsky, Pearson Education, 2005 52
The Query Display Buy Smart
Select the most important things you are looking for in your property.
Search
Suburb Bedrooms Maximum Price
All Suburbs
CentraSuburbsl
Eastern Shore
Northern Suburbs
Southern Suburbs
Any number of bedrooms
One bedroom
Two bedrooms
Three bedrooms
Four bedrooms or more
No maximum
$50,000
$100,000
$150,000
$200,000
$250,000
$300,000
$350,000
$400,000
$500,000
$1,000,000
$2,000,000
Property Type Bathrooms
All property types
House
Unit
Townhouse
Any number of bathrooms
One bathroom
Two bathrooms
Three bathrooms or more
Help Restart
© Negnevitsky, Pearson Education, 2005 53
Step 4: (Continued)
And finally, we should design the Property
Information Display. This display has to provide us
with the list of suitable properties, an opportunity to
move to the next, previous, first or last property in
the list, and also a chance to look at the property
picture and its description.
© Negnevitsky, Pearson Education, 2005 54
The Property Information Display Buy Smart
MODERNISED WITH ARCHITECT'S FLAIR
parking.
© Negnevitsky, Pearson Education, 2005 55
Step 5:
Define WHEN CHANGED and WHEN NEEDED
methods, and demons
We must develop a way to bring our application to
life. There are two ways to accomplish this task.
The first one relies on WHEN CHANGED and
WHEN NEEDED methods, and demons.
The second approach involves pattern-matching
rules. In frame-based systems, we always first
consider an application of methods and demons.
© Negnevitsky, Pearson Education, 2005 56
Step 5: (Continued)
We create all instances of the class Property at once
when the user clicks on the Continue pushbutton on
the Application Title Display, and then remove
inappropriate instances step-by-step based on the
user’s preferences when he or she selects
pushbuttons on the Query Display.
© Negnevitsky, Pearson Education, 2005 57
The WHEN CHANGED method of the
attribute Load Property
CLASS: Action Data
[S] LoadProperties: [WHEN CHANGED]
INSTANCE: Action Data 1
Class: ActionData
[S] Load Properties: TRUE
WHEN CHANGEDBEGINCurrent InstanceNumber := 0FORGET PropertyFIND dB3 HOUSE 1WHEN FOUNDCurrent InstanceNumber := Current InstanceNumber + 1MAKE Property
WITH Area:= areaOFdB3 HOUSE 1WITH Suburb := suburb OFdB3 HOUSE 1WITH Price := priceOFdB3 HOUSE 1WITH Type:= type OFdB3 HOUSE 1WITH Bedrooms:= bedrooms OFdB3 HOUSE 1WITH Bathrooms := bathroomsOFdB3 HOUSE 1WITH Construction := construct OFdB3 HOUSE 1WITH Phone:= phoneOFdB3 HOUSE 1WITH Pictfile := pictfile OFdB3 HOUSE 1WITH Textfile := textfile OFdB3 HOUSE 1WITH InstanceNumber := Current InstanceNumber
FIND ENDTotal Number of Instances := Current Instance NumberGoto First Property OFActionData:= TRUE
END
© Negnevitsky, Pearson Education, 2005 58
Demons for the Query Display
DEMON 1
IF selected OF Central Suburbs pushbutton
THEN FIND Property
WHERE Area OF Property <> "Central Suburbs"
WHEN FOUNDFORGET CURRENT Property
FIND END...
DEMON 5IF selected OF House pushbutton
THEN FIND Property
WHERE Type OF Property <> "House"
WHEN FOUND
FORGET CURRENT Property
FIND END
© Negnevitsky, Pearson Education, 2005 59
The WHEN CHANGED method of the attributes
Load Instance Number and Goto First Property
CLASS: Action Data
[S] Load Properties: [WHEN CHANGED]
[S] Load Instance Number: [WHEN CHANGED]
[S] Goto First Property: [WHEN CHANGED]
INSTANCE: Action Data 1
Class: Action Data
[S] Load Properties: TRUE
[S] Load Instance Number: TRUE
[S] Goto First Property: TRUE
WHEN CHANGED
BEGINCurrent Instance Number := 0
FIND Property
WHEN FOUNDCurrent Instance Number := Current Instance Number + 1
Instance Number OF Property := Current Instance NumberFIND END
Total Number of Instances := Current Instance Number
Goto First Property OF Action Data := TRUE
END
WHEN CHANGED
BEGIN
FIND PropertyLIMIT 1
WHEN FOUND filename OF Property picturebox := Pictfile OF Property
filename OF Property textbox := Textfile OF Property
FIND END
END
© Negnevitsky, Pearson Education, 2005 60
Step 6:
Define rules
When we design a frame-based expert system, one
of the most important and difficult decisions is
whether to use rules or manage with methods and
demons instead. This decision is usually based on
the personal preferences of the designer.
In our application, we use methods and demons
because they offer us a powerful but simple way of
representing procedures.
© Negnevitsky, Pearson Education, 2005 61
Step 7:
Evaluate and expand the system
We have now completed the initial design of our Buy
Smart expert system. The next task is to evaluate it.
We want to make sure that the system’s performance
meets our expectations.