
Wann wird eine Regel ausgeführt?
Eine Regel im EH&S Expert wird ausgeführt,

Der explizite Eingriff in den Regelwerkablauf mittels Enable/Disable-Kommandos kann dazu führen, daß Fakten bereits ausgeführter Regeln nachträglich geändert werden. Dies hat zur Folge, daß die Regel erneut ausgeführt wird.
Ausnahmen:
Ausnahme: ToDo’s die nur direkte Zuweisungen der Art X:=Y machen, gelten auch als ausführbar, wenn Y den Wert NULL, d.h. keinen echten Wert hat.
Die Auswertung ist beendet, wenn keine Regel mehr diesen Bedingungen genügt.

|
X := 1 |
Vorgabe: Die Fakten X und Y haben Daten, Z ist leer (NULL). | ||
|
Y := 2 | |||
|
Z | |||
|
RULE R1 |
Die Bedingung X=1 ist wahr. Somit wird die Regel ausgeführt und Regeln der Regelgruppe Gruppe1 werden deaktiviert. | ||
|
IF X = 1 | |||
|
THEN DISABLE(GRUPPE1) | |||
|
END | |||
|
RULE R2 GROUPS GRUPPE1 |
Die Regel wurde durch die Regel R1 deaktiviert und kann daher nicht angewendet werden. | ||
|
IF X > 0 | |||
|
THEN Z := 1 | |||
|
END | |||
|
RULE R3 |
Diese Regel kann angewendet werden, da das leere Z nicht in einem komplexen Ausdruck auftritt. | ||
|
IF TRUE() | |||
|
THEN Y := Z | |||
|
END | |||
|
RULE R4 |
Regel kann nicht angewendet werden, da Z innerhalb des Ausdrucks Z + 1 ohne Wert ist. | ||
|
IF TRUE() | |||
|
THEN Z := Z + 1 | |||
|
END | |||
|
RULE R5 |
Das leere Z kommt in der Bedingung vor, die Regel kann also nicht angewendet werden. | ||
|
IF Z = 0 | |||
|
THEN Y := Z | |||
|
END | |||
|
RULE R6 |
Diese Regel kann angewendet werden, da das leere Z innerhalb der IsNull()-Funktion auftritt. | ||
|
IF IsNull(Z) | |||
|
THEN Z = X | |||
|
END | |||
|
RULE R7 |
Diese Regel kann nicht ausgeführt werden, da die Bedingung nicht wahr ist. | ||
|
IF X > 10 | |||
|
THEN X := X + 1 | |||
|
END | |||
Datenabhängige Regelausführung
Für die Reihenfolge der Regelausführung gilt die Strategie der Datenabhängigkeit. D.h., wenn eine Regel A nach den Kriterien noch nicht ausgeführt und nicht deaktiviert für ausführbar befunden wird, dann werden vor Prüfung der restlichen datenbezogenen Kriterien zunächst alle Regeln ausgeführt, die Werte von Fakten ändern können, die in A als Eingabedaten benutzt werden. Dies sind diejenigen Fakten, die in der Bedingung oder auf der rechten Seite von Zuweisungen vorkommen.
Die datenabhängige Regelausführung erfolgt rekursiv. D.h., wenn bei Prüfung von Regel A festgestellt wird, daß Regel A Daten von Regel B braucht, Regel B jedoch wiederum von in Regel C geänderten Daten abhängt, dann wird zunächst Regel C, dann Regel B und zuletzt Regel A ausgeführt.
Der Regeleditor zeigt Ihnen Abhängigkeiten, die zwischen Regeln bestehen über die folgende Farbkonvention an. Wählen Sie den gewünschten Präsentationsmodus über Debug ® Visualize Recursive Rule Dependencies.
Farbe |
Modus singlelevel dependency |
Modus multilevel dependency |
blau |
selektierte Regel |
selektierte Regel |
rot |
Regel, von der die selektierte Regel direkt abhängt |
alle Regeln, von denen die selektierte Regel abhängt |
grün |
Regel, die von der selektierten Regel direkt abhängt |
alle Regeln, die von der selektierten Regel abhängen |
grau |
Alle Regeln die nicht direkt mit der selektierten Regel in Zusammenhang stehen |
Regel, die mit der selektierten Regel in keinerlei Zusammenhang stehen |
Wenn bei dieser Abhängigkeitsprüfung festgestellt wird, daß die Suche wieder bei der Ausgangsregel ankommt, dann wird die Suche abgebrochen und mit der Ausführung der zuletzt identifizierten Regel begonnen, um eine Endlosschleife zu verhindern.
Der Regeleditor bietet Ihnen die Möglichkeit eine Prüfung auf zirkulare Abhängigkeiten durchzuführen. Wählen Sie hierzu Tools ® Check Circular Dependencies.

Eine datenabhängige Regelausführung könnte folgendermaßen aussehen:
|
X := 1 |
Vorgabe: Die Fakten X und Y haben Daten, Z ist leer (NULL). | ||
|
Y := 2 | |||
|
Z | |||
|
RULE R1 |
Vor Prüfung der Bedingung dieser Regel sucht der EH&S Expert zunächst nach Regeln, die den Wert von X verändern können. X wird sowohl in der Bedingung als auch auf der rechten Seite einer Zuweisung verwendet. | ||
|
IF X = 1 | |||
|
THEN Y := X | |||
|
END | |||
|
RULE R2 |
Diese Regel verändert X (X steht auf der linken Seite einer Zuweisung), hängt jedoch vom Wert von Z ab. Also wird nach Regeln gesucht, die Z verändern. | ||
|
IF Z > 0 | |||
|
THEN X := 1 | |||
|
END | |||
|
RULE R3 |
Diese Regel setzt den Wert von Z und hängt von keinen weiteren Eingabedaten ab. D.h., die Abhängigkeitsprüfung ist zu Ende. Der EH&S Expert führt R3 aus und danach R2, da keine weiteren Regeln Z verändern können. Zum Schluß wird R1 ausgeführt, da nun der Wert von X feststeht. | ||
|
IF TRUE() | |||
|
THEN Z := 5 | |||
|
END | |||
Sie haben außerdem mehrere Möglichkeiten, den Ablauf der Regelausführung direkt zu beeinflussen (siehe
Ablaufkontrolle der Regelausführung).
Die Reihenfolge der Regeln im Regelwerk ist somit nur sehr bedingt relevant.