Skip to content
Stuart Halloway edited this page Jan 26, 2015 · 3 revisions

Abstract

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:

Clone this wiki locally