Hey guys thought I would give an update as I just release v0.2.0!
This release is a major upgrade the the internal structuring of our rete network, namely to the modification of facts. With the latest release we now support a "true modify". What this means is that when a fact is modified it is no longer retracted from the network and re-asserted instead it is propagated as a modify throughout the network each node that the modified fact touches now will do the following.
1. If previously asserted before and the constraint still evaluates to true continue as a modification.
2. If not asserted before and the constraint evaluates to true continue as an assert.
3. If previously asserted and the constraint evaluates to false propagate as a retract.
4. If not asserted and the constraint still evaluates to false do nothing.
This entailed a major overhaul to the way matches and facts are stored within the network mainly that we have to keep better track of state within each beta node. Where you will see the greatest performance increase is in modification of facts. In cases where there are not a lot of modifications you will not see a big performance boost.
The next new feature that is in the release a new constraint modifier called from. The from modifier allows you to use a property on an asserted fact as a fact for a constraint.
A quick example could be the following.
when {
p: Person:
a: Address a.zipcode == 88847 from p.address;
first: String first == 'bob' from p.firstName;
last: String last == 'yukon' from p.lastName;
}
We also included some bug fixes in this release check out the
changelog for more details.
As always any issues you find please create an issue
here.
-Doug