Constraint Template Translations

The following table shows examples of the constraint templates translated into Rule Assembly Language.

Template RAL Equivalent Explanation

Constrain

con(>(Item A),1))

Constrain (quantity of Item A> 1) to be true.

Constrain Conditionally

if(>(Item A), 1), >= (Item B), 2), excl(Item C, Item D))

When (quantity of Item A> 1)(quantity of Item B >= 2), otherwise Selection of Item C excludes selection of Item D.

Constrain Product Quantity

==(Item A, 2)

The quantity of Item A = 2.

Consume

inc(*(Item A), -(1)), Resource B)

Each Item A consumes 1 from Resource B.

Exclude

excl(Item A, Item B)

Selection of Item A excludes selection of Item B.

Exclude List

excl(Item A, Item B, Item C))

Item A excludes (selection of Item B, selection of Item C).

Message

msg(>(Item A, 1))

When (Item A > 1), display this constraint's description.

Preference

prefer(Item A, 1)

When possible, constrain Item A is selected to be true with a priority of 1.

Provide

inc(*(Item A), 1), Resource B)

Each Item A provides 1 to Resource B.

Recommends

chk(req(Item A, Item B), "Item B is recommended")

Selection of Item A recommends selection of at least one Item B by displaying "Item B is recommended".

Requires

req(Item A, Item B)

Item A requires Item B.

Requires (Mutual)

eqv(Item A, Item B)

Item A requires Item B AND Item B requires Item A.

Constrain Attribute Value

==(@.[Class A] ([Item B]).[Day], "Monday")

The attribute Class A "Item B" Attribute C = Monday.