asami

Asami, the graph database https://github.com/threatgrid/asami
simongray 2021-06-08T08:00:31.106500Z

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

simongray 2021-06-08T08:01:53.107900Z

(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)

simongray 2021-06-08T08:02:59.109Z

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.

simongray 2021-06-08T08:05:30.109900Z

(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)

quoll 2021-06-08T09:30:54.112Z

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

quoll 2021-06-08T09:32:10.113500Z

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

quoll 2021-06-08T09:33:55.115300Z

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

littleli 2021-06-18T10:19:19.157200Z

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

quoll 2021-06-18T11:33:13.163100Z

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

quoll 2021-06-08T09:35:43.118Z

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

mdallastella 2021-06-08T10:28:00.120Z

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.

mdallastella 2021-06-08T10:28:58.121Z

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

quoll 2021-06-08T10:50:31.126800Z

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
osi 2021-06-08T15:48:24.131100Z

+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.

quoll 2021-06-08T18:07:35.133400Z

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

👍 2