Slog is a language, compiler, and runtime system for implementing data-parallel deductive programming.
The best way to understand Slog is to read our preprint.
compiler/
-- Compiler from Slog source code to a parallel RA planbackend/
-- MPI-based parallel relational algebra plan (RA) runtimerunslog
-- Script to build and run slog program with given input data
Here's how you do Transitive Closure in Slog
[(path x y) <-- (edge x y)]
[(path x z) <-- (edge x y) (path y z)]
The Following guide can help you quickly get started with Slog:
The following video (click the image below) demonstrates the first 2-3 articles below: setting up slog, running transitive closure, and showing the first example from the tutorial article.
- Set up Slog
- A simple example: transitive closure
- Tutorial
- REPL and runslog
- Comparison with Souffle
- Components and Internals (Todo)
If you have issues or find any mistakes, please raise an issue.