Skip to content
Paula Gearon edited this page Dec 13, 2023 · 15 revisions

Q&A

These pages have been uploaded to NotebookLM. Go here to ask questions.

Asami

Asami is a graph database written entirely in Clojure. It runs on either the Java Virtual Machine (JVM) or a JavaScript-based system, such as a web browser or Node.js. It has been designed to look a lot like Datomic, though there are some architectural differences that lead to necessary differences.

Asami is designed to be embedded in an application and does not operate as a standalone database. As such, all interactions with Asami are via a Clojure API.

Getting Started

If you are unfamiliar with graph databases and graph queries, start with the Introduction.

The links on the right provide documentation for how to use Asami, along with the graph data structures and how the API interacts with them.

For developers who want to understand Asami, look at the Code Layout page.

Background

Asami is a project that evolved from simple data storage in the Naga rules system.

It has been heavily influenced by RDF in the data model, and Datomic in the API.


Many of these pages provide example code, but require some preliminary setup before it can be run.

A copy/paste template that may be useful in a repl is:

(require '[asami.core :as d :refer [transact q]])
(def db-uri "asami:mem://dbname")
(d/create-database db-uri)
(def conn (d/connect db-uri))

(def data [{}])
(def t (transact conn {:tx-data data}))
Clone this wiki locally