Source: http://www-soc.lip6.fr/~hassan/examen_cirf_0809.pdf