@adam622 I started working on implementation of FDB for Datahike a few months back, https://gitlab.com/grischoun/datahike-fdb. The current status is that it can store datoms but it is not connected to datahike yet. If someone is interested in porting it into Datahike’s backend protocol, let me know.
That is a good starting point for set theory, which is the foundation of most of modern mathematics. We had collected quite a bit of material a few years ago together with @metasoarous and @mail524 here https://github.com/metasoarous/datsync/wiki/Literature. I think this is a good introduction to Datalog: http://www.nowpublishers.com/articles/foundations-and-trends-in-databases/DBS-017
The internals can be taken apart in fairly simple primitives, but we need to make this more obvious. Compositionality with clean abstractions is one of our core objectives, Datomic did this very well also. The indices are pattern matched against here: https://github.com/replikativ/datahike/blob/master/src/datahike/db.cljc#L158. All they need to do is provide an (efficient) iterator over triples in EAVT, AVET, AEVT form. Since we want to have efficient persistent indices, we use the hitchhiker-tree logic and semantics over multiple durable storage backends which are fairly simple blob stores (konserve provides a lense-like interface in general though). So for persistent semantics one should implement a konserve backend while for more fine-grained integration into another store (probably without persistent semantics) directly implementing the index interface is the way to go. We then also provide a (new) configuration data-DSL by @timo, which is mapped onto the stores here: https://github.com/replikativ/datahike/blob/master/src/datahike/store.cljc.
@tangj1122 It is great to meet you. I am using the Zettelkasten method inside of emacs and thought about mapping org-mode parse trees onto a schema like Roam (basically having emacs run a query on the Roam database to create the file to edit first and transact it back on file save events). There is also https://org-roam.readthedocs.io/en/latest/ which uses SQLite, but maybe the author would like this idea as well 🙂.
Thank you! Will dig in to those...
Hi guys! I am very new to Datahike and Datomic — and loving the ease of use of Datahike already! Is there a way to visualize what's inside Datahike's DB (say, with PostgreSQL backend), or REPL is the only way?
@timur058 Hey, nice to have you here. We are currently working on a UI for the transactor which will provide table views on query results, probably as React components that you can also move into your own frontend.
2❤️Ohhh...that's exciting! When do you figure there will be something made public, @whilo?
@konrad.kuehne Is working on the transactor interface here: https://github.com/replikativ/datahike-server/blob/master/src/cljs/datahike_dashboard/core.cljs
I hacked on this last night as a template to include React-Leaflet and render markers on a map. You can just take these transact and query examples to talk to the server. I am doing it with cider-jack-in-cljs with shadow-cljs as backend and it worked fine, but we do not have instructions yet.
We hope to provide something more polished soon, but I cannot make a direct commitment yet. But we are super happy to work on this together with other people.
If any one else wants to get it up and running:
Clone the repo and cd. Then open two terminals.
• Terminal 1: lein run
• Terminal 2: npm install
then npx shadow-cljs watch app
• Then checkout http://localhost:8080/ in your browser