looking for a business rule engine in .Net
-
it seems like I need to build a parser for these rules too...
diligent hands rule....
If you do intend to go that route let me know, and let me see a sample of your rules, and I'll whip you up an XBNF grammar you can either use with one of my parser generators, or as a guide to implement a recursive descent parser on your own. I'll even recommend which route to take, and which tools to use depending on what your rules wind up needing to look like.
Real programmers use butterflies
-
If you do intend to go that route let me know, and let me see a sample of your rules, and I'll whip you up an XBNF grammar you can either use with one of my parser generators, or as a guide to implement a recursive descent parser on your own. I'll even recommend which route to take, and which tools to use depending on what your rules wind up needing to look like.
Real programmers use butterflies
thank you for the offer and definitely check with you! I browsed your post.
diligent hands rule....
-
thank you for the offer and definitely check with you! I browsed your post.
diligent hands rule....
You can use that one but it's a bit dated. When you're ready for it, assuming you're targeting C#, I'll hook you up with Norm and Reggie (or Parsley and Rolex depending on what you want) They are quite a bit more mature than PCK, although PCK does have a syntax highlighting editor. In practice, that isn't very helpful which is why I haven't included it in more recent projects.
Real programmers use butterflies
-
You can use that one but it's a bit dated. When you're ready for it, assuming you're targeting C#, I'll hook you up with Norm and Reggie (or Parsley and Rolex depending on what you want) They are quite a bit more mature than PCK, although PCK does have a syntax highlighting editor. In practice, that isn't very helpful which is why I haven't included it in more recent projects.
Real programmers use butterflies
in a simple example, my dataset is a List of data points(2D such as x,y)), I want to detect at which point that reach local max , local min etc.. I created a table associated with this dataset and calculated all needed mathematical attributes such as derivatives at each point. so I want to use type of rules in natural language like that describe and evaluate my request: max(my_List). hope my explanation is clear. I have not done anything on business rule stuff.
diligent hands rule....
-
in a simple example, my dataset is a List of data points(2D such as x,y)), I want to detect at which point that reach local max , local min etc.. I created a table associated with this dataset and calculated all needed mathematical attributes such as derivatives at each point. so I want to use type of rules in natural language like that describe and evaluate my request: max(my_List). hope my explanation is clear. I have not done anything on business rule stuff.
diligent hands rule....
Parsing is like 10% of natural language processing. I'm not sure you know what you're getting into. The other problem with doing it for business rules is ambiguity. Do you want that ambiguity leaking into your accounts receivable tables? Because this is how it happens. The quickest dirtiest way to get natural language processing into your business rules is to use Amazon's voice recognition services, and then plug it into a rule writer based off of that. Then take that rule writer and plug it into a system you do not care about, because it's not going to give you anything good, particularly given that the type of people who would require natural language processing to produce business rules lack the analytical chops to craft solid business rules in the first place.
Real programmers use butterflies
-
in a simple example, my dataset is a List of data points(2D such as x,y)), I want to detect at which point that reach local max , local min etc.. I created a table associated with this dataset and calculated all needed mathematical attributes such as derivatives at each point. so I want to use type of rules in natural language like that describe and evaluate my request: max(my_List). hope my explanation is clear. I have not done anything on business rule stuff.
diligent hands rule....
I don't even see any low-hanging fruit there.
-
Parsing is like 10% of natural language processing. I'm not sure you know what you're getting into. The other problem with doing it for business rules is ambiguity. Do you want that ambiguity leaking into your accounts receivable tables? Because this is how it happens. The quickest dirtiest way to get natural language processing into your business rules is to use Amazon's voice recognition services, and then plug it into a rule writer based off of that. Then take that rule writer and plug it into a system you do not care about, because it's not going to give you anything good, particularly given that the type of people who would require natural language processing to produce business rules lack the analytical chops to craft solid business rules in the first place.
Real programmers use butterflies
thank you for your thoughts!:rose::rose::rose: probably I did not describe myself well yet. But your PCK GUI editor is my starting point to test my ideas first..
diligent hands rule....
-
thank you for your thoughts!:rose::rose::rose: probably I did not describe myself well yet. But your PCK GUI editor is my starting point to test my ideas first..
diligent hands rule....
Fair enough, although if you're really committed to natural language parsing, Glory: A GLR Parser Generator for .NET[^] is what you'd need for that, because of the ambiguity. PCK can't parse natural languages, and extending the algorithms therein to do so is non-trivial, so it won't make a good starting point necessarily. Also, avoid the LALR(1) generation in PCK. It's slow and I don't think it handles epsilons correctly. Glory does.
Real programmers use butterflies
-
Fair enough, although if you're really committed to natural language parsing, Glory: A GLR Parser Generator for .NET[^] is what you'd need for that, because of the ambiguity. PCK can't parse natural languages, and extending the algorithms therein to do so is non-trivial, so it won't make a good starting point necessarily. Also, avoid the LALR(1) generation in PCK. It's slow and I don't think it handles epsilons correctly. Glory does.
Real programmers use butterflies
I highly appreciate your thoughts!:rose::rose::rose:
diligent hands rule....
-
I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?
diligent hands rule....
I built one years ago that's still in production today. It was written in C#. The rules are not a custom language or anything of the sort. Each rule is an implemented derived class and each rule has inputs and outputs (which can be anything). Then, you just string those rules together, where the output of one rule connects to the input of another rule. This has two benefits: 1) you don't have the overhead of a custom parser for determining the end-result, i.e., it's already a language you know; 2) you can reuse these rules in various combinations for a variety of tasks. The rules can live in the same or separate assemblies and are then loaded into an AppDomain upon execution. There is a Rule Execution Engine that takes a "map" of how each rule is connected and then loads the appropriate assemblies, from where said rules are located, and executes them in the correct order and asynchronously if needed. This may be a simpler approach than a custom language solution. I do not have a general-purpose one written. I intended to write one years ago (after writing the one for the company I work for), but I never got around to it. This approach may or may not work for you, though.
-
I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?
diligent hands rule....
We've been using this with great success: [GitHub - runxc1/MicroRuleEngine: A .Net Rule Engine for dynamically evaluating business rules compiled on the fly.](https://github.com/runxc1/MicroRuleEngine)
Truth, James
-
We've been using this with great success: [GitHub - runxc1/MicroRuleEngine: A .Net Rule Engine for dynamically evaluating business rules compiled on the fly.](https://github.com/runxc1/MicroRuleEngine)
Truth, James
thank you very much! I will take a look at it.
diligent hands rule....
-
I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?
diligent hands rule....
[Drools.NET download | SourceForge.net](https://sourceforge.net/projects/drooldotnet/) I used the Java version to build a Sudoku solver that works with human strategies. This is one those legacy Rules Based systems that have lost out to ML.