I think =?iso-8859-1?Q?=5BEXTERN=5D_Manuel_Kollmu=DF?= wrote: > > I want to change the salience of a rule during process. > > e.g. > > (defrule number1 > (salience 0) >
You could use a function call or defglobal to return the salience, then use (set-salience-evaluation) to tell Jess to reevaluate salience every time a rule is fired; (defrule number1 (salience (get-salience number1)) ... (deffunction get-salience (?name) (bind ?s (fetch (str-cat ?name "-salience"))) (if (eq ?s nil) then (return 0) else (return ?s))) (deffunction set-salience (?name, ?value) (store (str-cat ?name "-salience") ?value)) (set-salience-evaluation every-cycle) > > How can I do this so that the new salience is save even after a restart > of the program? > You'd have to store the values yourself in some kind of persistent store -- a database, etc -- and restore them when the program starts up. --------------------------------------------------------- Ernest Friedman-Hill Advanced Software Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov -------------------------------------------------------------------- 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] --------------------------------------------------------------------