In diesem Beispiel wird gezeigt, wie in einem Constraint die Merkmale zweier unterschiedlicher Objekte angesprochen werden, um eine konsistente Bewertung zu gewährleisten.
Das Betriebssystem für Workstations muß BS1 sein, wenn BS1 das Betriebssystem des Servers ist:
Beziehungsnetz: C_net
Beziehung: BS1_workstation
Quelltext:
OBJECTS:
Server is_a (300) c_server
WHERE server_os = c_operating_system,
Workstation is_a (300) c_workstation
WHERE workstation_os = c_operating_system,
Net is_a (300) c_net
CONDITION: part_of (server, net) and part_of (workstation, net) and server_os = ‘BS1’
RESTRICTIONS:
Workstation_os = server_os
INFERENCES:
Workstation_os
In dem Constraint wird über die Objekte Server, Workstation und Netz gesprochen. Sie werden über ihre Klassen angegeben. Außerdem werden die Merkmale angegeben, die im Constraint verglichen werden.
Als Bedingung für das Constraint wird angegeben, daß Server und Workstation Teile eines Netzes sein müssen (vgl. Thema: Constraints: Bedingungen angeben ). Da die Klasse c_net die übergeordnete Klasse der Klassen company_network und department_network ist, betreffen die Aussagen des Constraints sowohl Unternehmensnetze als auch Abteilungsnetze. Es müssen für Unternehmensnetze und Abteilungsnetze also keine zwei verschiedenen Constraints angelegt werden.
Unter RESTRICTIONS wird festgelegt, daß das Betriebssystem der Workstation mit dem Betriebssystem des Servers übereinstimmen muß. Da in der Bedingung festgelegt wurde, daß das Betriebssystem des Servers BS1 sein muß, muß demnach als Betriebssystem der Workstation auch BS1 hergeleitet werden.
Unter INFERENCES wird angegeben, daß das Betriebssystem für Workstations hergeleitet werden soll. Diese Angabe dient bei diesem Beispiel nur dokumentarischen Zwecken, da bei einer Gleichung unter RESTRICTIONS die Werte für die Variable auf der linken Seite des Gleichheitszeichens automatisch hergeleitet werden (vgl. Thema Constraints: Restriktionen ).
Auch das Beziehungsnetz mit diesem Constraint sollten Sie wieder sowohl mit dem Unternehmensnetz als auch mit dem Abteilungsnetz verknüpfen. Nur dann kann das Constraint auch wirken, wenn nur ein Abteilungsnetz verkauft wird.