With current computational task management solutions, tracking which task is best to do in a specific context may be a challenge for many users, oftentimes requiring the user to go over long lists and manually reordering or segmenting tasks based on place/topic. This labor, associated with managing the task list, often pushes users to abandon using computational task management solutions and resort to traditional short-term methods such as using pen and paper to store time-critical tasks.
Another limitation with current computational task management solutions is information overload. For example, currently, a user's task items that have not been completed or that are postposed may be automatically moved to the user's task list for the next day. Accordingly, the user's task list may continue to grow in length, which may be a source of stress to the user. Current computational task management solutions do not provide an ability for the user to limit a task list to items that may be important to the user at a specific time. Accordingly, the user may be required to remember where a particular item is stored in a task list or may have to use a search functionality, requiring the user to remember a search term to use.
It is with respect to these and other considerations that the present invention has been made.
Embodiments of the present invention solve the above and other problems by providing a task application for automatic task management based on content and context awareness. As task items are inputted into the task application, the task items may be parsed for context data. Additionally, context data may be input manually by a user. Context data may include data that may be relevant to the user, for example, time data, location data, identity data (e.g., person, group, team, etc.), keyword data (e.g., object, subject, etc.), activity data, etc. Parsed and received context data may be associated with the task item so that when a relevant context is detected via various context detection methods, task items with correlating context data may be prioritized. The user may be alerted via a notification of an upcoming or present opportunity to achieve or complete a task item. Accordingly, a user may be provided with a list of task items that may be relevant to a specific context and that may help to alleviate task list information overload.
The details of one or more embodiments are set forth in the accompanying drawings and description below. Other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that the following detailed description is explanatory only and is not restrictive of the invention as claimed.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present invention. In the drawings:
As briefly described above, embodiments of the present invention are directed to providing automatic task management based on content and context awareness.
Embodiments of the present invention are directed to a task application that provides automatic task management based on content, context data, and context awareness. Context data may be associated with task items, which may be utilized to manage task items and to determine relevant task items to present to a user. Task items may be managed and dynamically sorted into one of a plurality of contextual task lists. Contextual task lists may include a “now” task list, a “later” task list, a “someday” task list, and a “done” task list. Task items in each contextual task list may by automatically sorted by immediacy that a user may accomplish a task item according to context and priority.
Context may include, for example, time, location, activity, incoming and/or outgoing communications, calendar events, traffic, people, etc. Context may be determined via various data capture methods. For example, location may be determined via a global positioning system (GPS) device, a radio frequency identification (RFID) device, via multilateration of radio signals between radio towers of a network and a mobile computing device, a wireless network device detection application, a barometric pressure-sensing device, etc. Incoming and outgoing communications may include emails, phone calls, social network messages, etc. Sensing people may be accomplished via voice detection using a mobile computing device's microphone, facial recognition using a mobile computing device's camera, reviewing shared calendar events, accessing other users' web content via public APIs, reviewing social media and other sources, etc. A user's actions may be determined via user interaction with a mobile computing device (e.g., opening a document, using an application, making a phone call, etc.), via an accelerometer, via a GPS device, etc. As should be appreciated, context may be determined via other methods and tools.
The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawing and the following description to refer to the same or similar elements. While embodiments of the invention may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the invention, but instead, the proper scope of the invention is defined by the appended claims.
Referring now to the drawings, in which like numerals represent like elements, various embodiments will be described. Referring now to
A row of selectable task list pane functions 145,150,155,160 is illustrated at the bottom edge of the display screen 105 for providing access to the contextual task lists. As should be appreciated, the configuration and location of UI components illustrated in
According to embodiments, the “now” contextual task list 140 may include one or more task items 125 that are determined to be relevant to an immediate context. For example, with reference still to
The task item “Buy milk” (task item 125C) may include context data associated with it, which may be utilized to determine relevant contexts. Context data may be associated with a task item 125 automatically and/or manually. As will be discussed in more detail with reference to
With reference still to
In
With reference still to
According to embodiments, a task item 125 may include a sub-task list 165. For example, the “Pack for beach” task item 125D may include a sub-task list 165 of items the user need to pack for the beach trip. Task items 125 and sub-task lists 165 may be selected for editing, deletion, or for display in a separate view.
As illustrated in
With reference now to
With reference now to
According to embodiments, as a user enters a new task item 125, the task application 950 may automatically deduce and tag relevant context data from the task item 125. Each task item 125 may also have additional context data manually associated with it. According to one embodiment, upon selection of a task item 125, a task item edit UI 640 may be displayed as illustrated in
The task item edit UI 640 may also include a “when” field 610 for inputting or selecting time context data, for example, a date and/or time to complete the task 125. As illustrated, the “when” field 610 may include a selectable functionality 620 for accessing a calendaring UI.
Additionally, the task item edit UI 640 may also include a “where” field 620 for inputting or selecting location context data, wherein the location context data may be an address, business type, landmark, business name, etc. associated with the task 125. For example, if the user intends to write the recommendation letter at his office, the user may input or select his office address, company name, contact information, etc. to associate the location of his office with the task 125. As illustrated, a selectable functionality 625 may be included, which when selected, may provide access to a mapping UI which may be utilized to input or select location context data.
The task item edit UI 640 may also include a “who” field 630 for inputting or selecting identity context data. Identity context data may include associating a task item 125 with one or more people or groups for whom a task item is being done and/or associating a task item 125 with one or more people or groups with whom a task item is being done. One or more people or groups associated with the task item 125 may be inputted or selected. A selectable functionality 635 may be included, which when selected, may provide access to the user's contacts information. The user may be able to select one or more contacts to associate with the task item 125. Additionally, a delete task functionality control 645 may be provided for allowing the user to delete a task item 125.
According to embodiments, as a user progresses through his/her day, various tools, applications, mechanisms, and functionalities associated with the user's mobile computing device 100 may detect the ever-changing context of the user's environment (e.g., time, location, people, activity, etc.). As the context changes, task items 125 may be automatically sorted into a contextual task list 140,440,540 and alerts to task items 125 associated with the present or upcoming context may be provided to the user to alert the user of an upcoming opportunity to achieve the task items 125. For example and as illustrated in
Although the examples illustrated in the figures show touchscreen UIs on a mobile computing device 100, embodiments may be utilized on a vast array of devices including, but not limited to, desktop computer systems, wired and wireless computing systems, mobile computing systems (e.g., mobile telephones, netbooks, tablet or slate type computers, notebook computers, and laptop computers), hand-held devices, IP telephones, gaming devices, cameras, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, and mainframe computers. As should be appreciated, the configuration and location of UI components illustrated in
With reference now to
The method 800 proceeds to OPERATION 815, where relevant context data may be determined. A task item 125 may be parsed for relevant context data. For example, a task item 125 such as “Clean house” may be parsed, wherein the term “house” may be recognized and associated with location context data for the user's home. At OPERATION 820, context data may be received. For example, the user may input context data such as, but not limited to, time context data, location context data, identity context data, keyword context data, etc. The method 800 proceeds to OPERATION 825, where context data that has been determined and received may be associated with the task item 125.
At OPERATION 830, the task item 125 may be stored in a contextual task list. According to embodiments, if the task item 125 has a priority level 120 associated with it or if the task item 125 is relevant to an immediate context, the task item 125 may be stored in a “now” contextual task list 140. If the task item 125 is upcoming and has context data associated with it, the task item 125 may be stored in a “later” contextual task list 440. If the task item 125 does not have contact data associated with it, the task item 125 may be stored in a “someday” contextual task list 540.
At OPERATION 835, context may be detected. According to embodiments and as described above, context may be detected via various tools, applications, mechanisms, and functionalities associated with the user's mobile computing device 100. Contexts that maybe detected includes, but is not limited to, date, time, location, people, incoming and outgoing communications, a user's actions, etc. One example of detecting context (OPERATION 835) may include determining a user is travelling in an airplane via detection of barometric pressure. Another example of detecting context may include determining that a user is with a certain person (e.g., a person associated with a task item 125) via detection of the person's voice using a microphone on the user's mobile computing device 100, via social networking communications, via accessing a calendaring application (e.g., the user's and/or the person's), via detection of the person via facial recognition using a camera on the user's mobile computing device 100, etc. Other examples may include detecting a user's location (e.g., proximity to a specific location associated with a task item 125, proximity to a location determined to be associated with a task item 125 according to statistical analysis of the task item, location relative to other people, etc.) via GPS, RFID input, via accessing a calendaring application, etc.; detecting traffic congestion (e.g., along a route to a location associated with a task item 125); detecting a user's activity (e.g., running, driving, etc.) via accelerometer or GPS information; etc.
The method 800 may proceed to DECISION OPERATION 840, where a determination may be made to determine whether the detected context correlates with context data associated with a task item 125 or if the detected context provides an opportunity for the user to achieve a task item 125. For example, determine whether the detected context correlates with context data associated with a task item 125 or if the detected context provides an opportunity for the user to achieve a task item 125 (DECISION OPERATION 840) may include detecting that the user is driving and determining that the time may not be opportune for the user to complete a task item 125 or to be notified 710 of a task item 125. As another example, a user may input a task item 125 such as “learn how to build a deck.” Web content for a friend of the user available via social media, a calendaring application, or other relevant sources may be accessed (e.g., via public APIs) (OPERATION 815) and may be parsed for information relating to keywords from the user's task item 125. For example, the user may have a friend, Bob, who has just completed building a deck as determined via his web content. This information may be discovered, stored as context data, and associated with the user's task item 125 (OPERATION 825). Accordingly, upon detection of the user and Bob being in the same location (OPERATION 835), a determination may be made that the present context presents an opportunity for the user to achieve or complete a task item 125 (DECISION OPERATION 840).
If a determination is made at DECISION OPERATION 840 that the present context does not present an opportunity for the user to achieve/complete a task item 125, the method 800 may return to OPERATION 835. If a determination is made that the present context does present an opportunity for the user to achieve/complete a task item 125, the method 800 may proceed to OPERATION 845, where the task item 125 may be prioritized, that is, the task item 125 may be moved from “later” contextual task list 440 to the “now” contextual task list 140. Additionally, a notification 710 may be provided to alert the user of the opportunity to achieve/complete the task item 125. The user may choose to act on the task item 125, or alternatively, may choose to postpone the task item 125 or ignore the notification. If the user ignores or postpones the task item 125, a notification 710 may be provided the next time the opportunity is relevant. The method 800 ends at OPERATION 895.
The embodiments and functionalities described herein may operate via a multitude of computing systems including, without limitation, desktop computer systems, wired and wireless computing systems, mobile computing systems (e.g., mobile telephones, netbooks, tablet or slate type computers, notebook computers, and laptop computers), hand-held devices, IP phones, gaming devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, and mainframe computers. In addition, the embodiments and functionalities described herein may operate over distributed systems (e.g., cloud-based computing systems), where application functionality, memory, data storage and retrieval and various processing functions may be operated remotely from each other over a distributed computing network, such as the Internet or an intranet. User interfaces and information of various types may be displayed via on-board computing device displays or via remote display units associated with one or more computing devices. For example user interfaces and information of various types may be displayed and interacted with on a wall surface onto which user interfaces and information of various types are projected.
Interaction with the multitude of computing systems with which embodiments of the invention may be practiced include, keystroke entry, touch screen entry, voice or other audio entry, gesture entry where an associated computing device is equipped with detection (e.g., camera) functionality for capturing and interpreting user gestures for controlling the functionality of the computing device, and the like. As described above, gesture entry may also include an input made with a mechanical input device (e.g., with a mouse, touchscreen, stylus, etc.), the input originating from a bodily motion that can be received, recognized, and translated into a selection and/or movement of an element or object on a graphical user interface that mimics the bodily motion.
As stated above, a number of program modules and data files may be stored in the system memory 904. While executing on the processing unit 902, the program modules 906, such as the task application 950, may perform processes including, for example, one or more of the stages of method 800. The aforementioned process is an example, and the processing unit 902 may perform other processes. Other program modules that may be used in accordance with embodiments of the present invention may include electronic mail and contacts applications, word processing applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.
Furthermore, embodiments of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, embodiments of the invention may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
The computing device 900 may also have one or more input device(s) 912 such as a keyboard, a mouse, a pen, a sound input device, a touch input device, a microphone, a gesture recognition device, etc. The output device(s) 914 such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device 900 may include one or more communication connections 916 allowing communications with other computing devices 918. Examples of suitable communication connections 916 include, but are not limited to, RF transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, or serial ports, and other connections appropriate for use with the applicable computer readable media.
Embodiments of the invention, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
The term computer readable media as used herein may include computer storage media and communication media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. The system memory 904, the removable storage device 909, and the non-removable storage device 910 are all computer storage media examples (i.e., memory storage.) Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by the computing device 900. Any such computer storage media may be part of the computing device 900.
Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
One or more application programs 1066 may be loaded into the memory 1062 and run on or in association with the operating system 1064. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system 1002 also includes a non-volatile storage area 1068 within the memory 1062. The non-volatile storage area 1068 may be used to store persistent information that should not be lost if the system 1002 is powered down. The application programs 1066 may use and store information in the non-volatile storage area 1068, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system 1002 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 1068 synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory 1062 and run on the mobile computing device 100, including the task application 950 described herein.
The system 1002 has a power supply 1070, which may be implemented as one or more batteries. The power supply 1070 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries. The system 1002 may also include a radio 1072 that performs the function of transmitting and receiving radio frequency communications. The radio 1072 facilitates wireless connectivity between the system 1002 and the “outside world”, via a communications carrier or service provider. Transmissions to and from the radio 1072 are conducted under control of the operating system 1064. In other words, communications received by the radio 1072 may be disseminated to the application programs 1066 via the operating system 1064, and vice versa.
The radio 1072 allows the system 1002 to communicate with other computing devices, such as over a network. The radio 1072 is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
This embodiment of the system 1002 provides notifications using the visual indicator 1020 that can be used to provide visual notifications and/or an audio interface 1074 producing audible notifications via the audio transducer 1025. In the illustrated embodiment, the visual indicator 1020 is a light emitting diode (LED) and the audio transducer 1025 is a speaker. These devices may be directly coupled to the power supply 1070 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 1060 and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 1074 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 1025, the audio interface 1074 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation and for voice recognition. In accordance with embodiments of the present invention, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system 1002 may further include a video interface 1076 that enables an operation of an on-board camera 1030 to record still images, video stream, facial recognition, and the like.
The system 1002 may comprise a variety of other types of sensors operable to detect context. For example, the system may comprise an accelerometer for detecting acceleration, and can be used to sense orientation, vibration, and/or shock. The system 1002 may contain a global positioning system (GPS) system (e.g., GPS send/receive functionality), which when coupled with a navigation application, can pinpoint a device's 1000 location, give directions to a provided destination, and may provide information about nearby businesses. A barometric pressure-sensing device may be included for sensing barometric pressure.
A mobile computing device 1000 implementing the system 1002 may have additional features or functionality. For example, the mobile computing device 100 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Data/information generated or captured by the mobile computing device 100 and stored via the system 1002 may be stored locally on the mobile computing device 100, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio 1072 or via a wired connection between the mobile computing device 100 and a separate computing device associated with the mobile computing device 100, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device 100 via the radio 1072 or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.
The description and illustration of one or more embodiments provided in this application are not intended to limit or restrict the scope of the invention as claimed in any way. The embodiments, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode of claimed invention. The claimed invention should not be construed as being limited to any embodiment, example, or detail provided in this application. Regardless of whether shown and described in combination or separately, the various features (both structural and methodological) are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate embodiments falling within the spirit of the broader aspects of the claimed invention and the general inventive concept embodied in this application that do not depart from the broader scope.