The following is an example of the kind of processing found in MAILTALK. First, the user determines that she wants to test out a mail management rule before installing it. She creates a new ``hypothetical world,'' and proceeds to create a rule by selecting the Archive action from a menu. This results in a template's being presented, which she fills out as shown in Figure 3.
Figure: Creating a mail rule
The user enters an English expression as the invocation condition, points at the icon for a file (AIC-Mail), and deposits it into the destination field. This rule definition is parsed into a Prolog representation, augmented with temporal information and constraints.
The user then proceeds to digest an old mail file, which simulates the sending of the old messages, updating the simulated mail database. The animated simulation indicates that the rule has been fired, but just to be certain that the appropriate messages were put into the desired file, the user asks ``When did I read a message from someone in the AIC?'', followed by ``Where are those messages now?'' When satisfied, she transfers this rule to the real world, and requests that incoming mail be monitored.
It should be noted that the reading of a message creates an event that triggers a rule. In general, that verb (i.e., `read') could be one that results from an agent's action (e.g., forwarding), and thus a cascade of rule activations would ensue. It is to ensure that users understand such complexities that we offer the simulation facility.