On-the-fly testing! I try to beat your almost instant
reply, Ernest :)

I've tried 6.1a4, and behavior has changed somewhat,
but now it's even worse - JESS does not create those
backward-chaining related facts (need-count). Attached
is the output, please compare it with the first
message.

Thank you anyway!

Igor

P.S. My demo got postponed, so no urgency anymore.

--- [EMAIL PROTECTED] wrote:
> Try 6.1a4 (just out). You're probably tickling a bug
> in 6.1a3 that was
> fixed in the new release.
> 
> 
> I think Igor Gorbunov wrote:
> > Hello Ernest and all,
> > 
> > I'm unable to resolve my problem with (not) CE,
> and I
> > really need this functionality ASAP, so I would
> > appreciate any advice you could provide. Here's
> the
> > situation:
> > 
> > I use backward-chaining to assert (count) facts to
> the
> > engine while it runs. Rules, which require (count)
> > facts to be calculated and asserted, may have
> > different patterns. One example of such a pattern
> > would be (count 0). Unfortunately, logic which
> > calculates and asserts (count) facts does not
> assert
> > any fact if the count is <1. 
> > 
> > So I need to modify my rules so, that in case
> (count
> > 0) is required by rule pattern, I also use
> "absence of
> > (count) fact" criteria as a part of rule LHS:
> > 
> > (defrule myrule
> >     (or (not (count ?)) ((count ?X) (test (eq ?X
> 0))))
> > =>
> > ...
> > 
> > Right?
> > 
> > Unfortunately, this (not (count ?)) kind of
> pattern 
> > does not work for me. Here's real debug
> information,
> > so you can see what actually happens:
> > 
> > <attached file>
> > 
> > As you can see, there is two matches even though I
> > expected just one, for "john.smith". On the other
> > hand, if I remove (not) CE and use just (count ?)
> > pattern, it does match just one person:
> > "igor.gorbunov".
> > 
> > Could you tell me why (not) doesn't work as I
> expect?
> > 
> > Thank you very much,
> > Igor
> > 
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Finance - Get real-time stock quotes
> > http://finance.yahoo.com
> Content-Description: jesshelp.txt
> 
> > (defrule rule_name_IDS_58_42 ?F_33<-(USER_TEMPLATE
> (USER_GENDER ?GENDER) (USER_FIRSTNAME ?FIRSTNAME)
> (USER_ID ?USERID) (USER_DOB ?DOB) (USER_ZIPCODE
> ?ZIPCODE) (USER_SUBSCRIPTIONS $?U_S) (USER_ETHNICITY
> ?ETHNICITY) (LOCATION_ID ?LOCATION) (DEPENDENT_FLAG
> ?DEPENDENT_FLAG) (USER_ACTIVE_STATUS ?ACTIVE_FLAG) )
> (test (member$ 58 $?U_S))    
> >  (test  (and (neq ?GENDER  "sfdhj" ) (eq ?GENDER 
> "M" ) ) )
> >  (not (count (userID ?USERID) (messageID 42)
> (since "08/08/1990") (till "(current_date)") (count
> ?))) 
> >  => (assert (MessageMatch ?USERID 42)) )
> > 
> > ***(facts) before:
> > DUMPING FACTS:
> > f-0   (MAIN::initial-fact)
> > f-1   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith")
> (USER_GENDER "F") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "22554") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 31 58))
> > f-2   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra")
> (USER_GENDER "F") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "20102") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 49 58))
> > f-3   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "John") (USER_LASTNAME "Smith")
> (USER_GENDER "M") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "22767") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 58))
> > f-4   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov")
> (USER_GENDER "M") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "21122") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 38 58))
> > f-5   (MAIN::need-count (class nil) (count nil)
> (messageID 42) (since "08/08/1990") (till
> "(current_date)") (userID
> "[EMAIL PROTECTED]") (OBJECT nil))
> > f-6   (MAIN::need-count (class nil) (count nil)
> (messageID 42) (since "08/08/1990") (till
> "(current_date)") (userID
> "[EMAIL PROTECTED]") (OBJECT nil))
> > For a total of 7 facts.
> > 
> > ***RUN...
> > ***calculating and asserting count fact
> > 
> > Dumping count fact...
> > UserID: [EMAIL PROTECTED]
> > MessageID: 42
> > Count: 1
> > Since: 08/08/1990
> > Till: (current_date)
> > 
> > ***(facts) after:
> > f-0   (MAIN::initial-fact)
> > f-1   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith")
> (USER_GENDER "F") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "22554") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 31 58))
> > f-2   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra")
> (USER_GENDER "F") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "20102") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 49 58))
> > f-3   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "John") (USER_LASTNAME "Smith")
> (USER_GENDER "M") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "22767") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 58))
> > f-4   (MAIN::USER_TEMPLATE (USER_ID
> "[EMAIL PROTECTED]") (JOB_CLASS_ID nil)
> (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov")
> (USER_GENDER "M") (USER_DOB
> <External-Address:java.sql.Timestamp>) (USER_SSN
> nil) (USER_ZIPCODE "21122") (USER_EMAIL
> "[EMAIL PROTECTED]") (USER_PHONE_NO nil)
> (USER_ETHNICITY nil) (PLAN_ID nil) (LOCATION_ID nil)
> (USER_CONSENT nil) (DEPENDENT_FLAG nil)
> (USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil)
> (USER_SUBSCRIPTIONS 38 58))
> > f-5   (MAIN::need-count (class nil) (count nil)
> (messageID 42) (since "08/08/1990") (till
> "(current_date)") (userID
> "[EMAIL PROTECTED]") (OBJECT nil))
> > f-6   (MAIN::need-count (class nil) (count nil)
> (messageID 42) (since "08/08/1990") (till
> "(current_date)") (userID
> "[EMAIL PROTECTED]") (OBJECT nil))
> 
=== message truncated ===



__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com
(defrule rule_name_IDS_58_42 ?F_33<-(USER_TEMPLATE (USER_GENDER ?GENDER) 
(USER_FIRSTNAME ?FIRSTNAME) (USER_ID ?USERID) (USER_DOB ?DOB) (USER_ZIPCODE ?ZIPCODE) 
(USER_SUBSCRIPTIONS $?U_S) (USER_ETHNICITY ?ETHNICITY) (LOCATION_ID ?LOCATION) 
(DEPENDENT_FLAG ?DEPENDENT_FLAG) (USER_ACTIVE_STATUS ?ACTIVE_FLAG) ) (test (member$ 58 
$?U_S))    
 (test  (and (neq ?GENDER  "sfdhj" ) (eq ?GENDER  "M" ) ) );;---------- History 
Patterns ---------- 
 (not (count (userID ?USERID) (messageID 42) (since "08/08/1990") (till 
"(current_date)") (count ?))) 
 => (assert (MessageMatch ?USERID 42)) )

DUMPING FACTS:
f-0   (MAIN::initial-fact)
f-1   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
(USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith") (USER_GENDER "F") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22554") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 31 58))
f-2   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
nil) (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra") (USER_GENDER "F") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "20102") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 49 58))
f-3   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
(USER_FIRSTNAME "John") (USER_LASTNAME "Smith") (USER_GENDER "M") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22767") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 58))
f-4   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
nil) (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov") (USER_GENDER "M") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "21122") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 38 58))
For a total of 5 facts.

f-0   (MAIN::initial-fact)
f-1   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
(USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith") (USER_GENDER "F") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22554") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 31 58))
f-2   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
nil) (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra") (USER_GENDER "F") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "20102") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 49 58))
f-3   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
(USER_FIRSTNAME "John") (USER_LASTNAME "Smith") (USER_GENDER "M") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22767") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 58))
f-4   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
nil) (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov") (USER_GENDER "M") (USER_DOB 
<External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "21122") 
(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 38 58))
f-5   (MAIN::MessageMatch "[EMAIL PROTECTED]" 42)
f-6   (MAIN::MessageMatch "[EMAIL PROTECTED]" 42)
For a total of 7 facts.

Reply via email to