Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. looking for a business rule engine in .Net

looking for a business rule engine in .Net

Scheduled Pinned Locked Moved The Lounge
csharpbusinessquestion
19 Posts 7 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Southmountain

    I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?

    diligent hands rule....

    P Offline
    P Offline
    PIEBALDconsult
    wrote on last edited by
    #2

    Roll your own. Only you know exactly what you want/need.

    S 1 Reply Last reply
    0
    • S Southmountain

      I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?

      diligent hands rule....

      R Offline
      R Offline
      RickZeeland
      wrote on last edited by
      #3

      See these CodeProject articles: Search rule engine[^]

      S 1 Reply Last reply
      0
      • R RickZeeland

        See these CodeProject articles: Search rule engine[^]

        S Offline
        S Offline
        Southmountain
        wrote on last edited by
        #4

        I did this research already. just check around if any better ideas exist...

        diligent hands rule....

        1 Reply Last reply
        0
        • P PIEBALDconsult

          Roll your own. Only you know exactly what you want/need.

          S Offline
          S Offline
          Southmountain
          wrote on last edited by
          #5

          it seems like I need to build a parser for these rules too...

          diligent hands rule....

          P H 2 Replies Last reply
          0
          • S Southmountain

            it seems like I need to build a parser for these rules too...

            diligent hands rule....

            P Offline
            P Offline
            PIEBALDconsult
            wrote on last edited by
            #6

            The rules already exist? I'm confused.

            1 Reply Last reply
            0
            • S Southmountain

              it seems like I need to build a parser for these rules too...

              diligent hands rule....

              H Offline
              H Offline
              honey the codewitch
              wrote on last edited by
              #7

              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

              S 1 Reply Last reply
              0
              • H honey the codewitch

                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

                S Offline
                S Offline
                Southmountain
                wrote on last edited by
                #8

                thank you for the offer and definitely check with you! I browsed your post.

                diligent hands rule....

                H 1 Reply Last reply
                0
                • S Southmountain

                  thank you for the offer and definitely check with you! I browsed your post.

                  diligent hands rule....

                  H Offline
                  H Offline
                  honey the codewitch
                  wrote on last edited by
                  #9

                  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

                  S 1 Reply Last reply
                  0
                  • H honey the codewitch

                    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

                    S Offline
                    S Offline
                    Southmountain
                    wrote on last edited by
                    #10

                    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....

                    H P 2 Replies Last reply
                    0
                    • S Southmountain

                      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....

                      H Offline
                      H Offline
                      honey the codewitch
                      wrote on last edited by
                      #11

                      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

                      S 1 Reply Last reply
                      0
                      • S Southmountain

                        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....

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #12

                        I don't even see any low-hanging fruit there.

                        1 Reply Last reply
                        0
                        • H honey the codewitch

                          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

                          S Offline
                          S Offline
                          Southmountain
                          wrote on last edited by
                          #13

                          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....

                          H 1 Reply Last reply
                          0
                          • S Southmountain

                            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....

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #14

                            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

                            S 1 Reply Last reply
                            0
                            • H honey the codewitch

                              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

                              S Offline
                              S Offline
                              Southmountain
                              wrote on last edited by
                              #15

                              I highly appreciate your thoughts!:rose::rose::rose:

                              diligent hands rule....

                              1 Reply Last reply
                              0
                              • S Southmountain

                                I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?

                                diligent hands rule....

                                M Offline
                                M Offline
                                Mike E Andrews
                                wrote on last edited by
                                #16

                                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.

                                1 Reply Last reply
                                0
                                • S Southmountain

                                  I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?

                                  diligent hands rule....

                                  J Offline
                                  J Offline
                                  James Curran
                                  wrote on last edited by
                                  #17

                                  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

                                  S 1 Reply Last reply
                                  0
                                  • J James Curran

                                    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

                                    S Offline
                                    S Offline
                                    Southmountain
                                    wrote on last edited by
                                    #18

                                    thank you very much! I will take a look at it.

                                    diligent hands rule....

                                    1 Reply Last reply
                                    0
                                    • S Southmountain

                                      I am looking for a business rule engine(open source) in .NET. any recommendation/experience to share?

                                      diligent hands rule....

                                      E Offline
                                      E Offline
                                      englebart
                                      wrote on last edited by
                                      #19

                                      [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.

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups