A constraint in the context of generalization can be defined as a design specification to which the solutions to a generalization
problem should adhere (Weibel and Dutton 1998). A constraint is meant to limit the number of possible solutions
without binding it to a particular action. This concept reflects the idea that more than one acceptable solution may
exist to a given generalization problem. It is therefore well suited for developing flexible systems. Constraints originate
from specific map controls applicable to a generalization problem. They are usually specified as something to maintain
or to avoid.