Table 0: define Customer Profile If: | 0| 1| 2| 3| 4| combined_balance < 500 | Y| N| N| N| N| combined_balance < 2000 | -| Y| N| N| N| combined_balance < 5000 | -| -| Y| N| N| combined_balance < 15000 | -| -| -| Y| N| Then: customer_profile is undefined | X| | | | | customer_profile is bronze/silver | | X| X| | | customer_profile is gold | | | | X| | customer_profile is platinum | | | | | X| # ....... Attribute: combined_balance Askable_using: "What is the combined_balance of the customer?" Table 1: determine offer bronze/silver If: | 0| 1| 2| 3| 4| 5| 6| 7| 8| customer_profile is bronze/silver | Y| Y| Y| Y| Y| Y| Y| Y| N| 'includes product 1' | Y| Y| Y| Y| Y| Y| Y| N| -| 'includes product 2' | Y| Y| Y| Y| N| N| N| -| -| 'includes product 3' | Y| Y| N| N| Y| Y| N| -| -| 'includes products 6, 7 or 8' | Y| N| Y| N| Y| N| -| -| -| Then: Offer is Row1 | | | | | X| | X| | | Offer is Row1+2 | | | | | | X| | | | Offer is Row2+3 | | X| | | | | | | | Offer is Row3 | | | | X| | | | | | Offer is None | X| | X| | | | | X| | # ....... Proposition: 'includes product 1' Askable_using: "Includes product 1?" Proposition: 'includes product 2' Askable_using: "Includes product 2?" Proposition: 'includes product 3' Askable_using: "Includes product 3?" Table 2: determine offer gold If: | 0| 1| 2| 3| customer_profile is gold | Y| Y| Y| N| 'includes product 1' | Y| Y| N| -| 'includes products 5, 6 or 7' | Y| N| -| -| Then: Offer is None | X| | X| | Offer is Row4 | | X| | | 'set comment gold package' | | X| | | # ....... Table 3: determine offer platinum If: | 0| 1| 2| 3| 4| customer_profile is platinum | Y| Y| Y| Y| N| 'includes product 1' | Y| Y| Y| N| -| 'includes product 2' | Y| Y| N| -| -| 'includes products 5, 6 or 7' | Y| N| -| -| -| Then: Offer is None | X| | X| X| | Offer is Row5 | | X| | | | 'set comment platinum package' | | X| | | | # ....... Table 4: determine offer undefined If: | 0| 1| customer_profile is undefined | Y| N| Then: Offer is None | X| | 'set comment undefined customer profile' | X| | # ....... Table 5: includes products 6, 7 or 8 If: | 0| 1| 2| 3| 'includes product 6' | Y| N| N| N| 'includes product 7' | -| Y| N| N| 'includes product 8' | -| -| Y| N| Then: 'includes products 6, 7 or 8' | X| X| X| | # ....... Table 6: includes products 5, 6 or 7 If: | 0| 1| 2| 3| 'includes product 5' | Y| N| N| N| 'includes product 6' | -| Y| N| N| 'includes product 7' | -| -| Y| N| Then: 'includes products 5, 6 or 7' | X| X| X| | # ....... Proposition: 'includes product 5' Askable_using: "Includes product 5?" Proposition: 'includes product 6' Askable_using: "Includes product 6?" Proposition: 'includes product 7' Askable_using: "Includes product 7?" Proposition: 'includes product 8' Askable_using: "Includes product 8?" GoalAttribute: Offer Case: None Print: "Nothing to offer" Case: Row1 Print: "Offered products: Product 2,Product 4,Product 5 (Row 1)" Case: Row1+2 Print: "Offered products: Product 2,Product 4,Product 5,Product 6,Product 7,Product 8 (Row 1+2)" Case: Row2+3 Print: "Offered products: Product 4,Product 5,Product 6,Product 7,Product 8,Product 9 (Row 2+3)" Case: Row3 Print: "Offered products: Product 4,Product 5,Product 7,Product 8,Product 9 (Row 3)" Case: Row4 Print: "Offered products: Product 4,Product 5,Product 7,Product 8,Product 9,Product 10 (Row 4)" Case: Row5 Print: "Offered products: Product 5(no charge),Product 7,Product 8(no annual fee),Product 9,Product 10 (Row 5)" GoalProposition: 'set comment gold package' Print: "Gold Package" GoalProposition: 'set comment platinum package' Print: "Platinum Package" GoalProposition: 'set comment undefined customer profile' Print: "Undefined customer profile: combined balance < 500"