A constraint network is a set of variables and constraints that inter-relate and define the valid values for the variables. Heracles represents all the pieces of information in a given application and their inter-relationships as a constraint network. Figure 8 shows the fragment of the constraint network of the Travel Assistant that addresses the selection of the method of travel from the user's initial location to the airport. The choices under consideration are: driving one's car (which implies leaving it parked at the airport for the duration of the trip) or taking a taxi. We will use this example throughout the section to illustrate the components of a constraint network and the constraint propagation algorithm.