1. 12
    1. 4

      Given the absence of a prolog tag, for readers interested in Prolog and related logic programming languages, I’ll link this list of several previous Prolog/Datalog-related submissions.

      1. 4

        I agree a prolog or logic programming tag would be very interesting!

      2. 2

        Greatly appreciated! I’ve been doing a deep dive on logic programming recently, specifically the actual implementations of various methods. For such a mature field it’s remarkable how little accessible information there is. (Kudos to the *Kanren folks and various SMT enthusiasts for being the exception there.)

      3. 1

        I also recommend The Power of Prolog. This book teaches you to use the good, pure-logical parts of Prolog, which means you can think declaratively like in Datalog or miniKanren.

        It’s magic! For example, Advent of Code 2021 - Day 24 gives you an assembly-like language and asks “For which inputs does this program output zero? Find the largest.” It doesn’t sound trivial: it requires some kind of static analysis. But in Prolog it is trivial! I wrote a boring interpreter, and then queried it with an unknown input.

    2. 3

      FWIW this project was used to prototype the Rust type system

      Core dev Niko has several talks where he mentions it

      I’ve wanted to give it a spin for a long time, but a problem hasn’t come up so far

    3. 3

      My favorite post about Soufflé: https://ianthehenry.com/posts/drinking-with-datalog/

      Describes building a recipe system with Soufflé; very easy to follow tutorial.

    4. 1

      flora.pm uses Soufflé to process packages’ categories from Hackage: https://github.com/flora-pm/flora-server/blob/development/cbits/categorise.dl