clara

http://www.clara-rules.org/
2018-05-13T22:22:18.000100Z

@devn Would the fact-graph functionality help? https://github.com/cerner/clara-rules/blob/master/src/main/clojure/clara/tools/fact_graph.cljc I know I never got around to building graphical tools on top of it and frankly probably won’t at this point, but even in a REPL or with text-based visualization maybe it could be useful. The main ways you’d get at that sort of info would be session inspection (which the fact graph functionality uses internally) or listeners such as tracing - since the resulting data is just Clojure data you could process it as appropriate to make it more easily understood in your use case. To be honest though, my first thought is that if you need to go from the actual rule firing patterns backwards to the logical order, something is probably suboptimal about the organization of the codebase in question. Code organization is a tricky thing to get right and IMO highly domain-dependent but FWIW the rulebases I’ve worked with tended to either be DAGs or have broad groupings of rules that could be sketched out with their relationships to each other on a single piece of paper (with each of those groupings potentially containing other groupings and so forth)

alex-dixon 2018-05-13T22:25:55.000047Z

Maybe attach a listener and accumulate rule names