Patent ID: 8694355

Claim:
A method for assisting a user in an execution of a task, where the task comprises one or more workflows required to accomplish a goal defined by the user, the method comprising: identifying, using a workflow tracker, a current workflow executing on a machine used by the user, where the current workflow is one of the one or more workflows and wherein the identifying is performed automatically by the machine in an absence of a manual identification of the current workflow by matching data related to the current workflow to a stored task model, wherein the identifying comprises: receiving, from one or more instrumented applications executing on the machine used by the user, the data related to the current workflow; and identifying the stored task model in a workflow library as one of a plurality of task models that most closely matches the current workflow, based on the data, wherein the stored task model encodes a set of workflows for accomplishing a corresponding task; tracking, using the workflow tracker, a progress of the current workflow in accordance with the stored task model, wherein the stored task model comprises a variablized version of a previous workflow that is customized during the execution for the current workflow; generating a suggestion based on the progress of the current workflow and on the stored task model, where the suggestion assists the user in progressing toward a completion of the task; manipulating an application on the machine used by the user to carry out the suggestion; and learning the stored task model from a user demonstration, wherein the learning comprises: recording an action sequence that embodies a dataflow, in accordance with the user demonstration, wherein the action sequence comprises one or more observed actions executed on the machine used by the user; and inserting at least one inferred action into the dataflow, wherein the at least one inferred action is inserted in a gap between a first one of the one or more observed actions and a second one of the one or more observed actions, and wherein the at least one inferred action is not one of the one or more observed actions, wherein at least one of: the workflow tracking, the generating, or the manipulating is performed using a processor.