Hi all,
I have a problem with retracting. I`ve the following rule:
(defrule rule-walk-to
?w <- (walk-to (agens ?t) (destination ?l) (OBJECT ?o))
?oldloc <- (located (thing ?m) (location ?l2) (OBJECT ?o2))
=>
(printout t "*** retracting ******* " crlf)
(retract ?oldloc)
(retract ?w)
(printout t "*** retracting ******* " crlf)
)
When i run the jess machine, i`ve the following facts:
Fact : 0 (MAIN::initial-fact)
Fact : 5 (MAIN::adjacent (class <External-Address:java.lang.Class>)
(locale1 <External-Address:vs.storyworldontology.Forest>) (locale1_type
<External-Address:java.lang.Class>) (locale2
<External-Address:vs.storyworldontology.Mountains>) (locale2_type
<External-Address:java.lang.Class>) (OBJECT
<External-Address:vs.storyworldontology.Adjacent>))
Fact : 6 (MAIN::adjacent (class <External-Address:java.lang.Class>)
(locale1 <External Address:vs.storyworldontology.Mountains>) (locale1_type
<External-Address:java.lang.Class>) (locale2
<External-Address:vs.storyworldontology.Desert>) (locale2_type
<External-Address:java.lang.Class>) (OBJECT
<External-Address:vs.storyworldontology.Adjacent>))
Fact : 7 (MAIN::located (class <External-Address:java.lang.Class>)
(location <External-Address:vs.storyworldontology.Mountains>) (location_type
<External-Address:java.lang.Class>) (thing
<External-Address:vs.storyworldontology.Princess>) (thing_type
<External-Address:java.lang.Class>) (OBJECT <External-Address:vs.stor
yworldontology.Located>))
Fact : 10 (MAIN::walk-to (agens
<External-Address:vs.storyworldontology.Princess>) (agens_type
<External-Address:java.lang.Class>) (class
<External-Address:java.lang.Class>) (patiens
<External-Address:vs.storyworldontology.Mountains>) (patiens_type
<External-Address:java.lang.Class>) (OBJECT
<External-Address:vs.storyworldontology.WalkTo>) (destination
<External-Address:vs.storyworldontology.Desert>) (destination_type
<External-Address:java.lang.Class>))
As shown by (watch all), the rule fires using fact 10 and fact 7
FIRE 1 MAIN::rule-walk-to f-10, f-7
So far so good.
But then the retracting doesn`t work; The output is:
*** retracting *******
<== f-10 (MAIN::walk-to (agens
<External-Address:vs.storyworldontology.Princess>) (agens_type
<External-Address:java.lang.Class>) (class
<External-Address:java.lang.Class>) (patiens
<External-Address:vs.storyworldontology.Mountains>) (patiens_type
<External-Address:java.lang.Class>) (OBJECT
<External-Address:vs.storyworldontology.WalkTo>) (destination
<External-Address:vs.storyworldontology.Desert>) (destination_type
<External-Address:java.lang.Class>))
*** retracting *******
Not only fact 10 should be retracted. Fact 7 should also been retracted.
I`ve no idea why this doesn`t
work. When I print ?oldloc, it gives the good fact (fact 7), so ?oldloc
should contain the fact...but it isn`t retracted.
Anybody an idea...???
Thanks in advance,
Sander
--------------------------------------------------------------------
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]
--------------------------------------------------------------------