Review this document.
Read Chapter 10 (Modular Design and Execution Control) and pages 47-54 in the text "Expert Systems: Principles and Programming."
Additional information about the MYCIN approach to certainty factors and CLIPS code to implement this approach is available. Use the CLIPS code provided to assist with certainty factors in this problem.
After initial interviews with the domain expert, the knowledge engineer decided a small prototype should be constructed that would recommend tillage systems on a field by field basis. Four possible tillage systems were chosen: No-till, Chisel/disk, Ridge-till and Conventional (plow, disk, etc.). The primary concern for this system is reduction of soil erosion potential.
The knowledge engineer and domain expert decided that many of the rules would contain uncertainty. Belief that a tillage system should be recommended will be accumulated and reported to the user along with the recommended tillage system(s). Only tillage systems with a final certainty greater than 40 should be reported to the user. MYCIN-like (see mosaic notes in week 11) certainty factors were selected for the prototype. The rules for combining certainty factors are implemented in a separate file called cf.clp (copy it from ~engelb/565/cf.clp) to allow their re-use in this and other projects.
The following parameters were determined to be important:
slope - representative slope profile of the field possible values: slight moderate steep erosion class - degree of erosion for the field possible values: severe moderate slight current equipment - the current tillage equipment system that is owned possible values: Conventional Chisel-Disk No-till Don't own equipment Ridge-till
The following relationships between input parameters and
the recommended tillage system were derived:
If a tillage system is recommended and that
tillage system is currently owned,
then increase the belief in that tillage system
with a certainty factor of 40.
This can be written in CLIPS as:
(defrule increase-belief (oav (object equipment) (attribute owned) (value ?x)) (oav (object equipment) (attribute recommended)(value ?x) (cf ?cf&:(> ?cf 0))) => (assert (oav (object equipment)(attribute recommended)(value ?x) (cf 40))))
No-till is the recommended tillage system for the following conditions:
erosion class is severe certainty 70 slope is steep certainty 80 erosion class is moderate and certainty 60 slope is moderate erosion class is moderate and certainty 40 slope is slight
A conventional tillage system is recommended for the following conditions:
slope is slight certainty 50 slope is steep certainty -90
A chisel-disk tillage system is recommended for the following conditions:
erosion class is severe certainty 30 erosion class is moderate certainty 40 erosion class is slight certainty 60 slope is steep certainty -95
A ridge-till system is recommended for the following set of conditions:
slope is steep certainty -40 slope is moderate certainty 20 slope is slight certainty 40 erosion class is severe certainty 25
A rule recommending ridge-till for steep slopes might be written as:
(defrule ridge-till-1 (oav (object field)(attribute slope)(value steep)) => (assert (oav (object equipment)((attribute recommended) (value ridge-till) (cf -40)
Since only tillage systems with final certainty factors greater than 40 will be reported, a rule should be written to recommend tillage systems only when certainty factors are greater than 40.
Turn in (email) a file listing of the rules and facts that you used. Also turn in an example run (UNIX script command can be used to create such a file).