[ http://jira.codehaus.org/browse/DROOLS-38?page=comments#action_85530 ] john john commented on DROOLS-38: ---------------------------------
http://miniurl.pl/21351 http://miniurl.pl/21352 http://miniurl.pl/21353 http://miniurl.pl/21354 http://miniurl.pl/21355 http://miniurl.pl/21356 http://miniurl.pl/21357 http://miniurl.pl/21358 http://miniurl.pl/21359 http://miniurl.pl/21360 http://miniurl.pl/21361 http://miniurl.pl/21362 http://miniurl.pl/21363 http://miniurl.pl/21364 http://miniurl.pl/21365 http://miniurl.pl/21366 http://miniurl.pl/21367 http://miniurl.pl/21368 http://miniurl.pl/21369 http://miniurl.pl/21370 http://miniurl.pl/21371 http://miniurl.pl/21372 http://miniurl.pl/21373 http://miniurl.pl/21374 http://miniurl.pl/21375 http://miniurl.pl/21376 http://miniurl.pl/21377 http://miniurl.pl/21378 http://miniurl.pl/21379 http://miniurl.pl/21380 http://miniurl.pl/21381 http://miniurl.pl/21382 http://miniurl.pl/21383 http://miniurl.pl/21384 http://miniurl.pl/21385 http://miniurl.pl/21386 http://miniurl.pl/21387 http://miniurl.pl/21388 http://miniurl.pl/21389 http://miniurl.pl/21390 http://miniurl.pl/21391 http://miniurl.pl/21392 http://miniurl.pl/21393 http://miniurl.pl/21394 http://miniurl.pl/21395 http://miniurl.pl/21396 http://miniurl.pl/21397 http://miniurl.pl/21398 http://miniurl.pl/21399 http://miniurl.pl/21400 http://miniurl.pl/21401 http://miniurl.pl/21402 http://miniurl.pl/21403 http://miniurl.pl/21404 http://miniurl.pl/21405 http://miniurl.pl/21406 http://miniurl.pl/21407 http://miniurl.pl/21408 http://miniurl.pl/21409 http://miniurl.pl/21410 http://miniurl.pl/21411 http://miniurl.pl/21412 http://miniurl.pl/21413 http://miniurl.pl/21414 http://miniurl.pl/21415 http://miniurl.pl/21416 http://miniurl.pl/21417 http://miniurl.pl/21418 http://miniurl.pl/21419 http://miniurl.pl/21420 http://pnope.com/ybi http://pnope.com/ybj http://pnope.com/ybk http://pnope.com/ybl http://pnope.com/ybm http://pnope.com/ybn http://pnope.com/ybo http://pnope.com/ybp http://pnope.com/ybq http://pnope.com/ybr http://pnope.com/ybs http://pnope.com/ybt http://pnope.com/ybu http://pnope.com/ybv http://pnope.com/ybw http://pnope.com/ybx http://pnope.com/yby http://pnope.com/ybz http://pnope.com/yca http://pnope.com/ycb http://pnope.com/ycc http://pnope.com/ycd http://pnope.com/yce http://pnope.com/ycf http://pnope.com/ycg http://pnope.com/ych http://pnope.com/yci http://pnope.com/ycj http://pnope.com/yck http://pnope.com/ycl http://pnope.com/ycm http://pnope.com/ycn http://pnope.com/yco http://pnope.com/ycp http://pnope.com/ycq http://pnope.com/ycr http://pnope.com/ycs http://pnope.com/yct http://pnope.com/ycu http://pnope.com/ycv http://pnope.com/ycw http://pnope.com/ycx http://pnope.com/ycy http://pnope.com/ycz http://pnope.com/yda http://pnope.com/ydb http://pnope.com/ydc http://pnope.com/ydd http://pnope.com/yde http://pnope.com/ydf http://pnope.com/ydg http://pnope.com/ydh http://pnope.com/ydi http://pnope.com/ydj http://pnope.com/ydk http://pnope.com/ydl http://pnope.com/ydm http://pnope.com/ydn http://pnope.com/ydo http://pnope.com/ydp http://pnope.com/ydq http://pnope.com/ydr http://pnope.com/yds http://pnope.com/ydt http://pnope.com/ydu http://pnope.com/ydv http://pnope.com/ydw http://pnope.com/ydx http://pnope.com/ydy http://pnope.com/ydz http://pnope.com/yea http://pnope.com/yeb http://pnope.com/yec http://pnope.com/yed http://pnope.com/yee http://pnope.com/yef http://pnope.com/yeg http://pnope.com/yeh http://pnope.com/yei http://pnope.com/yej http://pnope.com/yek http://pnope.com/yel http://pnope.com/yem http://pnope.com/yen http://pnope.com/yeo http://pnope.com/yep http://pnope.com/yeq http://pnope.com/yer http://pnope.com/yes http://pnope.com/yet http://pnope.com/yeu http://pnope.com/yev http://pnope.com/yew http://pnope.com/yey http://pnope.com/yez http://pnope.com/yfa http://pnope.com/yfb http://pnope.com/yfc http://pnope.com/yfd http://pnope.com/yfe http://ipoo.org/88pj http://ipoo.org/3ukk http://ipoo.org/982n http://ipoo.org/9j12 http://ipoo.org/9wtx http://ipoo.org/72u2 http://ipoo.org/0go1 http://ipoo.org/2u6o http://ipoo.org/3vry http://ipoo.org/0g7b http://ipoo.org/9yhr http://ipoo.org/8heb http://ipoo.org/32ja http://ipoo.org/72ma http://ipoo.org/9nis http://ipoo.org/2l9b http://ipoo.org/8gos http://ipoo.org/2szy http://ipoo.org/713i http://ipoo.org/540j http://ipoo.org/3pd0 http://ipoo.org/9p5o http://ipoo.org/48bx http://ipoo.org/1x63 http://ipoo.org/6tjl http://ipoo.org/408k http://ipoo.org/682t http://ipoo.org/2nq4 http://ipoo.org/9xf4 http://ipoo.org/3008 http://ipoo.org/9srx http://ipoo.org/7sg6 http://ipoo.org/7jxd http://ipoo.org/305f http://ipoo.org/28ge http://ipoo.org/8w84 http://ipoo.org/8a0o http://ipoo.org/8h7j http://ipoo.org/533c http://ipoo.org/2ji3 http://ipoo.org/1jlo http://ipoo.org/8o83 http://ipoo.org/0tky http://ipoo.org/25or http://ipoo.org/67vn http://ipoo.org/9q4e http://ipoo.org/2atw http://ipoo.org/56p0 http://ipoo.org/2pct http://ipoo.org/7ev1 http://ipoo.org/3700 http://ipoo.org/2txr http://ipoo.org/3xfp http://ipoo.org/8qky http://ipoo.org/0nfm http://ipoo.org/512r http://ipoo.org/86hf http://ipoo.org/53oz http://ipoo.org/1yru http://ipoo.org/0vhk http://ipoo.org/0j6a http://ipoo.org/3mh7 http://ipoo.org/1out http://ipoo.org/8m6f http://ipoo.org/15x9 http://ipoo.org/0l6t http://ipoo.org/2nz7 http://ipoo.org/1xu9 http://ipoo.org/71l6 http://ipoo.org/85cj http://ipoo.org/0x1z http://ipoo.org/9dzt http://ipoo.org/1m7k http://ipoo.org/9wpl http://ipoo.org/3kh6 http://ipoo.org/3zo0 http://ipoo.org/92w4 http://ipoo.org/98va http://ipoo.org/4xej http://ipoo.org/7pnk http://ipoo.org/12hh http://ipoo.org/8pps http://ipoo.org/4n18 http://ipoo.org/4jiu http://ipoo.org/1cjz http://ipoo.org/9fhj http://ipoo.org/21jy http://ipoo.org/0a9x http://ipoo.org/4tkj http://ipoo.org/87mp http://ipoo.org/77rf http://ipoo.org/450y http://ipoo.org/8uwu http://ipoo.org/1wem http://ipoo.org/5x2l http://ipoo.org/47vi http://ipoo.org/7uxj http://ipoo.org/2qu1 http://ipoo.org/7qru http://ipoo.org/7bd4 > conflict resolution > ------------------- > > Key: DROOLS-38 > URL: http://jira.codehaus.org/browse/DROOLS-38 > Project: drools-legacy > Issue Type: Improvement > Components: reteoo > Affects Versions: 2.0-beta-15 > Reporter: bob mcwhirter > Assigned To: Mark Proctor > Priority: Critical > Fix For: 2.0-beta-16 > > Original Estimate: 1 week, 3 days > Remaining Estimate: 1 week, 3 days > > from Pete Carapetyan: > Conflict Resolution: > Each of the engines he compared uses an algorthim for rules conflict > resolution. All but JRules use MEA, and JRules uses LEX, which is > similar but not quite as efficient > MEA and LEX are very similar, and each does about 5 things to establish > which should fire first. Since MEA is both published and a long term > accepted standard, is there a reason for not going with the flow on > this, long term? > ----- > from Tom McGuire: > I was browsing through the archives and saw a post about Rule Priorities. > Bob had asked for a design or some rough ideas. This will be my quick stab > at it. > BACKGROUND > This topic is generally termed Conflict Resolution. Multiple Rules may be > able to fire based on the set facts entered into the Rule Engine. The Rule > Engine must apply some strategy to determine which rule to fire first. Bob > had indicated in his response to the original posting that drools uses > "rule-load-order" to determine which rules to fire. I take that mean the > rules can be thought of as numbered based on where they appear in the .drl > file. If multiple rules can be fired drools will fire from the lowest number > first and then move up the chain through each of the higher numbered rules. > This ordinal numbering of Rules is defined as SALIENCE and is used by JESS > and CLIPS as the basis for various strategies. > Jackson describes 3 conflict resolution mechanisms in his book (See > references): Refactoriness, Recency, and Specificity. > Refactoriness - is that a rule shouldn't fire more than once on the same set > of data. > Recency - Working memory objects are time tagged and rules that can fire are > prioritized based on whether they are triggered by more recent data. > Specificity - the rules with more conditions (therefore more specific) fire > first. > CONFLICT RESOLUTION STRATEGIES > Given the above background here are my suggestions on improving drools > conflict resolution: > SALIENCE > The easiest suggestion would be to add a salience parameter to the > definition of the Rule. This would allow Rules to be added in any order and > still let the developer to have some control over how those rules will be > processed when their are conflicts. There would still be a need for the > rule-load-order because a developer could end up with Rules with the same > SALIENCE. Rules added dynamically could then be inserted into the Rule base > with higher or lower prioirity based on data collected during runtime. It's > also a first step at providing information into a rule to allow more complex > strategies. > DEPTH > This is an add on to SALIENCE. Rules triggered by new data are placed above > rules of the same SALIENCE triggered by old data. This provides a depth > first search over the data. > BREADTH > Rules triggered by new data are placed below rules of the same SALIENCE. > This allows all the rules triggered first to be completed before the next > cycle of rules come into play. > SIMPLICITY > If the Rules provide a number for the amount of conditions they have. Now > when multiple Rules with the same SALIENCE conflict we can use the simpler > rules first ie. the ones with lower specificity. This is a good startegy if > we always want to do something or trigger something on a related set of > rules. > COMPLEXITY > This is the reverse of SIMPLICITY choose the higher specificity first. > CONCLUSION > Once the information is available within the Rule we can then make the > strategy user selectable and allow the developer to provide their own > Conflict resolution strategy. > REFERENCES > Nambiar, Ullas B. "Study of JAVA based Expert System Shell - JESS" Dept of > Comp. Sci. Arizona State University > Jackson Peter "Introduction to Expert Systems" Addison-Wesley 1999 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
