datascript

Immutable database and Datalog query engine for Clojure, ClojureScript and JS
oly 2021-02-10T09:57:39.013400Z

just curious how did everyone learn datalog ?

pithyless 2021-02-11T22:56:29.025600Z

@oliver.marks if it’s not too forward to post my own talk, I feel pretty good about sending people here as an intro: https://m.youtube.com/watch?v=oo-7mN9WXTw

pithyless 2021-02-11T23:04:41.027800Z

Some specific topics are covered and discussed at https://vvvvalvalval.github.io/archives.html and https://tonsky.me that I had not found eg in the official Datomic docs.

oly 2021-02-12T09:06:02.028Z

your youtube video is what got me investigating datascript its very nicely done and tonsky's stuff really helped early on

oly 2021-02-12T09:07:31.028200Z

I also liked your rest video, looked neat the flow you had working with the api's but there was not much on the librarys your using to achieve that or demo project so I was never sure how to set it up

oly 2021-02-12T09:08:00.028400Z

regardless make more videos they are really well done 🙂

❤️ 1
pithyless 2021-02-12T15:26:25.031200Z

The ÈQL apis were using https://github.com/wilkerlucio/pathom and I’m a big fan of https://fulcro.fulcrologic.com for building production-ready stuff with these ideas.

oly 2021-02-15T09:47:32.036300Z

funny I have been watching some fulcro videos https://www.youtube.com/c/TonyKayNW so will be exploring it at some point :)

oly 2021-02-10T09:58:44.014600Z

I get most of the basics but when it gets to aggregates joins multiple databases the amount of information online seems very limited, are there books on the subject which people have used ?

danieroux 2021-02-10T11:45:56.014700Z

http://www.learndatalogtoday.org if you have not seen it. And there is some information in here too, and obviously Datomic focussed: https://github.com/cognitect-labs/day-of-datomic-cloud

oly 2021-02-10T14:06:37.015Z

I went through learndatalog today, but beyond that and a few blog posts mainly from tonsky there is not much out there, I have not looked at day of datomic

oly 2021-02-10T14:07:47.015200Z

Seems it is used by some large companies so curious how they got that expertise in the first place courses books word of mouth other resources ?

2021-02-10T16:34:02.016600Z

the Datomic documentation has some details on aggregates, DataScript has a similar API for those. multiple databases is a fairly esoteric thing; most usage has only one and it's just implicitly part of :where clauses.

2021-02-10T16:35:13.017600Z

but you can pass in two databases, capture them as :in $ $other and then do :where [$ ?a :some/prop ?b] [$other ?c :other/prop ?b]

2021-02-10T16:35:35.018100Z

(speaking generally about Datalog; I don't actually know how well-supported that is in DataScript.)

clyfe 2021-02-10T16:40:36.018400Z

Some stuff in ullman+widom book too http://infolab.stanford.edu/~ullman/dscb.html

clyfe 2021-02-10T16:42:26.018600Z

https://en.wikipedia.org/wiki/Description_logic

clyfe 2021-02-10T16:43:28.019Z

A lot of stuff under "Semantic Web" but there's a lot of cerry picking required, RDF , SPARQL etc

➕ 2
oly 2021-02-10T16:48:31.019300Z

surprised there is not more out there considering there are quite a few dbs using datalog, but yeah cherry picking bits here and there is how I have been picking it up

clyfe 2021-02-10T16:49:46.020Z

Prerequisites are "https://en.wikipedia.org/wiki/Logic_programming" (wikipedia page there is decent) and "declarative programming" (not linking to wikipedia because it's way off the academic subject).

oly 2021-02-10T16:49:51.020400Z

I did try something like that in datascript, mainly to insert a generated range into a query

oly 2021-02-10T16:51:53.021700Z

but that's the thing is that the best way I don't know and the more complex the query's get the less info I am finding

clyfe 2021-02-10T16:52:11.021800Z

https://jena.apache.org/ https://protege.stanford.edu/ db - reasoner, potato - potato

oly 2021-02-10T16:52:56.022200Z

these all seem quite low level but perhaps hand to have a look over

oly 2021-02-10T16:53:49.022400Z

not the same as googling sql date ranges and getting query examples on how to build the query's which is perhaps more what I was hoping for

clyfe 2021-02-10T16:55:51.022600Z

Read the first link I pasted, with patience, it's the main thing, and it's accessible.

clyfe 2021-02-10T16:57:18.022800Z

and/or this: https://mitpress.mit.edu/books/reasoned-schemer

clyfe 2021-02-10T17:02:20.023200Z

But all this is the internals, if you're more into user/pragma I second learndatalogtoday & datomic docs (and learn by building something).

oly 2021-02-10T17:02:45.023400Z

okay will do cheers for the links 🙂