CSCI222 Lab2:- Expert System

Task : Classification

Domain : Gills Mushrooms

Tool : VisualWorks(R), Release 2.5.1 of September 26, 1995
         Image files : Gt-ps (Generic Task -Problem Solver)

Title : Gills Mushrooms Expert System
 
Impage file for gills mushroom problem solver (Save this file) : FATMush  In order to run this file, it needs VisualWorks(R), Release 2.5.1 of September 26, 1995 and Image files : Gt-ps (Generic Task -Problem Solver)

Introduction    BackgroundReference  What others have done in this and related areas
What I actually did   Knowledge representation   Control Methodology   scalable?
What do you really like about your methodology  A description of the solution/algorithms  A sample run
A sample run of possible error situations  The system limitations   Future Works


NOTE : This system is just a tool to help you classify Agarics. Since deadly poisons are found in many species of the genera Amanita and Gelerina which are grouped under the Agarics, it is your responsibility not to experiment with mushrooms that you cannot positively identify.

The information that I used in this program I got from these books:

[1] Bigelow, Howard E., MUSHROOM pocket field guide, New York: Macmillanpublishing co., inc., 1974

[2] Hesler, L. R., MUSHROOMS of the great smokies, Tennessee: The university of Tennessee Press, 1960

[3] Orr, Robert T., and Orr, Dorothy B., Mushrooms of Western North America, California : University of California Press, Ltd., 1979

[4] Knopf, Alfred A., Familiar Mushrooms, New York: Chanticleer Press,Ltd., 1990

[5] Bessette, Alan., and Sundberg, Walter J., Mushrooms, New York: MacmillanPublishing Company, 1987

[6] McKenny, Margaret., The Savory Wild Mushroom, Seattle: Universityof Washigton Press, 1962

[7] Arora, David., Mushrooms Demystified, California: Ten Speed Press,1979

[8] Atkinson, George Francis., Mushrooms, second edition, New York: Hafner Pub. Co., 1961

[9] Smith, Alexander H. Smith Helen V. and Weber Nancy S., How to know that Gilled Mushrooms, Iowa: The Pictured Key Nature Series, 1979


Introduction

      Since I like to eat mushrooms and saw a lot of mushrooms growing in my backyard, I wanted to learn how to classify them. Combining my interest in computer with my love of mushroom I worked on a classification application when I studied my bachelor degree in Thailand. I used C Language to build a Mushroom Classification Expert System but it did not impress me much because it contained bunches of IF-THEN statements. After I have worked a little bit on CLIPS now that I am in the States, I re-wrote my expert system using CLIPS I made it better than the previous one. Only at this time, I narrowed my mushrooms data down to the group of gills mushrooms, known as Agarics, in the north weat America.
     Even though CLIPS makes my expert systems close to what I expected, I still have a hard time to program and update it.  Because I have to program both control unit to solve my task and knowledge unit to re-present data of my domain. Structure Matcher(SM) is such a tool that I am looking for because SM itself does all the control units so that the programmer can focus only on the domain problem.  This project, I use the Simple Hierarchic Classification Problem Solver class implemented in the Generic Task-Problem Solver image file working on the VisualWorks.

 

Background

       There are a lot of fleshy fungi in the United States and adjacent Canada. Bigelow [1] grouped the fungi into11 groups including Agarics, Bolets, Hydnums, Clavarias, Polypores, JellyFungi and Relatives, Puffballs, Bird’s Nest Fungi, Stinkhorn, Earth Star,and Morels and Cup Fungi. They are mostly found from April to November and during the winter months if there is enough moisture. The Gilled mushrooms are the largest group, of interest to the mushroom hunters. The gilled mushroom includes both the most dangerous poisonous species and the best edible ones. The gill fungi are called Agarics. Figure 1 illustrates the parts of a mushroom of the Agarics. Figure 2 shows where the Agarics belong in the mushroom classification tree.

Figure 1 Parts of a mushroom [2]

Figure 2 The scope of this system



 

What others have done in this and related areas

http://www.cnbc.cmu.edu/~medler/papers/mushroom.html:- Canadian Artificial Intelligence, Winter 1996, 38, 14-17
This page contains the information in Biological Computation project at the Department of Psychology in University of Alberta. The project names "Of Mushrooms and Machine Learning: Identifying Algorithms in a PDP Network" by Michael R. W. Dawson & David A. Medler. "The purpose of the current experiment was to determine if an artificial neural network could learn to identify correctly a mushroom as edible or not. In particular, we were interested in seeing whether--after the network converged--we could determine the rules that it used to classify mushrooms."

http://www.cs.waikato.ac.nz/~ml/publications.html:- Objective measurement of mushroom quality by           Kusabs N., Bollen F., Trigg L., Holmes G. and Inglis S. (1998) Proc New Zealand at the Institute of Agricultural Science and the New Zealand Society for Horticultural Science Annual Convention,Hawke's Bay, New Zealand, pp 51. "This paper describes a methodology for establishing an objective measurement of mushroom quality, based on a set of measured physical attributes. These attributes were used by a machine learning tool to model quality based on the classification of professional graders (experts)."

http://www.mykoweb.com/BAF/agaric.html
This webpage contains information of the Bay Area Agarics (Gilled Mushrooms) and it is written by Michael Wood & Fred Stevens. This page contains all information about each Agarics and includes nice pictures.

 

What I actually did

       This expert system is called Gills Mushroom and it gives you some information about the popular Agarics, frequenly found in California, Oregon, and Washington. This system helps users classify mushrooms. There are 50 gills mushrooms or Agarics in this system.

       What the system actully does is asking questions about the mushroom that users want to find out about and if there is enough information for the system to identify that particular mushroom the system will give an answer right a way. There are 2 kinds of questions that are used in this system. The first one is aYES/NO question and the multiple-choice question.

        I use the Simple Hierarchic Classification Problem Solver class to implement my expert system because I want to use the picture capture and launcher features in this particular class (Simple HCwithRxPS).  I add a couple of pictures for the important questions and some pictures, if it is available, of those 50 gills mushrooms .

 

knowledge representation and organization

        Knowledge representation in Gills mushrooms expert system is the Hierarchic Classification Tree.  For example, figure 4 shows parts of the knowledge that represent in this system.


Figure 3 Parts of the knowledge repersented in this system

        According to figure 3 gills mushrooms consists of those families (blue ink): Cortinaricaceae, Paxillaceae, and Gomphidiaceae.  Also family Gomphidiciaceae consists of two genera: Chroogomphus and Gomphidius.  The relation from the root to the leaves, represents the "is superset of" such as Gills Mushrooms is the superset of those three families, and Gomphidiaceae is the superset of Chroogomphus.

        In each node of this system contains structure matcher in order to find out whether the particular mushroom is subset of that particular node or it is not.  To find out that answer, each node contains the particulate information to determine itself.  For instance, Gills mushrooms node contains one variable name "HAVE_GILLS".  The struture matcher at this node just need to find out what is the value of HAVE_GILLS, which is the answer of the question "Does it have gills?".  If the answer is "YES", it will refine to the next level.

 

Control Methodology
(i.e, this may include both the problem-solving strategy specifics and information about the knowledge structure since they may be related)

I use Hierarchic Classification Problem Solver (HCPS) to solve my problem.  Since my problem is to classify mushrooms, it is obvious to use the HCPS.  I also add pictures to illustrate the mushrooms parts and the most popular mushrooms including in this system.

As I explain a little bit in the  Knowledge representation section above, in each note of the Hierarchic Classification tree contains its structure macther (SM) table in order to identify itself.  So that at first it will try to establish the first node and then refine to the next level.  For example, from figure 3 the system will start with gills_mushroom, it will try to find out by looking at the SM in the gilss_mushroom node, which has one variable "HAVE_Gills" so the the system will ask the appropriate question containing in the Database about the "HAVE_Gills" variable.  If the answer leads SM to Weekly Match, Match or Strongly Match, the system will go to the subtree of that particular node and try to find out about that node ,repeating until it cannot go any where becaue it gets to the end of the leave, it will stop and give the answer. 

 

Do you see your strategy as scalable? Why?

Yes. The Hierarchic Classification Problem Solver (HCPS) is scalable.  It asks the question to find out about the particular information so that it can prune the space in the Hierarchic Classification tree and get to the answer very quick.  For example, the mushrooms can be groups by the spores color so that by using the data about spores color the system can take out the not qualify nodes and go by the qualify nodes only.

 

What do you really like about your methodology (knowledge representation and control)?

I like this knowledge representation because it gives the clear picture about the domain knowledge.  In my sistem the Hierarchic Classification tree gives the obvious picture about how to classify the mushrooms and it is also easy to add new knowledge because I do not have to change the whole tree.  I just have to change the particular node or add subtree into the particular node.

I like the control of the HCPS becuase it is so simple and clear.  The HC tree show that if "the unknown thing" is A then go to find out which one of subtree under A that "the unknow thing" is belong to.  If there is an answer, it is not a problem but if there is no answer, it might because of the limited knowledge in the system. So that we can improve the systems.

 

A description of the solution/algorithm

There are a lot of solutions to classify mushrooms. Since I am not the mushrooms expert, I try to use the easy field classification technique in my system.  The field classification technique is the way of using the obvious characters of the mushrooms that does not require much experiences such as the spore color, cap color, cap shape, stipe shape, gills color, gills type, and flesh color.  Those details do not require any experiences, additional, I add pictures to expain in detail about each characters so that I think this system is easy for all the mushroom classification beginner as me to use without any problems.

 

A sample run

The first question that the system will ask is the question about Gills which contains in the SM at the root node, gills_mushroom.
This question has a picture that goes with it.  This is the Yes/No question.

Figure 4 shows the first question

 

Then user needs to answer the question that the system will give.  Figure 5 shows another type of question, the multiple choices question.

Figure 5

The system will ask question until it finds the answer, in other words, it gets to the end of the leave in the HC tree. The system will shows the answer. There are two possible kind of answers that users will get. The first kind is the multiple answers and other one is single answer.

Figure 6 shows single answer

Figure 7 shows multiple answer


 

A sample run of possible error situations

The olny error is that there is no answer for the particular mushroom, it may cause by the limited information or the error of the misunderstanding of the users when thery answers the questions.  Figure 8 shows the error message that come out when there is no answer.


 

The system limitations

Since I focus on the Mushrooms in the west coast, this system does not contain all the gills mushrooms.

Because I want this system to use by those who want to be a mushroom expert but do not have much experiences. I limit the details to those character that easy to see and identify such as color and shape but some mushrooms are hard to identify so that this system is not 100% sure about the answer. At least this system can give some big picture of how to classify the mushroom.

I try to use the multiple selection variable provided in the system but it does not work so that I use OneOf variable instead.

 

The Future Work

If you had more time, resources, knowledge, etc., what else would you do for this program?

I would like to add more knowledge and go into more specific details about how to classify those gills mushrooms.  Maybe I would like to a develope the Mushrooms Expert for using in the Lab so that those students can perform the Acid or some toxic chemical test. It will be fun.  For the boring class such as Science for those young kids who will become furture power of the world.