The present invention relates to providing user interfaces for user control of devices, and in particular to providing generic and flexible access of available tasks through a user interface.
With the proliferation of networks such as home networks, there has been a need to provide a system and methodology that facilitates exploring and executing tasks possible in a home network including multiple devices.
One conventional approach provides a system that discovers devices and thereby the services available in an ad-hoc environment, identifies the services that could be aggregated and finally suggests the possible service combinations to the user. While suggesting the aggregated service combinations to the user, the system scores the services based on any user preferences set and execution history for the user and displays the service with the highest score to the user. However, such an approach does not allow the user to incrementally compose a task request and rather just suggests a list of service combinations possible to the user. This results in a non-flexible design for user interface applications.
Another conventional approach provides a system that discovers services/devices in an office scenario and composes tasks using these services. It further provides a means for executing these tasks. It automatically composes tasks that involve two services and provides a manual way of composing tasks with more than two services. However, a disadvantage of such a system is that it does not take into consideration security policies and other user context such as location of user and the device used to customize the services available in the home. This could result in the user interface application displaying services that are not executable by the user.
The Windows and Apple Mac operating systems support user interface menus that suggest “tasks” when the user right-clicks on files and directories on a PC/Mac; they also have wizards which guide the user to accomplishing tasks. However, in such systems, simplistic menu based operations are utilized to achieve this and hence they are not dynamic or flexible.
An object of the present invention is to provide a system implementing a methodology that facilitates one to explore and execute tasks possible in a network such as a home network environment. In one embodiment, such a system provides interfaces to access task information and supports several types of functionalities that help in customization of the task information based on the requesting user's state/context. Tasks are the activities that can be performed in the network represented by pseudo sentences (e.g., Play, movie, in the Living Room TV, etc.)
In one embodiment, such a system supports composing a task request in different ways. It allows a task request to be composed and executed in an incremental fashion or at one-go, thus enabling user interface applications to be flexible.
When a user requests to know the tasks available in the network (through a User Interface application), the system applies security policies and more user context information, such as the location of user and the device used by the user, to customize and prioritize the tasks available for each user and ensures that the user interface application does not display tasks that are not executable by the user.
Further, the system dynamically updates the user interface application based on the user input and any changes in the network environment, such as addition or removal of devices/services, thus ensuring only meaningful information is displayed to the user. Further, the user is updated with the newly possible tasks and the ones no longer available. Moreover, by dynamically updating the choices available for the user, the system effectively guides the user input.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.
In one embodiment the present invention provides a system implementing a methodology that facilitates one to explore and execute tasks possible in a network, such as a home network environment. The system provides interfaces to access task information and supports several types of functionalities that help in customization of the task information based on the requesting user's state/context. Tasks are the activities that can be performed in the network, wherein tasks can be represented by pseudo sentences (e.g., Play, movie, in the Living Room TV, etc.). Examples of tasks and task generation are provided in commonly assigned patent applications U.S. Ser. No. 10/947,774 for “Method and system for presenting user tasks for the control of electronic devices,” filed on Sep. 22, 2004, U.S. Ser. No. 10/950,121 for “Method and system for describing consumer electronics using separate task and device descriptions,” filed on Sep. 24, 2004, U.S. Ser. No. 10/948,399 for “A method and system for the orchestration of tasks on consumer electronics,” filed on Sep. 22, 2004, U.S. Ser. No. 11/200,546 for “Contextual task recommendation: A method for determining the user's context and suggesting tasks,” filed on Aug. 9, 2005 and U.S. Ser. No. 11/200,547 for “Method and system for prioritizing tasks made available by devices in a network,” filed on Aug. 9, 2005 (all incorporated herein by reference).
An access system according to the present invention supports composing a task request in different ways. It allows a task request to be composed and executed in an incremental fashion or at one-go, thus enabling user interface applications to be flexible. One-go means that the present invention provides interfaces to a User Interface Application (UIA) that would enable users to choose and execute a task (for e.g.: ‘Play Movie’) with just one-click. Two example ways of accessing tasks in a home include: (1) providing the various fields in the available task ‘pseudo-sentences’ (e.g., verb, subject, etc.) separately, thus allowing the user to access and choose these fields incrementally (doing this requires more than one-click); or (2) providing the entire task pseudo-sentences' (e.g., “Play Movie”) and allowing the user to execute this by just pressing ‘ok’. This second way is referred to a as ‘executing tasks at one-go’.
When a user requests to know the tasks available in the network (e.g., through a User Interface application), the system applies criteria such as security policies and more user context information (e.g., location of the user in the home, the device used, etc.), to customize and prioritize the tasks available for each user and ensures that the user interface application does not display tasks that are not executable by the user. The system dynamically updates the user interface application based on the user input and any changes in the network environment, such as addition or removal of devices/services, thus ensuring only meaningful information is displayed to the user. Further, the user is updated with the newly possible tasks and the ones no longer available. Moreover, by dynamically updating the choices available for the user, the system effectively guides the user input.
In the following, an example of an access system implementing an access method according to the present invention is described.
An access system implementing an access method according to an example of the present invention supports several interfaces and functionalities for use by potential user interface applications. As such, the system provides a way to explore and execute tasks possible in a network (e.g., home network). Though in this description the present invention is described as implemented in a home network, those skilled in the art will recognize that the present invention is applicable to other networks. As such, the present invention is not limited to home networks.
Generally, an access system according to the present invention provides task-related choices to the user/application and also dynamically updates the choices available based on the user's input so far, and the state (status) of the devices in the home network at that instance, thereby effectively guiding the user input.
The main design principles of the example system include efficient techniques to browse through the tasks possible in a home network and intelligent control of the devices in the network. Major functionalities provided by the example system include:
Referring to the example network 90 in
The UTM 200 also provides several functionalities that assist in customizing the task information based on the user's context (most of these functionalities are not visible to the user and the UIA at the interfaces level). The UIA 201 and the UTM 200 may reside on the same or different devices in the network 90. In the example shown in
Referring to the flowchart in
6. The UIA 201 displays to the user 300 the various tasks possible (e.g., displays only the verb, subject and devices at this stage), in an order based on the scores assigned to the tasks. In this example implementation, a ‘score’ field (e.g., a numeric value) is associated with each task. A task inferred to be of more interest to the user gets a higher ‘score’ value.
7. The user 300 chooses a verb and the UIA 201 passes-on the choice (e.g., “Play”, etc.) to the UTM 200
8. The subject list and device list on the UIA 201 is dynamically updated by UTM 200. UTM 200 identifies the subjects and devices relevant to the user 300 based on the current verb choice and notifies the UIA 201 about the same.
Referring to the flowchart in
In step 5 above, examples of task combinations returned by the middleware 202 to UTM 200 include: “Play Music LivingRoom-HiFi Stereo”, “Play Movie LivingRoom-HDTV”, “Play Movie Bedroom-PlasmaTV”, “Show Photos LivingRoom-HDTV, etc. Further, examples of PRIORITIZED task combinations returned by UTM 200 to UIA 201 include: “Play Movie LivingRoom-HDTV”, score—100; “Show Photos LivingRoom-HDTV”, score—80; “Play Music LivingRoom-HiFi Stereo”, score—60; “Play Movie Bedroom-PlasmaTV”, score—40; etc.
As noted in step 8 above, the UTM 200 identifies the subjects and devices relevant to the user 300 based on the current verb choic and notifies the UIA 201 about the same. In one example, if the following are the tasks available in the home: “Play Music LivingRoom-HiFi Stereo”, “Play Movie LivingRoom-HDTV”, “Play Movie Bedroom-PlasmaTV”, “Show Photos LivingRoom-HDTV”, etc., then if the current verb choice is ‘Play’, the UTM 200 returns the following subjects—‘Movie’, ‘Music’ and devices such as ‘LivingRoom-HDTV’, ‘BedRoom-PlasmaTV’, etc.
In step 12 above, if the user has chosen ‘Movie’ as the subject, then the UTM 200 accessed the list of all available media content (e.g., Movie, Music and Image content, etc.) from the underlying middleware 202 and filters out the Movie content from this list and sends only the Movie content to the UIA 201 (through events as specified in step 14).
In step 13 above, if the user has selected options e.g. verb—‘Play’, subject—‘Movie’, device—‘LivingRoom-HDTV’ and content-DVD movie ‘The Matrix’, then the UTM 200 performs the following types of filtering:
In step 27 above, example user tasks available in the home can include: “Play Music LivingRoom-HiFi Stereo”, “Play Movie LivingRoom-HDTV”, “Play Movie Bedroom-PlasmaTV”, “Show Photos LivingRoom-HDTV”, “Print Photos LivingRoom-Printer”, “Show Photos Bedroom-PlasmaTV”, etc. If the user chooses a Picture ‘Hawaii-trip1’ in the previous step (26) and the location of the user is ‘LivingRoom’, then, in step 27, the UTM 200 returns the following tasks to the user (in this order): “Show Photos LivingRoom-HDTV”, score—100; “Print Photos LivingRoom-Printer”, score—80; “Show Photos Bedroom-PlasmaTV”, score—10.
Preferably, the UIA 201 is implemented on a device with a display system. The UTM 200 and other functional modules (including module 202) can be implemented on any device with memory capabilities (e.g., device 20 or 30). For example, the UTM 200 and the underlying middleware can be implemented on a Digital Television set, and the UIA 201 can also be implemented on that Digital Television set. In other examples, the UTM 200 and the UIA can be implemented on different devices.
As such, an access method/system according to the present invention facilitates exploration and execution of tasks in a network, utilizing an interface to access task information by supporting multiple functionalities for customizing the task information based on user state/context. The access system allows composing a task request in different ways, wherein a task request can be composed and executed as desired. Upon user request, the system applies security policies and more user context information to customize and prioritize the tasks available for each user and ensures that a user interface application does not display tasks that are not executable by the user. The system dynamically updates the user interface application based on the user input and any changes in the network environment to ensure display of meaningful information to the user. The user is updated with any newly possible tasks and the ones no longer available. By dynamically updating the choices available for the user, the system effectively guides the user input.
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.