[rules-dev] Prolog Style Backward Chaining - First Cut

Mark Proctor mproctor at codehaus.org
Sun Apr 17 02:53:29 EDT 2011


Initial things to do:
-Patterns should also work with positionals, based on @Position annotation
-Expressions for query arguments should allow previous rule/global 
bindings and execute an "mvel return value" to resolve them prior to 
being passed to the query
-Figure out good way for queries to approximate prolog behaviour of 
rules with same name where it unions the results.
-Queries should allow field constriants, ==, >= etc. The behaviour for 
this is a unbound output variable on the field, which is filtered 
against the expression.
-Allow bindings to the query itself and use a special implemention of 
the MVEL's PropertyHandler to allow bean like access to it. So 
declarations are like fields.
-More extensive testing to find out what is not working or broken, that 
normal works in prolog like systems.
-Allow ? to differentiate between push and pull data sources. ? can be 
used on a normal pattern to indicate it's a one off pull (query). ? When 
not added to a query indicates that the query should be left "open" to 
receive more data over time.
-Support open queries, this is where the query window is left open and 
new data is propagated as a result.




More information about the rules-dev mailing list