You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As facts in NRules are objects. when updating a fact with many fields, it appears that all conditions related to that object must be re-evaluated even if only one field has changed. This makes some of the benefits of the RETE algorithm redundant if being used with a ruleset where the rule conditions are primarily for a single type of object.
Are there plans for supporting something similar in NRules? If not, am I possibly doing something wrong - e.g. maybe constructing my model wrong if my rules' conditions are primarily for a single type of object?
The text was updated successfully, but these errors were encountered:
@a046 I thought about it, and was thinking to add at some point. Right now, agenda filters, particularly OnChange filter is as close as you can get to that behavior.
I think this is a great feature request.
I guess agenda filters will handle the recursion problem, but not the performance side?
Have you thought about how it may be implemented? Maybe with a new update method with a string for changed property, or hooking onto INotifyPropertyChanged of facts if they implement it?
As facts in NRules are objects. when updating a fact with many fields, it appears that all conditions related to that object must be re-evaluated even if only one field has changed. This makes some of the benefits of the RETE algorithm redundant if being used with a ruleset where the rule conditions are primarily for a single type of object.
It seems some other OO rules engines support field level updating to improve performance in this case, for example: https://docs.jboss.org/drools/release/7.0.0.Final/drools-docs/html_single/index.html#_fine_grained_property_change_listeners
This article also suggests Jess and Clips COOL also (can) work this way: http://blog.athico.com/2012/01/fine-grained-property-change-listeners.html
Are there plans for supporting something similar in NRules? If not, am I possibly doing something wrong - e.g. maybe constructing my model wrong if my rules' conditions are primarily for a single type of object?
The text was updated successfully, but these errors were encountered: