Running the program


next up previous
Next: Names of things
Up: Classifying animals (PP)
Previous: Classifying animals (PP)
Back: to main list of student notes

Running the program

Another distinction I made was between ``observable'' and ``non-observable'' data. Given an expert system for diagnosing blood infections, it would be reasonable for it to ask for the patient's age and sex, and for the location of major wounds. It would be less reasonable for it to ask for the genus and species of the organisms present in the blood: this can not be observed directly, and is what the system is supposed to be inferring. In the animal classifier, I intended the observable data to be everything about an animal except its classification, which is_a is supposed to find for you. So to find out what an animal is, first give it an arbitrary name, e.g. pip. Then add facts describing what you can observe about it:

    gives_milk(pip).
and so on. Then ask
    is_a( pip, X ).

Try this by inputting three facts to tell Prolog that Pip is (a) feathered; (b) black-and-white; (c) able to swim. Ask what kind of animal he is. Then try the same for a few other animals. This resembles what you did with the skiing advisor.


next up previous
Next: Names of things
Up: Classifying animals (PP)
Previous: Classifying animals (PP)
Back: to main list of student notes



Jocelyn Paine
Tue Jun 4 17:58:48 BST 1996