@folcon there's #relic which does it in memory and can be translates to datalog
@metasoarous, thanks, I'm having a look over the talks for that, though at some point I'll have to sit down and work out what exactly it's doing in the rust server 😃... @ben.sless, thanks for the heads up, I spotted relic earlier, it's looks interesting, I'm a little concerned that it appears to have a different model. So not 100% certain how well it fits with datalog?
Both datalog and sql can be mapped to relational algebra which is what you really want, "the rest is commentary"
I don't know where relic stands atm but i recall the author wanted to rewrite it with datalog, too
Oh really? Interesting
in any case, you can join any datalog query on the entities to turn it into SQL, e.g.
?e :a v -> select ,,, where a = v
where the select is the find clausetwo different entities with the same value in the same where clause are a table join
Oh sure, that's just a query transform I need to write 😃...
My datalog spike mapped to the 'node dsl' that you see in relic right now. But I first had to extend it with fixed-point recursion (cant have datalog without rules) - its possible though. Both things were at the experimental stage on a private hack branch around 6 months ago, not sure If I'll see them through at this point.
Does that mean relic is on hiatus?
Oh, that doesn't sound good.
no, just means I might not commit to 6 months of work on datalog right now
It pretty much works for what I intended it for (I am a simple man) its like fun and lets you program like the tar pit frp examples at smaller scales (such as in browser apps)
And here I was, wanting an embedded timely dataflow framework in Clojure over distributed event queues 🔥
Yea
@danstone hinted at this, but just to clarify, SQL is not isomorphic to datalog; Datalog is strictly more powerful/expressive because you can write recursive rules. Some SQL implementations (postgres in particular) do support some form of fixed-point recursion, but it's far from elegant (relative to a recursive datalog rule).
As far as "what exactly it's doing in the rust server", you can find out a bit more about it by looking at Frank McSherry's posts/papers.
https://github.com/frankmcsherry/blog/blob/master/posts/2016-06-21.md
Also https://www.microsoft.com/en-us/research/wp-content/uploads/2013/01/differentialdataflow.pdf
There may be a few other links worth following here: https://github.com/metasoarous/datsync/wiki/Literature