Thanks very much... I've developed this code by look at Jess In Action chapter 19 examples...
------------------------------------------------------------------------ Antonino Lo Bue Research Fellow ICAR-CNR Palermo Phone: 091-6809256 Web: http://medialab.pa.icar.cnr.it/Personali/personali.html Email: [EMAIL PROTECTED] ----- Original Message ----- From: "Ernest Friedman-Hill" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, February 08, 2007 3:36 AM 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 > > -------------------------------------------------------------------- > 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] > -------------------------------------------------------------------- > -------------------------------------------------------------------- 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] --------------------------------------------------------------------
