Rate has been a secret sauce for a long time. Only described in an out of print magazine or very expensive books.
Today the open articles about it are much better. But for awhile, it was elusive.
One of the big advantages of Rete is the culling of the rule base that needs to be evaluated based on the working/changed data set. If you have a 1000 rules, and assert “age=35”, Rete will only select those rules that deal with age, for example.
I’ve been on several projects where a rules system was appropriate, but they never really needed more that a few hundred rules. So we just wrote simple engines that would take a soup of expressions, and keep running through them until the working set stopped changing.
There was a lot of expressiveness with the rules, making development much simpler, and it was fast enough to brute force its way through the rule space and get the results.
Larger rulesets or deeper ones (where there are a lot of derivative rules based on previous rule results) can certainly warrant the complexities of a full boat Rete system.
But a simple system can take you quite a long way on modern hardware.
Comments
Rate has been a secret sauce for a long time. Only described in an out of print magazine or very expensive books.
Today the open articles about it are much better. But for awhile, it was elusive.
One of the big advantages of Rete is the culling of the rule base that needs to be evaluated based on the working/changed data set. If you have a 1000 rules, and assert “age=35”, Rete will only select those rules that deal with age, for example.
I’ve been on several projects where a rules system was appropriate, but they never really needed more that a few hundred rules. So we just wrote simple engines that would take a soup of expressions, and keep running through them until the working set stopped changing.
There was a lot of expressiveness with the rules, making development much simpler, and it was fast enough to brute force its way through the rule space and get the results.
Larger rulesets or deeper ones (where there are a lot of derivative rules based on previous rule results) can certainly warrant the complexities of a full boat Rete system.
But a simple system can take you quite a long way on modern hardware.
Or tons of web pages and a whole bunch of scholarly articles available from Google Scholar with full text.
Heck, over a decade ago I did an implementation (lost now) in Ruby based on a 1995 paper [0]. It hasn't really been secret sauce for a long time.
[0] https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=prod...