Statistical Relational Learning

"Statistical Relational Learning" (SRL) is a subfield of artificial intelligence that combines logical representations with probabilistic reasoning. I've built some tools to help users incorporate these models into the wider machine learning ecosystem, or apply them to new applications. Also see:


A library for learning SRL models with a scikit-learn-style programming interface.

View srlearn on GitHub


A library to load benchmark datasets for relational learning.

View relational-datasets on GitHub


A library to load benchmark datasets for relational learning—but in Julia.

View RelationalDatasets.jl on GitHub

Relational Dataset Archive

An archive of standard, versioned benchmark relational datasets.

View Relational Dataset Archive on GitHub

Relational Data Linter

A grammar and linter to check that relational or inductive logic programming datasets meet standards.

View Relational Data Linter on GitHub


⚡ Fast implementations of boosted relational dependency networks and Markov logic networks.

View SRLBoost on GitHub


Relational Natural Language Processing. Lifting raw text into a relational representation.

View rnlp on GitHub


A tool for converting Entity-Relationship Diagrams (ERDs) into search constraints.

View Walk-ER on GitHub

Bayesian Networks

Tools for working and modeling with Bayesian networks.


Uniformly distributed samples of directed acyclic graphs for random Bayesian Network generation.

View UniDAGs on GitHub
A Bayesian network where alpha, beta, gamma influence X, which influences T.


Extracting interpretable decision lists from Bayesian Networks.

View bn-rule-extraction on GitHub


Occasionally one of my projects has a need that seems like it could be helpful elsewhere. So I extract the code into a more-general utility.


Scripts for transforming BibTeX files into markdown collections.

View awesome-bib-builder on GitHub


Preprocessing scripts to create reproducible partitions of the nuMoM2b data set.

View nuMoM2b-preprocessing on GitHub
Directed graph with blue and violet nodes.


A super simple scraper for FanFiction.Net

View ffscraper on GitHub


Julia macro for people who prefer declaring public/private scoping with syntactic sugar.

View ExportPublic.jl on GitHub

Course Projects

Things I built while working on a course or learning something new. Generally I built these to "learn lessons" rather than "develop for long-term support," so the quality has high variance.

An arduino redboard wired to a breadboard.

Arduino Thermometer Control

Diagrams, controller code, and evaluation for a TMP102 thermometer.

View Arduino Thermometer Control on GitHub
Directed graph with blue and violet nodes.

FanFiction Search Engine

A full-text search engine for Code Lyoko FanFiction. Final project for Search Informatics.

View FanFiction Search Engine on GitHub

Malicious .exe Detection

Using classifiers to determine whether a Windows portable executable file (.exe) is malicious or benign.

View Malicious .exe Detection on GitHub

Autonomous Robotic Arm

Control code for a robot arm that senses and manipulates cans.

View Autonomous Robotic Arm on GitHub

(Notes and Acknowledgements)

Badges were made with, and Python package statistics are occasionally pulled from PePy (for example, see the PePy entry for srlearn).