U-constructor
Problem space: create-operator and (Virtual-)top-space
Operator Overview:
This is the operator that builds pieces of the u-model and it is actually a gensymed operator from the create-operator problem space. Since it does not have an implementation when it is first proposed, there will be an immediate operator no-change impasse and the u-construct space will get selected for the implementation of this operator. Results return to the create-operator space form the basis of the implementation of the u-constructor. Each u-constructor might consist of several link and/or snip operators or it could be just an empty op.

As part of the implementation, the u-constructor operator may have placed on itself ^annotation duplicate-relation, cp-projection, and/or adjunction. (These annotations also become part of the proposal of the u-constructor). The overall function of these annotations is to permit search control productions to be sensitive to these 3 different classes of operators. Click here for a better explanation of these annotations. There is also a special ^annotation empty-op that is part the proposal for an empty operator so that search control can operate on it.

Operator Proposal:
Note that the u-constructor gets proposed and selected twice. The first time is when NL-soar enters the create-operator problem space and it automatically gets proposed. The second time happens after its construction in the lower spaces. The operator return-operator re-proposes it in the top-space.

Operator Application:
The first time it gets selected (in the create-operator space), there will be an operator no-change impasse since NL-Soar has no idea how to implement this gensymed operator.

Once the u-constructor gets proposed and selected in the top space, all the implementation chunks built in the lower spaces fire immediately and these change the structure in the A/R set, in essence building up u-model.

Operator Reconsider:
Reconsidered when the final implementation chunk is learned in the completion space.
Productions are in file: create-operator.constructor.soar

Back to the operator hierarchy.

This page written by Jill Fain Lehman (jef@cs.cmu.edu) and Han Ming Ong (hanming@cs.cmu.edu)