Philly ETE 2015 #28 – Stuart Halloway – Enhancing Datalog for Datomic

Tags: , , ,

Slides from Stuart’s talk are available here.


Datalog is a deductive query system combining a database of facts with a set of rules for deriving new facts from existing facts and other rules. Datalog has been a signature feature of Datomic since day one, and the 2015 releases of Datomic add additional expressiveness for hierarchical selection, disjunction, and negation. In this talk, we will cover the basics of Datomic Datalog, and then dive into the latest enhancements, both in the core language and in how Datalog fits into application code.

Datalog queries have the expressive power of SQL + recursion, and so are a good fit for systems that want “the power of SQL” but more flexibility. Perhaps more importantly, Datomic’s universal entity/attribute/value (EAV) schema has a one-to-one mapping with the object/method/argument shape of many programming languages. This allows a frictionless mapping from Datalog to application code, versus e.g. the impedance mismatch of object-relational mapping (ORM).

In this talk you will learn the basics of Datomic Datalog:

  • the basics of data patterns
  • joining implicitly, with ever saying “join”
  • extending datalog with functions and predicates
  • creating reusable abstractions with datalog rules
  • querying points in time, or across time

as well as some more recent enhancements:

  • pulling hierarchical and nested information
  • negation and disjunction

About Stuart:

Stuart Halloway is a founder and President of Cognitect and of Relevance. He is a Clojure committer, and a developer of the Datomic
database. He has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.