Production memory

Production memory as a list

The production memory is implemented here as a single list of productions or rules called "rules.

Individual productions

Individual productions are implemented as two-element listsSince all of the productions follow a common pattern, however, they have been represented in a very abbreviated fashion.

Each production is handled as a two element list. The first element of the list is the name of a constituent or category (let's call it C) to be searched for in working memory. The first element of the list stands for the condition part of the production and could be expanded as:

IF the working memory contains (category) C

The second element of the list is a list of alternative rewrites of, or substitutions for the category C. If we call the substitution list SL, then this second element of the list stands for the action part of the production and might be expanded as:

THEN replace C in working memory by any one of the elements of SL

Setting up the production memory in Logo

The list of rules is here set up using as a global variable using make. This is fine for a short list of rules but different tactics would probably be necessary if the list became at all long.

make "rules
[np [[det n] [det adj n] [propn]
[adj propn]]]
[vp [[vi] [vt np] [vs dep.s]]]
[vs [[hopes] [doubts] [denies]]]
[vt [[likes] [hates] [bites]]]
[vi [[smokes] [sleeps] [fights]]]
[n [[dog] [cat] [pig] [goat] [horse]
[det [[the] [my] [a]]]
[adj [[very adj] [stupid] [big]
[propn [[john] [mary]]]
[adv [[on tuesdays] [today]
[comp [[that]]]
[dep.s [[comp s]]]
[s [[np vp] [adv s]]]

Ron Brasington
Department of Linguistic Science
The University of Reading