This page gives some brief notes on IO and the phonological buffer in NL-Soar7
Phonological buffer model
NL-Soar extends Soar with a model of a phonological buffer (roughly
based on the work of Baddeley and Wiesmeyer). This provides an input
buffer that allows the model to postpone processing words immediately
upon their arrival. Without the buffer, we might lose each word as
the next one arrived, forcing us to abort processing and move to the
next word to ensure that we have an opportunity to consider every word.
Instead, with the buffer, words are available for at least 2 seconds
(of virtual time) before they disappear, so we postpone this "use it
or lose it" decision.
The phonological buffer evolved from work on
NTD-Soar, which tried to
extend the Mark Wiesmeyer's work on visual attention to model auditory
attention as well. It has been further modified and extended by work
on nl-soar-sphinx, but we will only
describe the basic version here.
Manipulating the phonological buffer in nl-soar7
Important note : many of the advanced features of the phonological buffer
have not been tested since the conversion of nl-soar from soar6 to soar7.
Command : nl-io
Syntax: (nl-io arg*)
arg ::= :new-sentence {on|off}
arg ::= :smodel-debug {on|off}
arg ::= :umodel-debug {on|off}
arg ::= :word-timings {on|off}
arg ::= :smodel-size x y
arg ::= :umodel-size x y
arg ::= :phono-buf capacity decay
arg ::= :regression {file}
This command controls a number of user-selectable parameters of the nl I/O system.
- with no argument the command returns the current status of nl variables.
-
When new-sentence is on, a new sentence will be requested after each init-soar.
- The umodel (utterance model) and smodel (situation model) debug flags
determine whether debugging information is printed during calls to the
graphing routines for that model.
- Word-timings, when selected, provides the opportunity to specify the
arrival time of each word independently. The value of this flag will effect the way new-sentence will ask for new sentence input details.
- The size arguments control the size of the grapher display window, in pixels.
- The regression argument forces the dump to be to a file saved in regression test format.
- The phono-buf argument controls the size of the phonological buffer
Command: select-system
Syntax: (select-system comrehension|generation)
This selects the system to be run after the next init-soar.
Command: new-sentence
Syntax: new-sentence
This command is used to add or change the sentence to be processed. The way in which a new sentence is entered will depend on the value of the word-timings parameter to the nl-io command. If this parameter is off then the word spacing between words will take on a default value of 350 ms (i.e., words will enter the phonological buffer at regular 350 ms intervals. In order to specify individual word durations the parameter must be on .
What happens to Words as they enter the IO Link ?
This section will briefly discuss how words are processed from when they appear on the input link until they drop out of the phonological buffer.
- The word enters the phonological buffer by being placed on the io.auditory-input attribute. Two of these attributes appear for each word: one represent speaker information, the other the word information. Nl-soar prints a message : Soar hears you say: {word} .
- For every word that is on auditory input that :
- is from a speaker that should be attended (there is an attended-speaker attribute on the top state for the speaker of the word)
- has not already been attended (there is no attended-auditory-input attribute on the top-state for the word)
an access-operator will be proposed for the word. Search control ensures that earlier words are accessed first. NB In tacair this search control is improved. Access operator proposal top*po*access*all-processed*nova-pb .
- During access, a attended-auditory-input for the word is added to the top-state. Production top*ao*access*copy-attended .
- The attended-auditory-input attribute on the top state causes a sentence attribute to be added on the top state for that word. top*augment*auditory-input*sentence*nova-pb .
- When a word out of the phonological buffer, it is removed from the io.auditory-input and NL-soar prints the message The word {word-name}decays from the phonological buffer .
- During access operator, any words that have fallen off the phonological buffer (since the last access) are removed from the top state attended-auditory-input attribute by the production top*ao*access*delete-decayed .
- Other attributes that were dependent on the attended-auditory-input
attribute either directly or indirectly by (none o-supported) laborations will also be removed.
E.g. the sentence attribues, ordering-info, adjacency-info etc.
This page written by Mark H. Smith, April 1997.