Archive for the ‘Datalog’ Category

Learn Datalog Today

Thursday, September 18th, 2014

Learn Datalog Today by Jonas Enlund.

From the homepage:

Learn Datalog Today is an interactive tutorial designed to teach you the Datomic dialect of Datalog. Datalog is a declarative database query language with roots in logic programming. Datalog has similar expressive power as SQL.

Datomic is a new database with an interesting and novel architecture, giving its users a unique set of features. You can read more about Datomic at and the architecture is described in some detail in this InfoQ article.

Table of Contents

You have been meaning to learn Datalog but it just hasn’t happened.

Now is the time to break that cycle and do the deed!

This interactive tutorial should ease you on your way to learning Datalog.

It can’t learn Datalog for you but it can make the journey a little easier.


The Reemergence of Datalog

Tuesday, June 24th, 2014

The Reemergence of Datalog by Michael Fogus.

Not all “old” ideas in CS are out dated by any means. Michael gives a brief history of Datalog and then describes current usage in Datalog, Cascalog and the Bacwn Clojure library.

Notes from the presentation.

I first saw this in Nat Torkington’s Four short links: 24 June 2014.

A Datalog Engine for GPUs A Datalog Engine for GPUs

Saturday, October 26th, 2013

A Datalog Engine for GPUs A Datalog Engine for GPUs by Carlos Alberto Martinez-Angeles, Ines Dutra, Vitor Santos Costa, Jorge Buenabad-Chavez. (Caution: The link points to a paper within the proceedings for Kiel Declarative Programming Days 2013. Lots of other good papers and runs about 5.5MB)


We present the design and evaluation of a Datalog engine for execution in Graphics Processing Units (GPUs). The engine evaluates recursive and non-recursive Datalog queries using a bottom-up approach based on typical relational operators. It includes a memory management scheme that automatically swaps data between memory in the host platform (a multicore) and memory in the GPU in order to reduce the number of memory transfers. To evaluate the performance of the engine, three Datalog queries were run on the engine and on a single CPU in the multicore host. One query runs up to 200 times faster on the (GPU) engine than on the CPU.

Recalling that Lars Marius Garshol based tolog (a topic map query language) on Datalog.

Logic and Lattices for Distributed Programming

Wednesday, January 30th, 2013

Logic and Lattices for Distributed Programming

From the post:

Neil Conway from Berkeley CS is giving an advanced level talk at a meetup today in San Francisco on a new paper: Logic and Lattices for Distributed Programming – extending set logic to support CRDT-style lattices.

The description of the meetup is probably the clearest introduction to the paper:

Developers are increasingly choosing datastores that sacrifice strong consistency guarantees in exchange for improved performance and availability. Unfortunately, writing reliable distributed programs without the benefit of strong consistency can be very challenging.


In this talk, I’ll discuss work from our group at UC Berkeley that aims to make it easier to write distributed programs without relying on strong consistency. Bloom is a declarative programming language for distributed computing, while CALM is an analysis technique that identifies programs that are guaranteed to be eventually consistent. I’ll then discuss our recent work on extending CALM to support a broader range of programs, drawing upon ideas from CRDTs (A Commutative Replicated Data Type).

If you have an eye towards understanding the future then this is for you.

Do note that the Bloom language is treated more extensively in Datalog Reloaded. You may recall that the basis for tolog (a topic map query language) was Datalog.