RecordKonzept, um mehrfach bewertete Bewertungsarten (d.h. Bewertungsarten mit mehreren Datensätzen) im EH&S Expert abzubilden.
Es kann vorkommen, daß Datensätze einer mehrfach bewerteten Bewertungsart (z.B: Dichte eines Stoffes bei unterschiedlichen Temperaturen gemessen) in einer Regel benötigt werden oder daß der EH&S Expert zu einer Bewertungsart mehrere Datensätze anlegen soll (d.h. die Bewertungsart mehrfach bewerten soll). Hierzu müssen Sie den Fakt, der dem Merkmal der Bewertungsart entspricht, einem Record zuweisen.
Hinweis
Ein mehrfach bewertbares Merkmal können Sie innerhalb eines Datensatzes einer Bewertungsart durch den EH&S Expert mehrfach bewerten lassen, indem Sie im THEN-Teil der Regel dem entsprechenden Fakt Daten mit dem Operator += zuweisen. Der Fakt muß dabei nicht in einem Record enthalten sein.
Die Records befinden sich in der Fakt-Sektion und werden mit RECORD <Recordname> eingeleitet und mit END beendet. Ein Record wird ähnlich einer Zusammensetzung formuliert.
Beispiel
Die Bewertungsart Orale Toxizität
enthält drei Datensätze: einen Wert für den Typ LD50
, einen für LD100
und einen für LD0
. Die Formulierung des Records könnte folgendermaßen aussehen:
RECORD OraTox | ||
Typ, | ||
Genauigkeit, | ||
Wert | ||
END | ||
Hinweis
Wenn Sie ein Regelwerk mit Hilfe des Regeleditors erstellen, dann erzeugt dieser automatisch eine Regeldatei mit der korrekten Syntax.
Die Fakten eines Records werden über <RECORDNAME>.<FAKTNAME> angesprochen. Regeln, die Records enthalten, werden für alle Instanzen des Records ausgeführt.
Records können auch innerhalb von Zusammensetzungen auftreten. Dann werden die Fakten des Records über < ZUSAMMENSETZUNGSNAME>.<RECORDNAME>.<FAKTNAME> angesprochen.
Innerhalb des Regelwerkes können neue Instanzen eines Records angelegt werden. Die Fakten des neuen Records werden mittels < RECORDNAME>.NEW.<FAKTNAME> mit Daten belegt. Das Anlegen neuer Records innerhalb einer Zusammensetzung ist nicht zulässig.
Erst durch das Kommando COMMIT wird die neue Instanz des Records wirklich angelegt und ist für normale Regelzugriffe vorhanden.
Beispiel
Eine neue Instanz für die akute orale Toxizität könnte wie folgt angelegt werden:
OraTox.NEW.TYP := "LD50", | |
OraTox.NEW.WERT := 2000, | |
OraTox.NEW.Genauigkeit := "ca.", | |
COMMIT(OraTox) |
Beispiel
Das folgende Regelwerk berechnet die minimale orale Toxizität für alle vorhandenen Typen in den Stoffen der Zusammensetzung. Die Vorbelegung des Fakts UsedOraTypes
ist wichtig, da die Aktion der Regel CreateInstances
sonst nie ausgeführt wird (siehe Wann wird eine Regel ausgeführt? ).
FACTS | ||||
UsedOraTypes := [], | ||||
RECORD OraTox | ||||
Typ, | ||||
Wert | ||||
END | ||||
COMPOSITION COMP | ||||
RECORD OraTox | ||||
Typ, | ||||
Wert | ||||
END | ||||
END | ||||
RULES | ||||
// Lege EINE Instanz für jeden vorhandenen OraTox-Wert an. In UsedOraTypes wird gespeichert, was schon angelegt worden ist. | ||||
RULE CreateInstances | ||||
IF Not(COMP.OraTox.Typ [<] UsedOraTypes) | ||||
THEN | ||||
UsedOraTypes += COMP.OraTox.Typ, | ||||
OraTox.NEW.Typ := COMP.OraTox.Typ, | ||||
OraTox.NEW.Wert := COMP.OraTox.Wert, | ||||
COMMIT(OraTox) | ||||
END | ||||
RULE SetMinimalValues | ||||
IF OraTox.Typ = COMP.OraTox.Typ, | ||||
OraTox.Wert > COMP.OraTox.Wert | ||||
THEN | ||||
OraTox.Wert := COMP.OraTox.Wert | ||||
END | ||||
END | ||||
Wenn bei diesem Beispiel in fünf Komponenten je drei Typen von OraTox
-Werten gepflegt wurden, dann wird die Regel CreateInstances
für alle 3*5=15 gepflegten OraTox
-Werte aufgerufen und kann dabei dreimal die Aktion ausführen. Danach existieren drei Instanzen des Records OraTox
. Die Regel SetMinimalValues
wird danach für alle 15*3=45 Kombinationen aus COMP.OraTox
- und OraTox
-Records angewendet.