Source: http://cyberdoc.univ-lemans.fr/theses/2003/2003LEMA3001_1.pdf