Source: https://miashs-www.u-ga.fr/~adamj/doclicence/Prolog-cours1.pdf