More on Production Systems
Why Do People Build Production Systems?
- Because they can sometimes solve problems for us automatically.
For example, a production system might partially simulate an expert in a
field such as medicine, law, or chemistry.
- Because they may be a way to model and better understand
For example, a production system might tell us how a person attempts
to solve an Eights puzzle or produces a sentence.
Some More Details
- The individual "facts" which make up Working Memory and
the parts of both sides of rules are called clauses.
- In our production system language, all clauses will be surrounded
- There is normally no ordering to the clauses in Working Memory.
Working Memory really means: CLAUSE1 and CLAUSE2 and
- Unlike English sentences, clauses begin with the symbols for the
relations that tie the parts of the fact together or with NOT if the
fact is negative:
(GIVE MARY CD24 JOHN), (DIED ABRAHAM_LINCOLN 1865),
(NOT (COMPREHEND CHARLIE_BROWN (SPEECH-OF TEACHER35)))
- Within clauses the order of the things does matter:
(GIVE MARY CD24 JOHN) is not the same as (GIVE MARY JOHN CD24)
- Inside clauses, a single "thing" can either be a symbol,
like JOHN or CLAIM or GREEN or XQTHRM003 or a group of symbols surrounded
by parentheses, like (PERSON (AGE 35) (SSS# 335907765))
or (WORD (A MER I CA)).
- Pattern matching works roughly like this:
- A clause matches another clause only if all of the corresponding
parts match. The order of the parts matters.
- A variable (something like ?X or ?CENTER or ?YGNNEE)
matches any single thing, for example, JOHN or (WORD (A MER I CA)), but
not JOHN MARY.
But once a variable matches something, it is "bound" to that thing
until you finish with the rule.
So if you run into the variable a second or third time in the rule (on
either the left-hand or right-hand side), it only matches thing it
matched the first time (its "binding").
When you start over again with a rule or try to match a new rule,
the bindings go away and variables again match anything.
- A symbol other than a variable matches a variable (unless the variable
is already bound to something else) or exactly the same symbol.
So JOHN matches JOHN and ?Z, and ABOVE matches ABOVE and ?Q but
- An expression with parentheses around it inside a clause matches
a variable (unless the variable is already bound to something else)
or another expression if all of the corresponding parts match.
So (PERSON (AGE 35) (SSS# 335907765)) matches
(PERSON (AGE 35) (SSS# 335907765))
or (PERSON (AGE ?AGE) (SSS# ?SSS#))
or (PERSON ?S ?T),
but not (PERSON ?J).
Take me back to the Rhythm and Cognition
Last updated: 16 November 1995
Copyright 1995, The Trustees of