Christopher, thanks for the info. 

My hesitation with Datalog comes from the separation from database and 
general purpose code. In a way it has the same problem as SQL. Once you get 
your result set then you are on your own. Clojure is a fantastic language, 
but I'd like to extend that same logic model to the client. Usually 
performance is the culprit, if I need to issue several datalog queries to 
get data to the browser. Once on the browser I can't reuse the same rules.

What I said is not all true. I could possibly use core.logic and reuse the 
rules. Then what is left is the difference between forward chaining and 
backward chaining. From what I can research the first is more data driven 
and the second is more goal oriented. My use case is general information 
systems, so I thought forward rules would be more appropriate.

One other thing I did not know is that there are Datalog to SQL bridges 
that is good to know.


On Wednesday, October 30, 2013 6:27:31 PM UTC-5, Christopher Allen wrote:
>
> If you just want to build up and apply constraints, Korma can do that.
>
> If you want something closer to Datalog with unification, then a Datalog 
> to SQL bridge is the most practical of largely impractical choices.
>
> On Tuesday, October 29, 2013 9:35:45 AM UTC-7, ArturoH wrote:
>>
>> I am interested in writing a better SQL mapping tool for clojure. Because 
>> I am not convinced that simple SQL composition is effective, for various 
>> reasons. I rather have some kind of logic construct that I could use to 
>> generate SQL from. My main concern is to eliminate the hard boundary 
>> between the RDBMS and the rest of the code. Any given logic construct would 
>> a candidate to be translated into SQL or executed inside the JVM.
>>
>> One option that I have been considering is a production rule system. The 
>> most popular are based on the rete algorithm. I know there are a few open 
>> source productions systems out there, but I think translating into SQL from 
>> an established rule language may be too complicated. At this point I plan 
>> to use the language extensions proposed by Anurag Acharya, that eliminate 
>> sequential guards and adds collection support. The reason is that I want to 
>> process the rules in parallel, and I want to be as close to SQL as 
>> possible. Clojure pure functions could also be called from within a 
>> production rule.
>>
>> The use case I have in mind is regular IT apps, not necessarily complex 
>> decision systems. I just find myself writing too much code, and often an 
>> SQL a clojure procedure and a function in the GUI will have some aspect of 
>> the same business rule embedded in the code. A layered approach helps to 
>> alleviate the problem, but it still persists. More support for declarative 
>> code may be the answer. But other than SQL or LINQ and other minor 
>> examples, there is little support for declarative code for average IT 
>> systems.
>>
>> Anyone has any ideas/opinions?
>>
>> I would appreciate any feedback.
>>
>> Arturo Hernandez
>>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to