问题
How can i use Rete Algorithm in java?
Do i need to write my own algorithm implementation?
Or is there already implemented library available?
回答1:
So this is a pretty old question, but ranks highly if you're googling for Rete Implementations, so I'll leave some info here.
The wikipedia entry is pretty good and here is a paper about Rete/UL which is according to Doorenbos more efficient than ReteII Doorenbos, 1995.
Some Implementations include:
- Drools for java
- Jess also java
- Wongi-Engine for ruby (I use this one) based on the same paper as listed above.
- Ruleby also ruby but defunct
- Mirmir clojure
- Clara Rules also clojure (added 4/20/15)
- Rete for Triples clojure (maybe defunct?)
- kongra's Rete haskell (wow) based on the same paper as listed above.
- and all of these
Its a really useful algorithm if you need to make decisions based on patterns of facts, and as a bonus, you'll have to learn some cool things about graphs and pattern matching.
Hope this is helpful!
回答2:
A simple Google search for "Rete Algorithm Java" showed up this result (among others): http://java-source.net/open-source/rule-engines.
The first entry reads: Drools is an Object-Oriented Rule Engine for Java. Drools is an augmented implementation of Forgy's Rete algorithm tailored for the Java language.
So the answer seems to be: Yes, there already is a library that implements the algorithm you're looking for.
回答3:
See the References section on the Wikipedia entry on the Rete Algorithm, it contains code snippets in both Pascal and LISP (?) style languages - nothing C-like, though.
Cheers,
来源:https://stackoverflow.com/questions/12474769/how-to-use-rete-algorithm