Skip to content
/ exalog Public

Semi-naïve typed Datalog backend with runtime, transformations, and foreign predicate support

License

Notifications You must be signed in to change notification settings

madgen/exalog

Repository files navigation

Exalog: Datalog as a library

Build Status

This project provides a Datalog backend as a library written in Haskell. It is meant to facilitate implementation of Datalog progeny that can compile down to range restricted Datalog wih perfect models.

What we provide:

  • Semi-Naïve evaluation engine
  • Stratifier
  • Foreign predicate support (from Haskell)
  • Data provenance tracking
  • Range restriction checker
  • Well-modedness checker (sufficient binding for foreign predicates)
  • Dataflow repair (achieve range restriction and well-modedness via program transformation)
  • Adornment transformation
  • Pretty printer

The road map:

  • Incremental evaluation
  • Type-level enforcement of range restriction and well-modedness
  • Inliner
  • Magic set transformation
  • Deduplicator
  • Interface files

About

Semi-naïve typed Datalog backend with runtime, transformations, and foreign predicate support

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published