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.

Reply via email to