;;;====================================================== ;;; Negnevitsky - media advisor ;;; ;;; ;;; CLIPS Version 6.0 Example ;;; ;;; To execute, merely load, reset and run. ;;;====================================================== (defrule startup => (printout t "we are identifying media to use for delivering a training program" crlf ) (assert (environment machines) ; establish facts about the training task (job repairing) ; (feedback required) ; ) ) ;; in CLIPS, ORs are handled via separate rules (defrule rule1a (environment papers) => (assert (stimulus-Situation verbal)) ) (defrule rule1b (environment manuals) => (assert (stimulus-Situation verbal)) ) (defrule rule1c (environment documents) => (assert (stimulus-Situation verbal)) ) (defrule rule1d (environment textbooks) => (assert (stimulus-Situation verbal)) ) (defrule rule2a (environment pictures) => (assert (stimulus-Situation visual)) ) (defrule rule2b (environment illustrations) => (assert (stimulus-Situation visual)) ) (defrule rule2c (environment photographs) => (assert (stimulus-Situation visual)) ) (defrule rule2d (environment diagrams) => (assert (stimulus-Situation visual)) ) (defrule rule3a (environment machines) => (assert (stimulus-Situation physicalObject)) ) (defrule rule3b (environment buildings) => (assert (stimulus-Situation physicalObject)) ) (defrule rule3c (environment tools) => (assert (stimulus-Situation physicalObject)) ) (defrule rule4a (environment numbers) => (assert (stimulus-Situation symbolic)) ) (defrule rule4b (environment formulas) => (assert (stimulus-Situation symbolic)) ) (defrule rule4c (environment computerPrograms) => (assert (stimulus-Situation symbolic)) ) (defrule rule5a (job lecturing) => (assert (stimulus-Response oral)) ) (defrule rule5b (job advising) => (assert (stimulus-Response oral)) ) (defrule rule5c (job counseling) => (assert (stimulus-Response oral)) ) (defrule rule6a (job building) => (assert (stimulus-Response handsOn)) ) (defrule rule6b (job repairing) => (assert (stimulus-Response handsOn)) ) (defrule rule6c (job troubleshooting) => (assert (stimulus-Response handsOn)) ) (defrule rule7a (job writing) => (assert (stimulus-Response documented)) ) (defrule rule7b (job typing) => (assert (stimulus-Response documented)) ) (defrule rule7c (job drawing) => (assert (stimulus-Response documented)) ) (defrule rule8a (job evaluating) => (assert (stimulus-Response analytical)) ) (defrule rule8b (job reasoning) => (assert (stimulus-Response analytical)) ) (defrule rule8c (job investigating) => (assert (stimulus-Response analytical)) ) (defrule rule9 (stimulus-Situation physicalObject) (stimulus-Response handsOn) (feedback required) => (assert (medium workshop)) ) (defrule rule10 (stimulus-Situation symbolic) (stimulus-Response analytical) (feedback required) => (assert (medium lectureTutorial)) ) (defrule rule11 (stimulus-Situation visual) (stimulus-Response documented) (feedback notRequired) => (assert (medium videocassette)) ) (defrule rule12 (stimulus-Situation visual) (stimulus-Response oral) (feedback required) => (assert (medium lectureTutorial)) ) (defrule rule13 (stimulus-Situation verbal) (stimulus-Response analytical) (feedback required) => (assert (medium lectureTutorial)) ) (defrule rule14 (stimulus-Situation verbal) (stimulus-Response oral) (feedback required) => (assert (medium rolePlayExercises)) ) ;;; all possibilities not covered ? .... ;;; display result (defrule print-answer (medium ?answ) => (printout t t "The format recommended to be used is " ?answ t t) )