Introduction:
This program accomplishes the same goals as my first expert system. It uses the characteristics of fish to aid the user in identifying their fish. In the first Lab, I used Clips to create a rule based classification key. This time, using VisualWorks, I have created a hierarchical fish classification key. Because this lab uses the same classification key and examines the same traits as my first project, much of the information in this paper overlaps with the paper I wrote for the first lab.
Background:
Eighteen fish are classified using this expert system. To successfully classify a fish, the user must be familiar with a number of fish characteristics. These include:
· Scales: Small plates covering the body of the fish.
· Dorsal Fin: The main fin located on the fish’s back.
· Body Shape: The broadness or length of the fish’s body
· Jaw Hinge: Location of the Jaw hinge.
· Patterns and Coloring: Coloring or visible patterns, such as spots and lines of
the fish.
· Barbels: One of the slender, whisker-like tactile organs extending from the head
of certain fishes, such as Cat Fishes.
· Texture: Texture of the body.
· Head: The shape of the head.
· Caudal Fin: The tail of the fish.
· Anal Fin: Single fin located in front of the caudal fin on the ventral side of the
fishes. Acts as a stabilizer to prevent rolling
· Adipose Fin: Sits between the dorsal fin and the caudal fin.
Here is a diagram detailing some of the characteristics examined:

a – pectoral fin
b – pelvic fin
c- anal fin
d – caudal fin
e – dorsal fin
f – operculum
g – eye
f – mouth
The information for the fish classification key was given to me by my mother who teaches science at Edinburg Public High School. It is the same key she used to teach me in Biology class. Most of the information was obtained from the Holt Science Biology Book.
What I did:
My
system prompts the user to examine the physical characteristics of the
fish. It will continually query the
user until the fish is identified. Each
node in the hierarchy requires information from the user in order to progress
to the next node. The user will answer
which trait describes the fish. When
the user determines which trait describes their fish, they will be directed to
the next question. Eventually, the user
will find the name of the species instead of a new pair a new question. At this point, you will know the species of
fish you were viewing.
Sample Run:







Error Situation:
An error situation would occur if a data base variable were to have the value “unknown”. This expert system was not designed to handle “unknown” as an input.
Limitations:
· Only classifies 18 fish.
· Does not correctly handle “unknown” as input.
· Does not provide the user with meaningful graphics, only text.
Goodness:
As I stated in lab 1, this tool may be an aid to
biologists who wish to determine water
quality by identifying what inhabits the waters. Not only could this tool help in assisting new field workers, it
could be helpful to experienced scientists as well.
Novice sportsmen and wildlife
enthusiasts may also find this to be a useful in identifying their catch.
Future
Enhancements:
· Add pictures to make identifying the traits of a fish easier.
· Handle “unknown” as input by suggesting a group of possible fish.
· Add more species of fish.
Knowledge Representation, Organization and Control
Methodology:
Each node in the specialist corresponds to a database variable concerning a characteristic of a fish. Each node asks the user a question regarding a certain trait. Every time the user answers a question, a database variable is assigned a new value. The table matcher in each node looks at only one database variable to decide if it should progress to the next level of the specialist. If the database variable in question has the correct value, it will progress down the same search path. Otherwise, It will prune the subordinate nodes and traverse a new path. Eventually, the user will reach traverse all levels of one path and arrive at the correct fish.
Scaleable:
This system is fairly scaleable. New fish may be added, but it could be tricky to add new fish if they use the same characteristics for identification as any of the fish already present in the system.
What I Like:
The system is efficient because it can immediately prune half the nodes and continually prunes as the user progresses. I also like the fact that the user can visually trace the results of the problem solver. This is consistent with the trend to make more programs more graphical instead of text based.
What I Would Do In the Future:
I would redesign my system to be more scaleable. I would do this with more grouping. As my system is now, everything is at one level. It can look a bit overwhelming to the user. I would like to redesign my system to contain hierarchal classification system within each node. This would clean up my design and would make it much simpler to add new fish to the system.