Skip to content

A datalog subset, written to learn more about datalog evaluation.

License

Notifications You must be signed in to change notification settings

TorNATO-PRO/gigalog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gigalog

Gigalog is a minimal semi-naive parallel Datalog engine supporting fixpoint evaluation and stratified negation.

It provides an interpreter which supports wildcards, negation, strings and constants. It also supports input and output statements, comments, as well as recursion and mutual recursion.

Later on I plan to add support for integers and comparison operators to facilitate more useful programming.

Here are some sample programs.

% samegeneration.dl
.input Parent("test.csv")
Person(X) :- Parent(X, _).
Person(X) :- Parent(_, X).
SameGeneration(X, X) :- Person(X).
SameGeneration(X, Y) :- Parent(X, P), SameGeneration(P, Q), Parent(Y, Q).
.output SameGeneration
link(a, b).
link(b, c).
link(c, d).
link(d, e).

path(X, Y) :- link(X, Y).
path(X, Y) :- step(X, Y).

step(X, Y) :- link(X, Z), path(Z, Y).

About

A datalog subset, written to learn more about datalog evaluation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published