Constraint-based knowledge representation for configuration systems

Configuration is a design activity where the set of available components and their allowed combinations are known a priori. Configuration systems of today are typically rule-based systems. Maintenance and verification of rule-based system has shown to be extremely difficult because the knowledge relating to a single entity is spreading over several rules and modifications to rules must be checked for interactions with other rules. Since the configuration knowledge of a product evolves during the whole life-cycle modifications and extension of the knowledge must be facilitated in order to build productive systems. We show, how using a constraint-based approach for the configuration task makes this problem simpler. 1 Representing knowledge By knowledge, we mean general truths which relate small sets of symbols. Examples of knowledge are: All humans are mortal. The speed of an object is equal to the ratio of distance travelled per time unit. Since the time of the Greek philosophers, knowledge has been expressed in terms of syllogisms, i.e. rules of the form: IF <condition> THEN <conclusion> as in: IF human(x) THEN mortal(x). Modern science, in particular physics, has found it more convenient to represent knowledge in the form of equations or more generally constraints, such as: v = s=t which can be used both to calculate the v from s and t, but also t from v and s or s from v and t. In fact, in modern physics there is only one single law, minimize the energy, which is to be satisfied in the presence of a large set of constraints. Constraints in discrete domains can be expressed as compatibility relations between variablevalue pairs, stating that certain combinations are allowed or not. For example, a certain kind of motor may only admit gears of type Gear-21. In the following, we examine the advantages of constraints as a basis for knowledge representation and reasoning as opposed to classical formalisms such as rules and algorithms. We will show that ensuring consistency of a rule-based system is a almost impossible in a fast changing world. 2 Configuration task The general configuration task can be defined as follows: Given a set of predefined components, the knowledge of how components can be connected, the customer requirements for a specific configuration The goal is to find the sets of components fullfilling the user-requirements and respecting all the compatibility constraints. This configuration task can be expressed as the problem of assigning values to variables subject to the constraints, where the variables are classes of component types and the values are specific instances of these types.