BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }
Please help, my *very simple* rule in JEss is not fired.  I follow the
HVAC example, chapter 14 of the book Jess in Action.  But my simple
rule never fired.  

        Example rule: if a person with age < 24 months then it is a toddler.
  

        The exercise is written in Java with the rule in Jess 

        IDE environement: Eclipse 

        Java class 

              public class Person { 

                     private String m_name; 

                    private int         m_age; 

                   // set and get funciton 

                 // in order to test out the different rules, a method is
writen to increase the age of an object. 

                 public void increaseAge() { 

                 }  

           }    

        // same code from the Jess Action book, chater 14.  The class is to
add / remove property change listener and  

        public abstract class BeanSupport { 

        } 

        // class PersonStageReasoner.  This class will start a thread with a
forever-loop to change a person age 

        public class PersonStageReasoner extends BeanSupport implements
Runnable { 

             // constructor that will instantiage a person object and start
a thread 

            public PersonStageReasoner  (Person p) { 

                   m_person = new Person(p); 

                  new Thread(this).start(); 

            }    

            public int getAge() {return m_person.getAge()); } 

            public void run() { 

                  while (true) { 

                              prev_age := m_person.getAge(); 

                             m_person.increaseAge(); 

                             int age_now = m_person.getAge() 

                            m_pcs.firedPropertyChange("age", prev_age, age);


                             try { Thread.sleep (1000); } 

                             catch (InterruptedException ie) { return; } 

                  } // end while true 

           } 
        } 
        Jess:  

        !! Add rules 
        (bind?p(new person.Person"firstname lastname" 0)) 
        ( 

        defclassPersonStageReasoner person.PersonStageReasoner) 
        (definstancePersonStageReasoner 
        (new person.PersonStageReasoner?p)) 
        (defruleperson-stage-todler 
        (PersonStageReasoner(age?a&:(< ?a 12))) 
        => 

        (printout t "toddler" crlf) 

        (halt)) 
        (run-until-halt) 

        (exit) 
        I know that defclass, definstance are fine, because the Java code,
espeically the PersonStageReasoner thread is spawn in is in the
forever loop (while true), the person age is changing.  But the rule
in defrule was never fired.   
        I thank you for any and all help.  
        My Coyne 
 [email protected] 
 (cel): 301-399-6351 

Reply via email to