Structured Machine Learning Group

Structured Machine Learning Group

This is a list of all the software tools our group produced over the years. We are committed to make all of our software Open Source to foster reproducible research. Each project is publicly hosted on either GitHub or BitBucket. Refer to the individual projects pages for the details. Our software is free to use (licensing notes on the projects pages), but if it is useful for your research please consider citing us.


A Python implementation for mining Egocentric Eemporal Motifs.


A Python implementation of Constrained Adversarial Networks.


A unified and high-level API to a variety of weighted model integration solvers.


Python library for declarative, constrained, structured-output prediction.


A Python library that wraps and enhances the MiniZinc tools for constraint programming.

Part-wise Coactive Learning

A Python 3 implementation of the Part-wise Coactive Learning from Decomposition Strategies for Constructive Preference Elicitation.

Choice Perceptron

A Python 3 implementation of the Choice Perceptron from Constructive Preference Elicitaion over Hybrid Combinatorial Domains.

Coactive Critiquing

A Python 3 implementation of Coactive Critiquing for constructive Preference Elicitation.

Constructive Layout Synthesis

A Python 3 implementation of Constructive Layout Synthesis via Coactive Learning.


A Python implementation of Structured Learning Modulo Theories.


A Python implementation of Set-wise Max-margin for constructive Preference Elicitation.


Brain-Computer Evolutionary Multi-Objective Optimization (BC-EMO): a genetic algorithm adapting to the decision maker.

Type Extension Trees

Type Extension Trees are a powerful representation language for count-of-count features characterizing the combinatorial structure of neighborhoods of entities in relational domains.