clara

http://www.clara-rules.org/
2020-10-01T15:02:13.015800Z

@petr I guess it isn’t really documented that well - but this relates http://www.clara-rules.org/docs/fact_type_customization/

2020-10-01T15:02:23.016200Z

but is more specific than the general case you probably care about.

2020-10-01T15:02:45.016600Z

In general though, the type matching dispatch for rules is done via clojure.core/type

2020-10-01T15:03:14.017100Z

but you can customize that dispatch via :fact-type-fn and :ancestors-fn if you have “hierarchical relationship”

2020-10-01T15:03:31.017300Z

my gist I shared mentions this stuff briefly and references the source doc

2020-10-01T15:51:01.022600Z

I'm potentially going to be using clara for a situation where end users will be writing their own rules. I'm concerned that the rules will get really complex with non-developers writing them. Are there any techniques to automatically find candidates for new rules that would simplify multiple other rules (like abstracting common clauses out)? One idea I had when I noticed clara converts expressions to disjunctive normal form was to use that along with karnaugh maps to simplify expressions. Has anyone heard of something like that being done before? Is this a crazy idea?