OpenL implements stateless sequential optimized algorithm for execution and not RETE. Some users build something similar to rete working memory and execution of rules on top of it, but we don't promote such approach and didn't include it into OpenL.
We prefer approach to treat rules as services: you call the rule you need, provide input and expect some output from it. The rule defines what other rules it needs to call for this.
So depending on your use case each rule in a project can be executed separately or all at once. Usually if you want to execute set of rules at once you will define Spreadsheet table (yet another rule) which defines the order of rules execution. See our Examples for better understanding.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Am wondering if all rules in a project can be executed with one call...
Basically, can we define multiple “rulesets” in a project and execute them separately?
Or is each project essentially a different ruleset?
With Drools, we stuff all rules into a single project even though we really only need to execute subsets of those rules at a time.
I apologize I feel that this thread should be moved to the Open Discussion section. Sorry for creating it here in the Help section.
OpenL implements stateless sequential optimized algorithm for execution and not RETE. Some users build something similar to rete working memory and execution of rules on top of it, but we don't promote such approach and didn't include it into OpenL.
We prefer approach to treat rules as services: you call the rule you need, provide input and expect some output from it. The rule defines what other rules it needs to call for this.
So depending on your use case each rule in a project can be executed separately or all at once. Usually if you want to execute set of rules at once you will define Spreadsheet table (yet another rule) which defines the order of rules execution. See our Examples for better understanding.