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