The Soar CIC conventions document strongly interdicts mixing PSCM (state elaboration, operator proposal, operator comparison, operator elaboration, operator application) functions in a single rule. In particular:
Testing a selected operator in a rule and then creating a preference for another operator
Testing for a currently proposed operator in the condition of another operator's proposal (or application) rule
Testing a proposed operator in the conditions of a rule that modifies a state (outside of the operator).
As problems from such productions generally popup at a future unknown time, it may not be clear to users immediately that this is so unadvisable.
John says there are warnings already, but they are routinely ignored. Might just be that we need a strict mode where warnings for sp and gp are errors. Or maybe these warnings are hidden by default? Had this issue previously because 9.6.0 tied more warnings to chunking being turned on. Or maybe the warnings need to be worded more strongly, point to more detailed documentation, etc.
The Soar CIC conventions document strongly interdicts mixing PSCM (state elaboration, operator proposal, operator comparison, operator elaboration, operator application) functions in a single rule. In particular:
As problems from such productions generally popup at a future unknown time, it may not be clear to users immediately that this is so unadvisable.
John says there are warnings already, but they are routinely ignored. Might just be that we need a strict mode where warnings for
sp
andgp
are errors. Or maybe these warnings are hidden by default? Had this issue previously because 9.6.0 tied more warnings to chunking being turned on. Or maybe the warnings need to be worded more strongly, point to more detailed documentation, etc.