-
Notifications
You must be signed in to change notification settings - Fork 11
build
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
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.
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.
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é.