Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/philzook58/duckegg
An experiment in using DuckDB for a datalog / egg
https://github.com/philzook58/duckegg
datalog egg egraph sql
Last synced: 5 days ago
JSON representation
An experiment in using DuckDB for a datalog / egg
- Host: GitHub
- URL: https://github.com/philzook58/duckegg
- Owner: philzook58
- License: mit
- Created: 2022-09-26T19:12:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-11T20:15:01.000Z (about 1 year ago)
- Last Synced: 2024-05-02T01:01:08.544Z (7 months ago)
- Topics: datalog, egg, egraph, sql
- Language: Python
- Homepage:
- Size: 191 KB
- Stars: 23
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# duckegg
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/github/philzook58/duckegg/blob/master)
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
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](https://github.com/yihozhang/egraph-sqlite) [PLDI workshop paper](https://src.acm.org/binaries/content/assets/src/2022/yihong-zhang.pdf), and this implementation is very much related and inspired by that one.
For more on egraphs and egglog
-
-
-
-
-