University of Washington, Bothell
CSSIE 482: Expert Systems
Winter 2009
Running Laboratory Project: A Recommendation Expert System

In our labs and associated class discussions, we will work on an expert system that aids in the selection process of a suitable shrub for planting. The table below lists several shrubs and indicates whether each shrub possesses certain characteristics, which are: tolerance to cold weather, tolerance to shade, tolerance to drought, tolerance to wet soil, requirement for acidic soil, tolerance to city dwelling (high pollution), tolerance to growth in a container, whether the shrub is easy to care for, and whether the shrub is fast growing. An “X” indicates the shrub has the characteristic. Note that some of these characteristics represent conditions that the plant tolerates (but does not require), some are requirements, and some are “ordinary” characteristics (they match user desires). Based on interaction with the user, our system should present a list of suitable shrubs.











Shrub

ColdShadeDryWetAcidCityPotEasyGrows

Soil Soil Care Fast




















French hydrangea

X X X X

Oleander

X X X X

Northern bayberry

X X X X X X X

Box honeysuckle

X X X X

Gardenia

X X X

Common juniper

X X X X X

Sweet pepperbush

X X X X X

Tartarian dogwood

X X X X X

Japanese acuba

X X X X

Swamp azalea

X X X X










We will proceed in the following stages:

  1. Determine the fact representation. We will need to devise a “shrub” deftemplate that can hold the above information about a plant, will facilitate the inference process, and leave open the possibility of future expansion.
  2. Hypothesize the overall expert reasoning process. In this case, we don’t have access to an actual expert, but will pretend that we do. If a human expert at a nursery were advising a customer on shrubbery, what would be the starting point? How would the conversation go? Is there an order of information gathering that makes the most sense, or is any order fine? We will use our answers to these questions to design inference control rules and facts and/or salience levels for different classes of rules (along with defining what different classes of rules there will be).
  3. Design and implement the detailed knowledge base. We will do this in an incremental fashion, adding a small number of rules to the KB at a time.
  4. Validate the expert system.