On Apr 2, 2008, at 7:58 AM, Joao Antunes Mourao wrote:
I discovered the problem. Somehow, jess doesn't like the comparisson
like { name == "Area_1"}, but instead if I use (name /Area_1/) it
works.
This sounds very weird because for only one line comparison it works,
but to subsequent lines doesn't.
In Jess 7.0, the "{name == "area1"}" syntax creates a variable named
"?name" and binds it to the slot's value; that variable is then
available on the rule's RHS. There's a big problem with that, though:
what if you want to use that syntax for that slot for two different
patterns? What happens is that the same variable ?name is used for
both patterns, unifying them. So you're effectively matching facts
with a pattern like name&"area1"&"area2" -- and that will never match.
That's why the semantics have changed in Jess 7.1. The variable is no
longer created. Multiple "java syntax" patterns are completely
independent.
---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences Phone: (925) 294-2154
Sandia National Labs FAX: (925) 294-2234
PO Box 969, MS 9012 [EMAIL PROTECTED]
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]
--------------------------------------------------------------------