Sounds great, Alan! I hope the significant refactoring of the rule shredding and optimization I made last weekend didn't disrupt you too much.
The good news is I think the APIs structure of the code should be reasonably stable now. I'm planning on attacking the accumulator logic next -- it's kind of a mess, has some confusing semantics when facts are retracted, and is pretty inefficient -- but that change should be pretty localized. I'm really curious to see how involved a ClojureScript port of this will be. The vast majority of it should be portable, but there are some things JVM-specific. These are somewhat unusual in most Clojure programs, such as inspecting a Clojure record or JavaBean to enumerate the pre-defined fields, making them visible on the left-hand side of the rule. Clara also makes more use of macros than I would expect from most code, necessitated by the fact that it essentially defines a new control structure for logic. But if we can solve those cleanly, I *think* it will translate to ClojureScript pretty well. On a related note, I recently learned of a JavaScript-based Rete implementation called Nools. [1] We might be able to learn a thing or two from that; I certainly learned a lot from JVM-based rule engines before starting Clara. In any case, I look forward to seeing what you're up to. I do want to get Clojurescript working with this once I get the JVM-based version a bit more solid and validate it against some problems I'm working on. [1] https://github.com/C2FO/nools On Wednesday, September 25, 2013 10:03:16 PM UTC-5, Alan Moore wrote: > > +.010 > > Thanks for the update! I'm still working on mods for ClojureScript... I'll > send a pull request when I'm done. > > Alan > > > On Monday, September 23, 2013 7:16:12 PM UTC-7, Ryan Brush wrote: >> >> This is the first release of Clara, forward-chaining rules in Clojure. >> >> Details on the github site: >> >> https://github.com/rbrush/clara-rules >> >> I've also posted the rationale for what I'm doing here: >> >> http://www.toomuchcode.org/2013/09/rules-as-control-structure.html >> >> The gist is that forward-chaining rules are a great tool for many >> problems and Clojure's strengths can address some weaknesses in existing >> production systems. Right now Clara supports most of the major features >> seen in production systems, embraces Clojure values like immutability, and >> is powerful enough for a number of use cases. It still needs to be profiled >> and subjected to more rigorous testing before I'd consider it production >> ready, but this release is for anyone interested in experimenting with it. >> > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
