How can i use Rete Algorithm in java?
Do i need to write my own algorithm implementation?
Or is there already implemented library available?
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:
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!
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.
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,