Search code examples
.netrule-engineexpert-system

Framework for algorithmic decision process


I am looking for a framework to allow the following:

  • Implement several algorithms that take as input one or more collections of simple classes (POCO), and result in a new list of POCOs
  • Each algorithm is generally looking at various attributes of the input collections, and how they relate to each other.
  • An important requirement is that the algorithm needs to be expressed in a manageable way, allowing easy maintenance and changes
  • Nice to have: a way to allow the user to maintain the algorithm

I maybe looking for a Rules engine, an expert system implementation, a classifier algorithm or some combination of those.

Update: The rules may be quite complex, e.g. if there is a match between 3 objects in the first collection and 2 in the second, then search for a match for the third, mismatched object in the second collection and an object in a third collection. The matching rules may be defined in delegated functions.

Any ideas?

I live and work in the .Net world :-)


Solution

  • There are several rule engines for .NET. Drools, in its .NET version, is not one I would recommend. One of the best ones I know is NxBRE. However that project has been dormant for quite a while. The WWF rule engine might be an option for you.