CSE 663, Fall 2003

Sample Production System

(Note: Prints best in landscape mode!)

Last Update: 19 October 2003

Note: NEW or UPDATED material is highlighted

An Example of a Production System, Adapted from Winston 1977: 357-366.

(Note: Syntax and semantics of language used here is a mixture of Lisp and SNePS.)
  1. Problem: Moving furniture

  2. WM: Finite size (e.g., 7 items, or extend to 11);
             Begins with goal; e.g., (put-at table loc1)

  3. Productions (executed in order):

  4. Click Here for an Example (in Excel)

  5. Exercises:

    1. What happens if

        find (*object supports ?x)

      in P7 returns

        (table supports lamp)?

    2. What happens in the previous situation if WM can hold at least 11 items?

    3. What happens if, instead of "(*object supports nothing)" in P5, we used negation by failure:

        IF  : (grasp $object);
              not (*object supports $obstruction);
        THEN: mark (first WM);
              add (move *object);
              do (move-hand (top-of *object));
              do (grasp *object).

    4. Implement this system in Lisp (or your favorite programming language).

      • For implementation hints in an old version of Lisp, see Winston 1977: 360-366.

    5. (Hard) Implement this system in SNePS.

      • Hint: You may need to make use of the SNePS Rational Engine (SNeRE), which turns SNePS into a knowledge-representation, reasoning, and acting system!


Winston, Patrick Henry (1977), Artificial Intelligence (Reading, MA: Addison-Wesley).

Copyright © 2003 by William J. Rapaport (rapaport@cse.buffalo.edu)
file: 663/F03/prodsys.eg.2003.10.19.html