Skip to content
This repository was archived by the owner on Dec 20, 2017. It is now read-only.
Bernhard Scholz edited this page Mar 8, 2016 · 6 revisions

Building and Installation of Soufflé

Software Requirements

For building and installing Souffle, following software must be installed:

  • Make, Autoconf tools, GNU G++ supporting C++11 (from version 4.8), Bison, Flex, DoxyGen, Java JDK

Ubuntu/Debian Packages

On a Ubuntu/Debian system, following command line would install the necessary packages:

sudo apt-get install build-essential g++ automake autoconf bison flex doxygen openjdk-7-jdk

Note that the Ubuntu/Debian version needs to be recent such that G++ 4.8 is part of the standard distribution.

Build Soufflé

The Souffle project follows automake/autoconf conventions for configuring, installing and building software. To configure, build, test, and install the project, type:

 cd souffle
 sh ./bootstrap
 ./configure --prefix=<souffle-dir>
 make
 make check 
 make install

which stores executable, scripts, and header files in the directory of your choice denoted by <souffle-dir>. Use an absolute path for <souffle-dir>.

By setting the path variable

 PATH=$PATH:<souffle-dir>/bin

The commands souffle and souffle-profile are ready to use.

Running a simple example

Create the following Datalog program and save it to reachable.dl.

// Type Node
.type Node

//
// Edge
//
.decl Edge        (n:Node, n:Node)

Edge("0","1").
Edge("1","2").
Edge("2","3").
Edge("1","4").

//
// Reachable 
//

.decl Reachable   (n:Node, n:Node) output

Reachable(x,y)  :- Edge(x,y).
Reachable(x,y)  :- Edge(x,z), Reachable(z,y).

This program computes a transitive closure of the input graph that is given by the set of edges (facts for relation Edge). The following command evaluates the program and prints the output via option -D-.

souffle -D- reachable.dl

The command-line options for the tool are shown via command:

souffle -h

More Datalog examples can be found in the directory tests/evaluation/ of the repository.

The next topic is how to compile/execute Datalog programs with Soufflé.

Clone this wiki locally