This invention is directed to an application for defining a task list and converting tasks into life events.
Electronic devices, for example computers, may be used to implement different types of applications. In some cases, the electronic device may be used to implement an application for assisting the user in managing time or tasks. For example, the electronic device may include a task managing application.
Using the task managing application, the user may define one or more tasks for the user, or other users, to perform. The application may organize the tasks defined by the user as a task list to which the user may refer to determine which tasks remain to be performed. When the user completes a task, the user may change an indicator, flag, or other field to indicate that the particular task has been completed.
In some embodiments, the electronic device may include an application for listing events performed by the user. For example, the electronic device may include an application for publishing life events, or other descriptions of activities performed by the user. The user may provide the events for publication by the application using any suitable approach. For example, the user may enter descriptions for events using an input mechanism associated with the electronic device. The application may publish events using any suitable approach, including for example publishing the events in an Internet page, to another application implemented on the electronic device, or any other suitable publication destination.
An annotator for defining tasks to be performed by a user is provided. The annotator may include several display screens enabling the user to define a task. For example, the annotator may include a display screen having several fields, for each of which the user may define a value. The combination of values selected by the user may form a sentence or phrase that defines the task. The annotator may provide any suitable field for the user, including for example a person, action, importance, details, priority, and subtask field.
The annotator may be operative to determine the current status of a task defined by the user. For example, the electronic device may identify the elements of a task, and determine whether some or all of the elements have been completed. As another example, the electronic device may receive an indication from the user of the progress of the task. In some embodiments, tasks may be structured or organized (e.g., as tasks and subtasks) such that progress on a subtask is indicated as partial progress on a parent task.
When the annotator determines that a task has been completed, the annotator may convert the task into a life event. To indicate that the task has been performed (e.g., and is a life event), the annotator may change the verb tense of the task definition (e.g., from present or future to past). The annotator may then publish the life event to any suitable destination, including for example a blog, web page, Internet domain (e.g., mac account), word processing application, other electronic device application, or any other destination for publishing life events. The published life events may serve as an achievement list for the user.
The above and other features of the present invention, its nature and various advantages will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, and in which:
Electronic device 102 may include any suitable device for receiving inputs from a user and data. For example, electronic device 102 may include a media player such as an iPod available by Apple Inc., of Cupertino, Calif., a cellular telephone, a personal e-mail or messaging device (e.g., a Blackberry® or a Sidekick®), an iPhone available from Apple Inc., pocket-sized personal computers such as an iPAQ Pocket PC available by Hewlett Packard Inc., of Palo Alto, Calif., personal digital assistants (PDAs), a desktop computer, a laptop computer, and any other electronic device (e.g., a device capable of communicating wirelessly or using a wired connection).
Display 104 may include any suitable screen or projection system for providing a display visible to the user. For example, display 104 may include a screen (e.g., an LCD screen) that is incorporated in electronic device 100. As another example, display 104 may include a movable display or a projecting system for providing a display of content on a surface remote from electronic device 100 (e.g., a video projector). Display 104 may be operative to display content (e.g., information regarding ongoing communications operations, information regarding incoming communications requests, media, or device operation screens) under the direction of control circuitry 110.
Input mechanism 106 may include any suitable mechanism for providing user inputs or instructions to electronic device 100. Input mechanism 106 may take a variety of forms, such as a button, keypad, dial, a click wheel, or a touch screen. The user interface may include a multi-touch screen such as that described in U.S. Pat. No. 6,323,846, which is incorporated by reference herein in its entirety. The user interface may emulate a rotary phone or a multi-button keypad, which may be implemented on a touch screen or the combination of a click wheel or other user input device and a screen. A more detailed discussion of such a rotary phone interface may be found, for example, in U.S. patent application Ser. No. 11/591,752, filed Nov. 1, 2006, entitled “Touch Pad with Symbols based on Mode,” which is incorporated by reference herein in its entirety. In some embodiments, input mechanism 106 may include a mechanism that is remotely coupled to display 104 or communications circuitry 110. For example, input mechanism 106 may include a keyboard, keypad, mouse, remote controller, voice-instruction apparatus, or any other mechanism for providing inputs.
Control circuitry 110 may be operative to control the operations and performance of electronic device 100. Control circuitry 110 may include, for example, a processor, a bus (e.g., for sending instructions to the other components of electronic device 100), memory, storage, or any other suitable component for controlling the operations of electronic device 100. In some embodiments, a processor may drive the display and process inputs received from the user interface or input mechanism. The memory and storage may include, for example, cache, Flash, ROM, and/or RAM. In some embodiments, memory may be specifically dedicated to storing firmware (e.g., for device applications such as an operating system, user interface functions, and processor functions).
Control circuitry 110 may be operative to execute instructions provided by firmware, software, or both implemented in electronic device 100. For example, control circuitry 110 may be operative to execute instructions provided by a communications application (e.g., an email or telephone application, or a remote access application), word processing application, a media playback application (e.g., a music, radio or video playback application), a system utility, a location-detection application, or any other suitable application for controlling operations of the electronic device. As another example, control circuitry 110 may be operative to execute instructions provided by a task list or event annotator, or other application for creating and monitoring events for users to perform.
Using an annotator, a user of the electronic device may define one or more tasks, where each task corresponds to an event to be performed. The defined tasks may require the user to perform one or more actions (viz., the task may not be completed simply by the electronic device automatically performing an operation). The annotator may display a task list that includes the tasks defined by the user (e.g., as a to-do list). As a task is completed, the annotator may convert the task to a life event, and add the life event to an achievement list.
The user may access the annotator using any suitable approach. For example, the user may launch the annotator software, or launch other software that includes the annotator by providing an appropriate instruction using the input mechanism (e.g., select an icon displayed on the display, or type a command for launching the application). The annotator may provide any suitable interface for enabling the user to provide appropriate instructions to the annotator. For example, the annotator may include a display with several options, including options for defining a task, viewing a listed of tasks defined by the user, and viewing a listing of life events.
Each field 202 may be associated with several selectable values for defining a task. For example, person values 220 may be associated with person field 210, importance values 222 may be associated with importance field 212, action values 224 may be associated with action field 214, and second person values 228 may be associated with person field 218. The user may select one or more values from each set of values for each field. In some embodiments, the user may select no values for a particular field. The currently selected one or more values may be displayed in an appropriate text box associated with a field 202. For example, each of text boxes 211, 213, 215, 217 and 219 may be the value associated with each of fields 210, 212, 214, 216 and 218, respectively. If none of the displayed values are appropriate or of interest to the user, the user may directly enter an appropriate value in a text box (e.g., by typing the desired value using a keyboard). The new value may then be added to the list of displayed values placed below the text box.
Once the user has selected appropriate values for each field 202 of interest, and has fully defined the task, the user may select a create task option (e.g., option 320) to create the task. The annotator, in response to receiving the selection of option 320, may extract the values entered by the user in each text box of display 200, and combine the values to form a phrase or sentence describing the task. In some embodiments, the annotator may automatically change the grammar (e.g., verb tenses), or the order of adjectives, nouns or phrases to create a grammatically correct phrase or sentence. The annotator may then include the newly created task in a task listing display.
Display 300 may indicate whether a particular task has been completed using any suitable approach. In some embodiments, display 300 may include boxes 320, each associated with a particular task from listing 310. The annotator may indicate that a task is not yet complete by leaving the associated box blank (e.g., box 322), and may indicate that a task is complete by changing the appearance of the associated box (e.g., darkened box 324). In some embodiments, display 300 may include an indication of the progress of a particular task. For example, a box 320 may be only partially darkened, or may be replaced by a progress bar. As another example, a separate progress bar may be displayed in addition to box 320, or may be incorporated in each listing 310.
The user may select which tasks to display in listing 310 using any suitable approach. In some embodiments, the user may select an option from tasks options 330 to select the subset of tasks to display. Tasks options 330 may include options for any suitable types of tasks or task classification, including for example All Tasks option 332, Complete Tasks option 334, and Pending Tasks option 336. In some embodiments, options for other task classifications may be displayed, including for example classification by field (e.g., field 202,
The annotator may determine the progress of a particular task using any suitable approach. In some embodiments, users may directly indicate the status or progress of a particular task. For example, a user may select a particular task, and provide information indicating the current status of the task (e.g., update a progress bar, or change the value of a box 320). As another example, the user may modify a comments field associated with a particular task (not shown). The comments field may appear in response to a user selection of a selectable icon in the task listing (e.g., as a pop-up window, or in a new display). If several users use the same annotator, the annotator may identify the particular user who provided the status update for the task (assign a particular color or font type to comments, or display colored or shading-coded progress in the progress bar).
In some embodiments, the annotator may automatically determine and update the current status of a task. For example, the annotator may update the tasks status based on the current time (e.g., the time lapsed since the task was created, or the time remaining before the task deadline runs). As another example, the annotator may monitor documents, files, or other work product created by one or more users that relate to the particular task (e.g., monitor files tagged with a task identifier, or identify files of relevance based on their name, folders in which they are stored, or other attributes of the files). As still another example, the annotator may monitor user interactions with the electronic device (e.g., monitor a flowchart application that is revised), or with other electronic devices in communication with the annotator (e.g., monitor telephone records for communications with a party identified in the task).
In some embodiments, the annotator may organize or structure tasks defined by a user. For example, a user may define one or more subtasks associated with one or more tasks. As subtasks are completed, the progress of a parent task may be advanced (e.g., and updated in a displayed progress bar). The annotator may indicate the structure of each task using any suitable approach. In some embodiments, listing 310 may include a tree structure, or any other suitable structure to indicate that a particular task is a subtask of another (e.g., the task identified by listing 314 is a subtask of the task identified by listing 313). The structure may be collapsible, displayed over several displays or in several windows, or provided using any other suitable approach for judicially using the display. The user may define a task as a subtask of another using any suitable approach, including for example using a field 202 (
When a task is completed, the annotator may convert the task into a life event, and add the life event to a life event listing.
The user may select which life events to display in listing 410 using any suitable approach. In some embodiments, the user may select an option from life event options 430 to select a subset of life events to display. Life event options 430 may include options for any suitable types of life event or life event classification, including for example All Life Events option 332, My Life Events option 334, and Eric's Life Events option 336. In some embodiments, options for other task classifications may be displayed, including for example classification by field (e.g., field 202,
The user may publish life events using any suitable approach. In some embodiments, the user may publish a life event listing that includes one or more life events (e.g., some or all of the life events of life event listing 410) to a blog, web page, Internet domain (e.g., .mac account), word processing application, other electronic device application, or any other destination for publishing life events. For example, the user may identify one or more life events (e.g., using a highlight region, or check boxes, not shown) and select a publish option (e.g., Publish option 420).
At step 506, the electronic device may determine the current status of a task. For example, the annotator may select a particular task, identify the components or actions defining the task, and determine the amount of the task that has been completed. The annotator may determine the current progress of the task using any suitable approach, including for example receiving an indication from the user of the progress of the task, monitoring user interactions with the electronic device or other devices coupled with the electronic device to identify interactions related to the task, or any other suitable approach. The annotator may update the progress of the task using any suitable approach. In some embodiments, the annotator may display a visual indication of the progress of the task (e.g., a progress bar in a task listing).
At step 508, the electronic device may determine whether the task was completed. For example, the electronic device may compare the status determined at step 506 with the complete task requirements. If the electronic device determines that the task was not completed, process 500 may move to step 510. At step 510, the electronic device may further update the progress of the task, for example in a progress bar in a task listing. Process 500 may then return to step 506 and determine the current status of the task.
If, at step 508, the electronic device instead determines that the task has been completed, process 500 may move to step 512. At step 512, the electronic device may add the complete task to a life event listing. For example, the electronic device may convert the task to a life event by changing relevant portions of the task definition (e.g., changing the tense of one or more verbs). The electronic device may in addition publish the life event to any suitable destination (e.g., a blog). Process 500 may then end at step 514.
The above described embodiments of the present invention are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.