Source: https://www.theses.fr/2016COMP2308.pdf