Für ein intervallwertiges Constraint-Beispiel wird ebenfalls ein bestehendes Constraint modifiziert. So wird dem Konzept mit dem Namen CD_Rom für den Parameter Speed ein Werteintervall von 24 bis 40, und dem Parameter Transfer_Rate ein Werteintervall von 3600 bis 6000 zugewiesen:
(def-do
:name CD_Rom
:oberkonzept PC_Component
:parameter ((Speed [24 40] (default 32))
(Transfer_Rate [3600 6000])
(Icon "cdrom" (non-config true))
(Price {100 200})))
Die entsprechenden Unterkonzepte werden ebenfalls modifiziert. Nachfolgend ist die Constraint-Relation sowie das konzeptuelle Constraint für die Berechnung der Übertragungsgeschwindigkeit eines CD-ROM-Laufwerks aufgeführt. Das Constraint entspricht dem in Abschnitt 3.6.2 ff. beschriebenen Beispiel für ein Funktions-Constraint (vgl. Abbildung 3.9):
(def-constraint-relation
:name func_CD_Rom
:constraint-typ :funktion
:externe-pins (A B)
:beschraenkungs-funktion "A = B * [150,150];
B = A / [150,150];
# interval_consistency")
(def-konzeptuelles-constraint
:name conc_CD_Rom
:variablen-pattern-paare ((?c :name CD_Rom))
:constraint-aufrufe ((func_CD_Rom (?c Transfer_Rate)
(?c Speed))))
Auch hier erfährt das konzeptuelle Constraint keinerlei Modifikation. Die Beschränkungsfunktion der Constraint-Relation hingegen wird entsprechend dem in YACS enthaltenen Intervall-Constraint-Solver angepasst, durch den sich ausschließlich vorgefertigte solution functions verarbeiten lassen. Außerdem ist auch hier durch ,,#`` als Trennzeichen der Name der für dieses Constraint zu nutzenden Constraint-Lösungsstrategie spezifiziert. Es ist wiederum nur ein einziger Constraint-Ausdruck, in diesem Fall bestehend aus zwei primitiven Constraints, erforderlich, der vom Constraint-Parser des YACS-Frameworks in einem Schritt geparst wird.