Suppose that our Knowledge Base contains primary attributes milk, egg, peanut, birch, timothy, dog, cat and horse, which are sent from the Online Information System. We
might organise these allergens into Group Attributes as follows:

food = {egg, milk, peanut}

pollen = {birch, timothy}

animal = {cat, dog, horse}.

We might now define two calculated values that grade the allergen levels:

VeryHighValues = {food, pollen, animal} in range [100, 1000]

HighValues = {food, pollen, animal} in range [50, 100)

We could now use these to gradings of allergens to define the groups:

VeryHighGroups = VeryHighValues as groups from { food, pollen, animal}

HighGroups = HighValues as groups from { food, pollen, animal} not in VeryHighGroups

Here, VeryHighGroups uses the previously-defined Calculated Values VeryHighValues, and HighGroups refers to both HighValues and HighGroups. We can further define

NumberOfVeryHighGroups = number of VeryHighGroups

NumberOfHighGroups = number of HighGroups

and even

TotalNumberOfAvailableGroups = number of HighGroups + number of VeryHighGroups

RippleDown maintains the relationship between these Calclulated Values and prevents editing operations that would introduce dependency problems.

See also: Calculated Value