Constraints werden in Konfigurierungssystemen zur Repräsentation und Verarbeitung von Konfigurierungsrestriktionen eingesetzt. Da diese Restriktionen u.U. einen großen Teil des statischen Wissens ausmachen können, sollte das Constraint-System eine adäquate Modellierungssprache und effiziente Inferenz- und Konsistenzmechanismen aufweisen. Im Detail dienen Constraints in Konfigurierungssystemen
In ENGCON werden durch Constraints formulierte Beschränkungen dazu genutzt, Abhängigkeiten zwischen den Parametern der Konfigurierungsobjekte zu beschreiben (vgl. Ranze et al., 2002, S. 850). Mit Constraints ist es möglich, komplexe Abhängigkeiten, wie funktionale Zusammenhänge und Restriktionen zwischen Objekten der Begriffshierarchie, auf Konzeptebene deklarativ zu beschreiben. Dabei sind sie keine Mittel der objektorientierten Wissensrepräsentation, denn sie werden i.d.R. auf mehrere Objekte angewandt und es ist keine eindeutige Zuordnung zu einem bestimmten Objekt möglich.
Das Constraint-Modell von ENGCON basiert auf den von Gülden (1993) beschriebenen Konzepten zur Integration eines Constraint-Systems in KONWERK, dem Vorgänger von ENGCON. Es lässt sich in drei Komponenten einteilen, die in den folgenden Abschnitten detailierter beschrieben werden:3.14
Ein wichtiger Aspekt ist, dass das Constraint-Netz während des Konfigurierungsvorgangs inkrementell anwächst. Nach und nach, immer wenn neue Komponenten aus der Begriffshierarchie dynamisch während der Konfigurierung erzeugt werden, zwischen denen Abhängigkeiten über konzeptuelle Constraints definiert sind, werden entsprechend neue Constraint-Relationen instantiiert und dem Constraint-Netz hinzugefügt.
Die Interaktion des Constraint-Systems mit ENGCON erfolgt über eine relativ schlanke Schnittstelle. Vor einer Propagation der Constraints werden die Constraint-Variablen mit den Wertebereichen aus der aktuellen Teilkonfiguration belegt bzw. aktualisiert. Die internen Mechanismen zur Auswertung innerhalb des Constraint-Systems laufen wie in einer Black Box unabhängig vom restlichen System ab und lassen sich von der Kontrollkomponente nach dem Anstoßen der Propagation bis zu deren Ende nicht weiter steuern. Am Ende einer Propagation werden die aktualisierten und neu berechneten Wertebereiche wiederum in die aktuelle Teilkonfiguration übertragen.