datascript

Ben Sless 2022-07-07T15:36:27.046909Z

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

2022-07-07T15:53:01.840929Z

@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 Sless 2022-07-07T16:09:40.090859Z

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

Ben Sless 2022-07-07T16:10:04.683259Z

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

2022-07-07T16:14:02.933029Z

Oh really? Interesting

Ben Sless 2022-07-07T16:21:02.818299Z

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 Sless 2022-07-07T16:22:03.163959Z

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

2022-07-07T16:35:53.123639Z

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

wotbrew 2022-07-07T16:54:16.731929Z

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 Sless 2022-07-07T17:04:51.926159Z

Does that mean relic is on hiatus?

2022-07-07T17:15:54.283249Z

Oh, that doesn't sound good.

wotbrew 2022-07-07T18:14:43.774199Z

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

wotbrew 2022-07-07T18:16:02.818899Z

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 Sless 2022-07-07T19:20:55.984779Z

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

😄 1
2022-07-07T19:23:12.899359Z

Yea

2022-07-08T04:16:08.707689Z

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

2022-07-08T04:20:23.383969Z

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.

2022-07-08T04:24:30.030879Z

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