clara

http://www.clara-rules.org/
eraserhd 2018-11-19T20:07:37.141200Z

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.)

eraserhd 2018-11-19T20:08:36.142300Z

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

2018-11-19T20:16:20.142500Z

@eraserhd not familiar with this one.

2018-11-19T20:17:06.143100Z

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

eraserhd 2018-11-19T20:23:02.144600Z

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.

eraserhd 2018-11-19T20:24:53.145600Z

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?

2018-11-19T20:29:43.146100Z

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

2018-11-19T20:30:05.146700Z

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

2018-11-19T20:30:20.147100Z

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

2018-11-19T20:31:10.148100Z

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

2018-11-19T20:31:56.148500Z

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