Fork me on GitHub
#datascript
<
2022-07-07
>
Ben Sless15:07:27

@folcon there's #relic which does it in memory and can be translates to datalog

folcon15:07:01

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

Ben Sless16:07:40

Both datalog and sql can be mapped to relational algebra which is what you really want, "the rest is commentary"

Ben Sless16:07:04

I don't know where relic stands atm but i recall the author wanted to rewrite it with datalog, too

folcon16:07:02

Oh really? Interesting

Ben Sless16:07:02

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 clause

Ben Sless16:07:03

two different entities with the same value in the same where clause are a table join

folcon16:07:53

Oh sure, that's just a query transform I need to write 😃...

wotbrew16:07:16

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.

😥 1
Ben Sless17:07:51

Does that mean relic is on hiatus?

folcon17:07:54

Oh, that doesn't sound good.

wotbrew18:07:43

no, just means I might not commit to 6 months of work on datalog right now

wotbrew18:07:02

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)

Ben Sless19:07:55

And here I was, wanting an embedded timely dataflow framework in Clojure over distributed event queues 🔥

😄 1
metasoarous04:07:08

@U0GE2S1NH 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).

metasoarous04:07:23

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.

metasoarous04:07:30

There may be a few other links worth following here: https://github.com/metasoarous/datsync/wiki/Literature