Fact

Definition

A variable in the EH&S Expert.

Use

Facts are containers for data in the sets of rules of the EH&S Expert and can be used in the following ways:

  • You can tag facts as input facts or output facts (keywords IN or OUT). They are either supplied with data before the set of rules is run, or they are read after the rules are applied.

  • You can also create facts without special tags and use them for storing interim results.

  • You can fill facts directly with default data.

Structure

Facts can always be found at the beginning of the set of rules, in a section that is headed with the keyword FACTS. The individual facts are separated by commas.

Example Example

FACTS

  • Stoffname(IN),

  • Flammpunkt(IN),

  • RSatz(OUT),

  • HatPB(OUT) := "Y",

  • ...

End of the example.

Note Note

If you create a set of rules using the rule editor, the editor generates a rule file with the correct syntax automatically.

End of the note.

In the rules of the EH&S Expert, facts are used without any type specifications (text, integers, for example). All facts can adopt all types of data. If required, the data is converted automatically.

The following data types are distinguished internally and in assignments:

  • Text for alphanumeric values

    Texts can be entered between two quotation marks (“hello,” for example).

  • Number for numbers

    Numbers are written directly.

  • List for sets made up of several alphanumeric values or numbers

    Sets are written as one element between two square brackets. Characteristics that are assigned multiple values are represented as sets.

  • Range for numerical value ranges

    Ranges are written in curly brackets. The lower and upper limits are included, provided they are not excluded explicitly by operators (<, >). The expression to stands between the lower and upper limit (for example, {>2 to 3}).

    The following functions determine the range limits:

    • LO({>2 to 3}) results in 2

    • UP({>2 to 3}) results in 3

    The following functions determine the operators of the range limits:

    • OPLO({>2 to 3}) results in “>”

    • OPUP({>2 to 3}) results in “<=” (Default)

    The following function determines whether a value is within the range limits:

    • 2.5IN({>2 to 3}) results in TRUE

Example Example

The following assignments of data types to facts are therefore possible:

  • X := 1

  • Y := 134.4

  • T := “Hello”

  • M := [“A”,“B”,“C”]

  • R := {>1 to 7}

End of the example.

Conversion between the data types is explained in the following tables using examples.

Object to be converted

Converts into a number

Example:

5

Number

Range

{5 to 5}

Text

“5”

List

[5]

Object to be converted

Converts into a range

Example:

{1 to 3}

{3 to 3}

{>=1 to <=3}

Number

Error

3

Error

Range

Text

“>=1 - <=3”

“>=3 - <= 3”

“>=1 - <=3”

List

[{1 to 3}]

[{3 to 3}]

[{>=1 to <=3}]

Object to be converted

Text

Example:

“Hello”

“1 - 3”

“1”

Number

Error

Error

1

Range

Error

{1 to 3}

{1 to 1}

Text

List

[“Hello”]

[“1 - 3”]

[“1”]

Object to be converted

List

Example:

[“Hello”]

[1]

[{1 to 3}]

[1,“A”, 5]

Number

Error

1

Error

Error

Range

Error

{1 to 1}

{1 to 3}

Error

Text

“Hello”

“1”

“>=1 - <=3”

Error

List

Integration

When defining the facts, an assignment to the corresponding elements in EH&S (characteristics, identifiers, and so on) is not yet made. These assignments are made centrally in the mapping tables. In this way, rules can be written without the system being aware of the exact assignment to the elements in EH&S.