Modules are something that has been discussed in the past. I'm
certainly interested in supporting them, but it hasn't been a priority
so far (I can only do so much :) ) 

There are two levels of module support one could envision. One would
be, as one correspondent wondered, just syntactic. Nothing really
significant would change in the rule engine, except that only rules
from the current module would be fired. Changing focus would just mean
telling the engine what name prefix a rule would have to have to fire.
This conveys one benefit of modules (the software engineering benefit
of a modularized system), but not the other one, efficiency.

In full module support, the engine would do only computations that
affected the current module; this could be a significant efficiency
concern for a large system. Conflict resolution would be made more
efficient because each module would have its own separate agenda, and
LHS execution would be more efficient since nodes from non-focused
modules would not need to be kept up to date (you could update them
during the 'focus' process.)

In any case, the related concept of multiple engines in one JVM using
explicit message passing is viable; a number of users have reported
doing this with success.

I would caution anyone who might be feeling ambitious that this is NOT
a good time to sit down and pound out these mods yourself, in the
hopes of contributing them to the greater good. The internal changes
in the engine between 5.0a4 and 5.0a5 are DRASTIC. The 5.0a3 to 5.0a4
changes inspired me to do similar housecleaning all throughout the
code, and the results have been impressive. Jess can now run the
University of Texas benchmarks (using a stock Microsoft JVM)
noticeably faster than CLIPS 6.04 (compiled with -O2) on the same
machine. The speedup scales nonlinearly with problem size, and is most
apparent for very large systems. For the "Manners" benchmark, Jess now
beats CLIPS by 25% at 64 persons, and by a factor of two at 80
persons. I'm using a new smart indexing system in the Rete memories to
get this speed. 

In any case, as usual, the goal is to make Jess leaner and meaner. The
simpler I can make the innards, the easier itwill be to add features
like modules.


---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9214                  [EMAIL PROTECTED]
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550

---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list. List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to