Another theoretical possibility would be the presence of rules that would
recreate the end_mill_non_indexable facts.
-W

On Thu, Apr 15, 2010 at 8:18 PM, Ernest Friedman-Hill <[email protected]>wrote:

> Looks perfect, and should work fine. The only way it might not work -- that
> I can think of -- would be if some of the slots of those facts are populated
> with Java objects with bad (i.e., changing over time) hashcode values, in
> which case working memory can be corrupted.
>
> You say you know the rule is firing; did you use "watch all" and if so, do
> you see something like this, where you can see both the rules firing and the
> facts being retracted?
>
> FIRE 1 MAIN::remove-end-mill-non-indexable f-4, f-3
>  <== f-3 (MAIN::end_mill_non_indexable (name n4) (diameter nil) (length
> nil) (flutelength nil) (flutes nil) (cornerradius nil) (material nil))
> FIRE 2 MAIN::remove-end-mill-non-indexable f-4, f-2
>  <== f-2 (MAIN::end_mill_non_indexable (name n3) (diameter nil) (length
> nil) (flutelength nil) (flutes nil) (cornerradius nil) (material nil))
> FIRE 3 MAIN::remove-end-mill-non-indexable f-4, f-1
>  <== f-1 (MAIN::end_mill_non_indexable (name n2) (diameter nil) (length
> nil) (flutelength nil) (flutes nil) (cornerradius nil) (material nil))
> FIRE 4 MAIN::remove-end-mill-non-indexable f-4, f-0
>  <== f-0 (MAIN::end_mill_non_indexable (name n1) (diameter nil) (length
> nil) (flutelength nil) (flutes nil) (cornerradius nil) (material nil))
>
>
>
>
> On Apr 15, 2010, at 9:16 AM, Adam Malik wrote:
>
>  Dear Jess users,
>>
>> My JESS-code contains two templates,
>>
>> (deftemplate MAIN::end_mill_non_indexable
>>   (slot name) (slot diameter) (slot length) (slot flutelength) (slot
>> flutes) (slot cornerradius) (slot material))
>>
>> and
>>
>> (deftemplate MAIN::face
>>    (slot length)
>>    (slot width)
>>    (slot roughness)).
>>
>> The working memory contains end_mill_non_indexable facts.
>>
>> This is the rule I want to fire:
>>
>> (defrule MAIN::remove-end-mill-non-indexable
>>    "removes some tools"
>>                ?f <- (face)
>>                ?t <- (end_mill_non_indexable)
>>    =>
>>                (retract ?t)
>>    )
>>
>> If I assert a face-fact the rule is firing but the retract-command seems
>> not
>> to be working correctly. The working memory still contains all
>> end_mill_non_indexable facts. Why? The rule should remove ALL
>> end_mill_non_indexable facts!
>>
>> Thanks in advance for your help.
>>
>> Adam
>>
>>
>>
>>
>> --------------------------------------------------------------------
>> To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
>> in the BODY of a message to [email protected], NOT to the list
>> (use your own address!) List problems? Notify [email protected]
>> .
>> --------------------------------------------------------------------
>>
>
> ---------------------------------------------------------
> Ernest Friedman-Hill
> Informatics & Decision Sciences, Sandia National Laboratories
> PO Box 969, MS 9012, Livermore, CA 94550
> http://www.jessrules.com
>
>
>
>
>
>
>
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
> in the BODY of a message to [email protected], NOT to the list
> (use your own address!) List problems? Notify [email protected].
> --------------------------------------------------------------------
>
>

Reply via email to