Whats an attribute impasse, and how can I detect them?
Attribute impasses occur if you have two values proposed for the same slot. e.g., ^name doug + ^name pearson + leads to an attribute impasse for the ^name attribute. It is a bit like an operator tie impasse (where two or more operators are proposed for the operator slot). The effect of an attribute impasse is that the attribute and all its values are removed from working memory (which is probably what makes your program stop working) and an “impasse” structure is created. (Soar 7, this is not provided by default in Soar 8.) It is usually a good idea to include the production: sp {debug*monitor*attribute-impasses*stop-pause (impasse ^object ^attribute ^impasse) –> (write (crlf) |Break for impasse | (crlf)) (tcl |preferences| | | | 1 |) (interrupt)} in your code, for debugging. If an attribute impasse occurs, this production will detect it, report that an impasse has occurred, run preferences on the slot to show you which values were competing and which productions created preferences f