Fork me on GitHub
#clara
<
2018-11-19
>
eraserhd20:11:37

I've been reading Rete algorithm stuff, and I've been wondering why I haven't seen references to this paper in them: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.5507 -- (I couldn't remember the name of the paper until it appeared on the Clojure list just recently.)

eraserhd20:11:36

It seems like this is a bunch more thought that applies to how to build an alpha network than I've seen mentioned before.

mikerod20:11:20

@eraserhd not familiar with this one.

mikerod20:11:06

looks like it’d take a bit to parse through it to see how the ideas relate to other rete things that are out there

eraserhd20:11:02

I have yet to see anything about optimizing the order of alpha tests, except for specific things like hashing 8 ways to find an alpha memory when using triplets.

eraserhd20:11:53

AFAICT, there's no cases of filtering with user tests before storing in an alpha memory, even, and I presume that's because it's hard to know when you can do that and not duplicate memories?

mikerod20:11:43

Clara’s alpha network partitions on how facts match the “type” criteria first

mikerod20:11:05

if you have alpha-side only constraints like [A (< x 5)]

mikerod20:11:20

those will be filtered as they come in and will not be stored in alpha mem if they don’t match

mikerod20:11:10

and if you have variable bindings (via the overloaded = semantics), eg. [A (= ?x x)], facts in the alpha memory will be stored in a hash lookup keyed by that variable binding

mikerod20:11:56

those are the main alpha-side network details I can think of