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.