Hi Ernest, Thanks for your reply and suggestions, I'll poke into the implementation details a bit more and get back to you. Regards, Sean.
________________________________ From: [EMAIL PROTECTED] on behalf of Ernest Friedman-Hill Sent: Thu 2007-02-08 10:36 AM To: [email protected] Subject: JESS: Re: Multiple JESS engines running in the same application On Feb 7, 2007, at 7:30 PM, #NG BOON KIAT# wrote: > I'm currently working on a distributed multi-agent simulation > system that uses JESS for behaviour inference. The behaviours are > stored inside a Protege ontology. For each cycle of the simulation, > each agent has to update the ontology, followed by getting the new > behaviour from the ontology. > > Ideally, each computer (node) in the system will control a number > of agents as well as have 1 JESS engine. However, during testing of > the framework, I had to simulate the running of 2 nodes on my > computer. This means having more than 1 JESS engine running at the > same time. The first engine works fine, but when the second engine > tried to make a ontology update, I get errors such as unable to > read/write. > > Is there really no way to have more than 1 JESS engine running at > the same time? > Of course there is -- you can create as many instance of the jess.Rete class as you like, and run them all independently. It says so in the manual, doesn't it? There's even a simple inter-engine communication mechanism built into Jess (the function "call-on-engine".) Here's a tiny program in the Jess language that uses two engines. A rule is defined in the first engine which, when fired, prints a message, then defines a rule in a second engine, resets it, and runs it. When you run this program, first the rule fires in the first engine, and this causes the rule to fire in the second engine, so you'll see both messages printed once. (set-reset-globals FALSE) (defglobal ?*e2* = (new jess.Rete)) (defrule hello-1 => (printout t Hello1 crlf) (call-on-engine ?*e2* (eval "(defrule hello-1 => (printout t Hello2 crlf))")) (call-on-engine ?*e2* (reset)) (call-on-engine ?*e2* (run))) (reset) (run) Whenever you're reporting a problem like this, on the Jess list or anywhere else, it helps to be much more specific about what *exactly* you tried, and what *exactly* happened, including the *exact* text of any messages you receive. I don't know what you tried, but "unable to read/write" doesn't sound like any message that Jess can produce. --------------------------------------------------------- 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://www.jessrules.com <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] --------------------------------------------------------------------
<<winmail.dat>>
