Well, I don't know what to tell you. The whole problem description seems to start from a premise that I don't understandq -- that listFacts() will return more facts than have been asserted. This is not true -- it will only return exactly the facts in working memory, not any of the internal "copies".
It looks like you're taking these internal copies, cloning them, and then collecting these copies. This would indeed give rise to more facts than are in working memory. But we've already discussed using getIcon() to get the "real" facts; if you do that, then the cloned set should be precisely the same size as the original set, which should be only as large as the number of facts that have been asserted. You're going to have to work the details out for yourself, but I don't see anything here that can't be explained by what we've already discussed. I think Nik Joshi wrote: > There is only one JESS engine, not two. When I send the serialized facts > over to the client side, I'm not asserting them into any engine, I'm simply > displaying the cluster of related facts as a graph. In any case, the > OutOfMemoryError only occurs on the server side. I would post the actual > code, but it's fairly complex (not to mention proprietary), and if I had to > do it, I would have to make up another example. > > - Nik. > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of [EMAIL PROTECTED] > Sent: Wednesday, February 11, 2004 6:04 AM > To: [EMAIL PROTECTED] > Subject: Re: JESS: java/jess serialization question > > > I think Nik Joshi wrote: > > > > Now, when I added in the serialization and the cloning, the number of > facts > > in the engine jumped to 8 to 10 times the number of assertions. > > Well, let's see. The first problem was that the ObjectOutputStream > would not send a modified object fact, so the workaround was to clone > the fact. Now I'm guessing that the problem is that there are some > objects involved in your program for which o.clone().equals(o) is > false, so that facts that are equal in one engine are unequal in the > other, so multiple assertions of nominally identical facts are not > being culled in the second engine. Hard to say without seeing the > precise code that's being executed, but I think that's a good guess. > > --------------------------------------------------------- > Ernest Friedman-Hill > Science and Engineering PSEs 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] > -------------------------------------------------------------------- > > -------------------------------------------------------------------- > 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] > -------------------------------------------------------------------- > --------------------------------------------------------- Ernest Friedman-Hill Science and Engineering PSEs 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] --------------------------------------------------------------------
