For each of the generalization errors identified so far in LAPDOG, I've included a strategy that would help the user to identify the error. The idea is, if LAPDOG has made this error, what explanation needs to be provided by ICEE to enable the user to identify that error, and begin the process of fixing it? There are no assumptions here about whether the task has been executed, ie, I do not assume that the user has already observed the incorrect behavior. I think of these explanations as likely to be "second-level" answers to the question "How did you learn to do X?" That is, the first-level answer is likely to be something about the learning (when, where, why the new task was learned, perhaps the source data that was used). These explanations would likely be provided as follow-ups to that initial explanation (perhaps answers to a question like "What exactly did you learn for this task?") unless we are able to heuristically identify when one of these errors is more likely to have occurred. They can also be answers to the question "How WILL you perform task X?" but we're not really set up yet to answer forward-looking questions explicitly. 1. Error: parameter left as a constant when it should have been variablized Strategy: provide information on parameterization Explanation: For this task, I have learned to always use these values: . 2. Error: parameter variablized when it should have been left a constant Strategy: provide information on parameterization Explanation: For this task, I have learned to ask for user input for these values: . Note: we may want to combine (1) and (2) and always provide both variables and constants at the same time. This approach additionally has the benefit of re-wording (1) to something like "I will not ask for user input for these values: " which is clearer, but only in the context of also saying (2). 3. Error: relational path between objects is incorrect Example: LAPDOG infers that you're sending email to X because X is your manager (which he is) but it's really because X is the leader of a particular project Strategy: expose inferred relational path Explanation: For this task, I learned that is always found with this relationship: . Note: we need to review the representation to see if we are able to get the relation information out of LAPDOG. 4. Error: missing conditions--i.e., a step (or even a procedure) only applies in a certain context but LAPDOG can't learn this from one example Strategy: expose context Explanation: I have learned to only do this task (or this step) under the following conditions: . Explanation: I have learned to do this task (or this step) under all conditions or contexts. Note: we can easily support this strategy, but providing the user with the right question to ask to get this response may be difficult with our current interface. 5. Error: subset selection criteria is incorrect Example: LAPDOG infers that you meant to select the first 3 items in a list but you really were selecting all items with some property Strategy: expose selection criteria Explanation: For this task, I have learned to select items using this criteria: Note: we need to review the representation to see if we are able to get the selection criteria out of LAPDOG. 6. Error: overaggressive unification Example: LAPDOG infers you want the meeting title to be the same as the email subject header but they were identical only by coincidence Strategy: identify multiple uses of same constant or variable Explanation: For this task, I have learned to use in the following ways: Note: we need to review the SPARK-L generated by LAPDOG to see if we are able to identify the usage of a variable in a way that we can present to the user. I would guess that this will be difficult, particularly early on. 7. Error: procedure contains loop over a body B of statements when it should contain a sequence of Bs. Strategy: expose looping behavior Explanation: For this task, I repeat these same steps multiple times: B Explanation: For this task, while is true, I repeat these same steps multiple times: B Note: If B is long, or if it has a complex structure (eg, conditionals, or multiple binding commands intermixed with actions) this explanation will be unwieldy (not a concern with LAPDOG right now, though). 8. Error: wrong container variable is chosen to iterate over in a SPARK forin statement. Strategy: expose container variable Explanation: For this task, I learned to perform actions for each item in . Note: Depending on what the container is, and what steps there are in the forin statement, this may be the wrong level of detail. For this error in particular, I think that some examples would help us.