Hi Ejfried,
I'm trying to understand why the Rete network looks the way it
does. Let's say we have a simple rule and the following Rete network
(shown by the view command)
(defrule rule1
(a) start
(b) / / | \ \
(c) a b c d e
(d) | / / / /
(e) | / / / /
=> |/ / / /
) + / / /
| / / /
+/ / /
| / /
+ / /
|/ /
+ /
| /
+
|
FIRE: rule1
Now, lets say I have fact b,c,d,e. If I assert and retract fact `a'
frequently now, the network recomputes the chain of join node
activations all the way down. This is the reason why one should match
`volatile' facts last, I assume.
Now, I understand that join nodes are necessary in cases where
variables are shared between patterns in a rule. But this is not the
case here. So why not just something like the following for the simple
rule above:
start
/ / | \ \
a b c d e
\ \ | / /
FIRE: rule-4
The single nodes would have a memory, and that's it. (I found the
mention of `alpha nodes' for one-input nodes, but does JESS have any?)
BTW: the useful (matches) function does not seem to work properly in
Jess 6.0a2 what I'm still using; does it in 6.0b1?
many thanks
--Sebastian
---------------------------------------------------------------------
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]
---------------------------------------------------------------------