Skip to content

philzook58/duckegg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

duckegg

Open In Colab

Duckegg is an embedded python datalog implementation built around duckdb to supply it's core functionality. Duckdb is making waves as a performant, embedded, easy-to-deploy OLAP database

Blog post here https://www.philipzucker.com/duckegg-post/

Really duckegg is a designed to be a relational egglog. Egraphs are a data structure for performing nodestructive term rewriting and equational reasoning. This graph can be represented and queried as tables (each enode becomes a row in the corresponding table of it's symbol). The various rebuilding operation can also be represented as SQL operations. The hope basically is that duckdb is so good that the translation cost into SQL is worth it.

Yihong Zhang previously had the idea of building a relational egglog around sqlite in racket PLDI workshop paper, and this implementation is very much related and inspired by that one.

For more on egraphs and egglog

About

An experiment in using DuckDB for a datalog / egg

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published