You are right. I am referring to the querying function, not datomic on the 
whole. 

I have my own understanding about the differences but I was interested in 
hearing others. Please don't feel pressured to answer my question. I'm 
trying to compile understanding akin to stackoverflow, where as long as the 
question hasn't been asked before, then its worth posting. I'm not assuming 
answering this question satisfactorily won't take some effort. I hope my 
casual prose hasn't discouraged others from providing their input.

On Sunday, December 9, 2012 3:11:08 PM UTC-5, Nick Zbinden wrote:
>
> First of all, stop saying 'on datomic'. Datomic as a Database, witch in 
> its Peer library has a implmentation of Datalog. This implmentation of 
> Datalog has basicly nothing to do with the rest of datomic, it can be used 
> as a query language for data from all sources, it just comes with the 
> Datomic Peer Library.
>
> There is no sence in me explaining this. Learn what logic programming 
> (prolog, core.logic) is and how it works, and then you will understand it.
>
>
 @David,

That's actually a good explanation of core.logic I haven't really heard 
before, in that its all about solving constraint satisfaction problems, 
which is well defined. So now, my understanding is that querying in datomic 
is really just declarative code to describe a fancy filter function over a 
data set. Whereas solving constraint satisfaction problems are about 
efficiently exploring the combinatorial expansion of the problem to 
determine the solution space.

Mathematically this seems similar though, in that if you could express the 
expansion of cases in the database, then you could perform the query and 
obtain the answer. Something tells me that this is where the key difference 
lies. Since core.logic gradually expands the partial solutions until it 
meets all the constraints, this happens "lazily", whereas datomic querying 
only occurs on existing values. Does this sound right? In addition, 
core.logic provides tools for declaring how this expansion occurs.

-- 
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

Reply via email to