Author here. Happy to answer any question.
Well done and super cool talk! I love how the density of J lets the whole implementation plus benchmarks fit in a hundred-line appendix!
I’m reading that this is motivated by the need for fast logic reasoning in statistical computing, what would that look like? (like: solving an example of an interesting logic problem using MicroKanren in J rather than e.g. Datalog)
The idea is to logically relate numerical datasets by logical relations. I work in medicine and while statistical machine learning is full of cool concepts, one issue is how to ascertain that your model does the thing you expect when an exceptional datapoint lies outside the expected range.
The model is a blackbox, so you can try to constrain it from outside but that becomes a difficult exercise for a faillible human. If the human misses part of the spec, you’ve got a problem. So the idea is to have a high-level logic language relating low-level statistical datasets. This directly corresponds to how some robotic artificial intelligence is modeled, and I’d like to try to emulate medical reasoning following the same process. That’s why I did that in J, inspired by Aaron Hsu’s Co-dfns compiler. I thought it would be easier to transition from a language with strong numerical capabilities and implement relational programming in it than going the other way round.
Source appears to be here
That’s an old version. The current one is here
The ‘cleanup’ branch is the most recent one. It’s not only cleanup anymore, though.
Sorry, my repos are a mess and I didn’t expect people to go have a look.
I expect a lot of people to want to take a look now that the preprint is floating around. (I can’t speak for everybody, but I doubt I’m the only one who sees a paper about a cool project and immediately looks for source code.)