public void propagateFramePartialTruth(ControlFrame target) { { PartialMatchFrame source = this; { PartialMatchFrame targetpmf = target.partialMatchFrame; boolean flippolarityP = !(source.controlFrame.reversePolarityP == target.reversePolarityP); if (targetpmf == null) { if (flippolarityP) { targetpmf = ((PartialMatchFrame) (Surrogate.createObject( source.primaryType(), Stella_Object.cons( Logic.KWD_CONTROL_FRAME, Stella_Object.cons( target, Stella_Object.cons( Logic.KWD_KIND, Stella_Object.cons(target.state, Stella.NIL))))))); targetpmf.parent = source.parent; targetpmf.child = source; } else { targetpmf = source; } target.partialMatchFrame = targetpmf; } if (flippolarityP) { targetpmf.positiveScore = 0 - source.positiveScore; targetpmf.negativeScore = source.positiveScore; } else { targetpmf.positiveScore = source.positiveScore; targetpmf.negativeScore = source.negativeScore; } KeyValueList.setDynamicSlotValue( ((QueryIterator) (Logic.$QUERYITERATOR$.get())).dynamicSlots, Logic.SYM_LOGIC_LATEST_POSITIVE_SCORE, FloatWrapper.wrapFloat(targetpmf.positiveScore), Stella.NULL_FLOAT_WRAPPER); } } }