Fork me on GitHub
#asami
<
2021-06-08
simongray08:06:31

@quoll Reading through your excellent introduction, I get the sense that what Clojure really needs is an actual book written in the same way that explains how to use Asami and a few of the other Clojure graph dbs. I know we have the Datomic docs, but it sure would be amazing with a book, especially one that covered a wider range of dbs that are similar in concept anyway. I would definitely buy one for myself and my friends 😛 I think lots of people don’t actually realise the connection between RDF, graphs, Datalog & Datomic, and all of these newer Clojure dbs. Having some kind of “Tome of Clojure Graph Databases” would in a way baptise the whole concept and make the connection clearer.

simongray08:06:53

(I’m not saying you should write a book, but I do wish that someone would so that I wouldn’t have to collect scraps of info from disparate sources)

simongray08:06:59

One of the big shames of Datomic IMO is that they try to hide the fact that it was obviously inspired by RDF and is functionally a graph db. They kinda try to sell it as a relational db, which I find odd.

simongray08:06:30

(actually looking at the language of http://datomic.com now they do seem to have retconned a bit and actually use the word graph on the frontpage, but very carefully)

quoll09:06:54

When Datomic was first introduced Rich did credit RDF as providing some inspiration. But he was against the OWA, among other things

quoll09:06:10

I have considered writing such a book. I would want to spend a bit more time with Neo4J first

quoll09:06:55

But I’ve used Datomic, OrientDB, TitanDB, and SPARQL (obviously), and they’re all the same in many ways.

littleli10:06:19

Not sure if this is interesting to you. About 3 years back I was part of the Oracle PGX team, I wasn't directly involved in graph database development, I was more on the analytics side. But they had quite impressive performance characteristics. https://docs.oracle.com/cd/E56133_01/latest/get-pgx.html

quoll11:06:13

I never got to use it myself. I recall people talking about Oracle’s first attempt, which was apparently a thin layer over the standard RDMBS, and they weren’t fans of it. But that was back around 2008/2009 IIRC. We did have a couple of Oracle people on the SPARQL working group: Souripriya Das and Matthew Perry. So it was clear that Oracle had made a commitment there

quoll09:06:43

I was very tempted to write that intro page as a generic graph query page, but I stayed with the single system (Datomic syntax) to reduce the cognitive load on the reader

mdallastella10:06:00

We wrote a library for OrientDB binary protocol a couple of years ago, but then we archived the repository. We digged a lot in their codebase and it's quite a mess... we didn't have consistent results also.

mdallastella10:06:58

I don't like the Neo4J license, but Cyper is a nice query language.

quoll10:06:31

When it comes to basic infrastructure, I find that most people don’t like commercial licenses. (They often have issues with open source licenses too!) It was due to not liking the Datomic license that I was asked to write Asami. Of course, back then I didn’t know that it would end up in ClojureScript, have any operations more complex than a join, have a query language, or durable storage. If those things had been suggested I would have tried to talk him out of it 😊

😜 1
osi15:06:24

+1 to the book idea. but it doesn’t have to be a clojure book. i think the ideas are highly portable. it is saying something that much of the effort is happening in the Clojure world, but at the same time i wouldn’t want someone to defer exposure to the ideas because it’s a “clojure book” or something.

quoll18:06:35

I wouldn’t write a book that focused on Clojure, no. My purpose of such a book would be to show the similarities across the stores. It would necessarily have to switch between the various databases, using appropriate code in each case. (EDN structure for the Clojure databases, SPARQL with JSON and XML for RDF, and Cypher for Neo4j).