Source: http://users.encs.concordia.ca/~andrea/inse6411/Lecture 7-8 Concept generation.pdf