Source: http://www.google.com/patents/US20030046401?dq=5,870,513
Timestamp: 2015-11-30 10:10:21
Document Index: 351551853

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60']

Patent US20030046401 - Dynamically determing appropriate computer user interfaces - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA method, system, and computer-readable medium are described for dynamically determining an appropriate user interface (“UI”) to be provided to a user. In some situations, the determining is to dynamically modify a UI being provided to a user of a wearable computing device so that the current UI...http://www.google.com/patents/US20030046401?utm_source=gb-gplus-sharePatent US20030046401 - Dynamically determing appropriate computer user interfacesAdvanced Patent SearchPublication numberUS20030046401 A1Publication typeApplicationApplication numberUS 09/981,320Publication dateMar 6, 2003Filing dateOct 16, 2001Priority dateOct 16, 2000Also published asWO2002033541A2, WO2002033541A3Publication number09981320, 981320, US 2003/0046401 A1, US 2003/046401 A1, US 20030046401 A1, US 20030046401A1, US 2003046401 A1, US 2003046401A1, US-A1-20030046401, US-A1-2003046401, US2003/0046401A1, US2003/046401A1, US20030046401 A1, US20030046401A1, US2003046401 A1, US2003046401A1InventorsKenneth Abbott, James Robarts, Lisa DavisOriginal AssigneeAbbott Kenneth H., Robarts James O., Davis Lisa L.Export CitationBiBTeX, EndNote, RefManPatent Citations (98), Referenced by (744), Classifications (8), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetDynamically determing appropriate computer user interfaces
US 20030046401 A1Abstract
A method, system, and computer-readable medium are described for dynamically determining an appropriate user interface (“UI”) to be provided to a user. In some situations, the determining is to dynamically modify a UI being provided to a user of a wearable computing device so that the current UI is appropriate for a current context of the user. In order to dynamically determine an appropriate UI, various types of UI needs may be characterized (e.g., based on a current user's situation, a current task being performed, current I/O devices that are available, etc.) in order to determine characteristics of a UI that is currently optimal or appropriate, various existing UI designs or templates may be characterized in order to identify situations for which they are optimal or appropriate, and one of the existing UIs that is most appropriate may then be selected based on the current UI needs. Images(15) Claims(70)
1. A method for dynamically determining an appropriate user interface to be presented to a user of a computing device based on a current context, the method comprising: for each of multiple predefined user interfaces, characterizing multiple properties of the predefined user interface; dynamically determining one or more current needs for a user interface to be presented to the user; and selecting for presentation to the user one of the predefined user interfaces whose characterized properties correspond to the dynamically determined current needs. 2. The method of claim 1 including presenting the selected predefined user interface to the user. 3. The method of claim 1 wherein the computing device is a wearable personal computer. 4. The method of claim 1 wherein the current context is represented by a plurality of context attributes that each model an aspect of the context. 5. The method of claim 1 wherein the current context is a context of the user. 6. The method of claim 1 wherein the selecting is performed at execution time. 7. The method of claim 1 wherein the dynamic determining and the selecting are performed repeatedly so that the user interface that is presented to the user is appropriate to the current needs. 8. The method of claim 1 wherein the dynamic determining and the selecting are performed repeatedly so that the user interface that is presented to the user is optimal with respect to the current needs. 9. The method of claim 1 wherein the determining of the current needs includes at least one of characterizing UI needs corresponding to a current task being performed, characterizing UI needs corresponding to a current situation of the user, and characterizing UI needs corresponding to current I/O devices that are available. 10. The method of claim 1 wherein the determining of the current needs includes characterizing UI needs corresponding to a current task being performed, characterizing UI needs corresponding to a current situation of the user, and characterizing UI needs corresponding to current I/O devices that are available. 11. The method of claim 1 wherein the determining of the current needs includes characterizing a current cognitive availability of the user and identifying the current needs based at least in part on the characterized current cognitive availability. 12 The method of claim 1 wherein the determining and the selecting are performed without user intervention. 13. The method of claim 1 wherein the selected user interface includes information to be presented to the user and interaction controls that can be manipulated by the user. 14. The method of claim 1 including monitoring the user and/or a surrounding environment of the user in order to produce information about the current context. 15. The method of claim 1 wherein the determined current needs are based at least in part on the current context. 16. The method of claim 1 including customizing the selected user interface based on the user before presenting of the customized user interface to the user. 17. The method of claim 1 including adapting the selected user interface to a type of the computing device before presenting of the adapted user interface to the user. 18. The method of claim 1 including adapting the selected user interface to a current activity of the user before presenting of the adapted user interface to the user. 19. The method of claim 1 wherein the determining of the current needs is based at least in part on the user being mobile. 20. A computer-readable medium whose contents cause a computing device to dynamically determine an appropriate user interface to be presented to a user of a computing device, by performing a method comprising: for each of multiple predefined user interfaces, characterizing properties of the predefined user interface; dynamically determining one or more current needs for a user interface to be presented to the user; selecting for presentation to the user one of the predefined user interfaces whose characterized properties correspond to the dynamically determined current needs; and presenting the selected user interface to the user. 21. The computer-readable medium of claim 20 wherein the computer-readable medium is a memory of a computing device. 22. The computer-readable medium of claim 20 wherein the computer-readable medium is a data transmission medium transmitting a generated data signal containing the contents. 23. The computer-readable medium of claim 20 wherein the contents are instructions that when executed cause the computing device to perform the method. 24. A computing device for dynamically determining an appropriate user interface to be presented to a user of a computing device, comprising: a first component capable of, for each of multiple defined user interfaces, characterizing properties of the defined user interface; a second component capable of determining during execution one or more current needs for a user interface to be presented to the user; and a third component capable of selecting during execution one of the defined user interfaces whose characterized properties correspond to the dynamically determined current needs, the selected user interface for presentation to the user. 25. The computing device of claim 24 wherein the first, second and third components are executing in memory of the computing device. 26. A computer system for dynamically determining an appropriate user interface to be presented to a user of a computing device, comprising: means for, for each of multiple defined user interfaces, characterizing properties of the defined user interface; means for determining during execution one or more current needs for a user interface to be presented to the user; and means for selecting during execution one of the defined user interfaces whose characterized properties correspond to the dynamically determined current needs, the selected user interface for presentation to the user. 27. A method for dynamically determining an appropriate user interface to be presented to a user of a computing device based on a current context, the method comprising: determining multiple user interface elements that are available for presentation on the computing device; characterizing properties of the determined user interface elements; dynamically determining one or more current needs for a user interface to be presented to the user; and generating a user interface for presentation to the user, the generated user interface having user interface elements whose characterized properties correspond to the dynamically determined current needs. 28. The method of claim 27 including presenting the generated user interface to the user. 29. The method of claim 27 wherein the dynamic determining and the generating are performed repeatedly so that the user interface that is presented to the user is optimal with respect to the current needs. 30. The method of claim 27 wherein the determining and the generating are performed without user intervention. 31. The method of claim 27 including retrieving one or more definitions for combining available user interface elements in an appropriate manner so as to satisfy current needs, and wherein the generating of the user interface uses at least one of the retrieved definitions to combine the user interface elements of the generated user interface in a manner that is appropriate to the determined current needs. 32. The method of claim 27 including retrieving one or more definitions for adapting available user interface elements to a type of computing device, and wherein the generating of the user interface uses at least one of the retrieved definitions to combine the user interface elements of the generated user interface in a manner specific to the type of the computing device. 33. A method for dynamically presenting an appropriate user interface to a user of a computing device based on a current context, the method comprising: presenting a first user interface to the user; without user intervention, determining that the current context has changed in such a manner that the first user interface is not appropriate for the user; selecting a second user interface that is appropriate for the user based at least in part on the current context; and presenting the second user interface to the user. 34. The method of claim 33 wherein the determining that the current context has changed in such a manner that the first user interface is not appropriate for the user includes automatically detecting the changes. 35. The method of claim 33 wherein the selecting of the second user interface is performed without user intervention. 36. The method of claim 33 wherein the second user interface is one of multiple predefined user interfaces. 37. The method of claim 33 wherein the second user interface is dynamically generated after the determining of the changes in the current context. 38. The method of claim 33 wherein the second user interface is a modification of the first user interface. 39. The method of claim 38 wherein the modifying of the first user interface (“UI”) includes modifying prominence of one or more UI elements of the first user interface, modifying associations between the UI elements, modifying a metaphor associated with the first user interface, modifying a sensory analogy associated with the first user interface, modifying a degree of background awareness associated with the first user interface, modifying a degree of invitation associated with the first user interface, and/or modifying a degree of safety of the user based on one or more indications presented as part of the second user interface that were not part of the first user interface. 40. A method for characterizing predefined user interfaces to allow a user interface that is currently appropriate to be presented to a user of a computing device to be dynamically selected, the method comprising: for each of multiple predefined user interfaces, characterizing the user interface by, determining an intended use of the predefined user interface; determining one or more user tasks with which the predefined user interface is compatible; and determining one or more computing device configurations with which the predefined user interface is compatible, so that one of the predefined user interfaces can be dynamically selected for presentation to a user based on the selected user interface being currently appropriate. 41. The method of claim 40 including determining information about a current context and selecting one of the predefined user interfaces that is appropriate for the current context. 42. The method of claim 40 wherein the characterizing of each of the predefined user interfaces includes at least one of characterizing content of the user interface, characterizing a cost of using the user interface, characterizing a relevant date for the user interface, characterizing a design of elements of the user interface, characterizing functions of the elements of the user interface, characterizing hardware affinity of the user interface, characterizing an identification of the user interface, characterizing an importance of the user interface, characterizing input and output devices that are compatible with the user interface, characterizing languages to which the user interface corresponds, characterizing a learning profile of the user interface, characterizing task lengths for which the user interface is compatible, characterizing a name of the user interface, characterizing physical availability of the user interface, characterizing a power supply of the user interface, characterizing a priority of the user interface, characterizing privacy supported by the user interface, characterizing processing capabilities used for the user interface, characterizing safety capabilities of the user interface, characterizing security capabilities of the user interface, characterizing a source of the user interface, characterizing storage capabilities used for the user interface, characterizing audio capabilities of the user interface, characterizing task complexities compatible with the user interface, characterizing themes corresponding to the user interface, characterizing an urgency level for the user interface, characterizing a user attention level for the user interface, characterizing user characteristics compatible with the user interface, characterizing user expertise levels compatible with the user interface, characterizing user preference accommodation capabilities of the user interface, characterizing a version of the user interface, and characterizing video capabilities of the user interface. 43. The method of claim 40 wherein the characterizing of each of the predefined user interfaces is performed without user intervention. 44. A method for dynamically determining requirements for a user interface that is currently appropriate to be presented to a user of a computing device based on a current context, the method comprising: dynamically determining one or more current characteristics of a user interface that is currently appropriate to be presented to the user, the determining based at least in part on the current context; and identifying at least some of the determined characteristics as requirements for a user interface that is currently appropriate to be presented to the user. 45. The method of claim 44 including determining a user interface that satisfies the determined requirements and presenting the determined user interface to the user. 46. The method of claim 44 wherein the determining of the current characteristics includes determining characteristics corresponding to a current task being performed, determining characteristics corresponding to a current situation of the user, and/or determining characteristics corresponding to current I/O devices that are available. 47. The method of claim 44 wherein the determining of the current characteristics is performed without user intervention. 48. A method for dynamically determining requirements for a user interface that is currently appropriate to be presented to a user of a computing device, the method comprising: dynamically determining one or more current characteristics of a user interface that is currently appropriate to be presented to the user, the determining based at least in part on a current task being performed by the user; and identifying at least some of the determined characteristics as requirements for a user interface that is currently appropriate to be presented to the user. 49. The method of claim 48 including determining a user interface that satisfies the determined requirements and presenting the determined user interface to the user. 50. The method of claim 48 wherein the determining of the current characteristics is performed without user intervention. 51. A method for dynamically determining requirements for a user interface that is currently appropriate to be presented to a user of a computing device, the method comprising: dynamically determining one or more current characteristics of a user interface that is currently appropriate to be presented to the user, the determining based at least in part on a current I/O devices that are available to the computing device; and identifying at least some of the determined characteristics as requirements for a user interface that is currently appropriate to be presented to the user. 52. The method of claim 51 including determining a user interface that satisfies the determined requirements and presenting the determined user interface to the user. 53. The method of claim 51 wherein the determining of the current characteristics is performed without user intervention. 54. A method for dynamically determining requirements for a user interface that is currently appropriate to be presented to a user of a computing device, the method comprising: dynamically determining one or more current characteristics of a user interface that is currently appropriate to be presented to the user, the determining based at least in part on a current context of the user; and identifying at least some of the determined characteristics as requirements for a user interface that is currently appropriate to be presented to the user. 55. The method of claim 54 including determining a user interface that satisfies the determined requirements and presenting the determined user interface to the user. 56. The method of claim 54 wherein the determining of the current characteristics is performed without user intervention. 57. A method for dynamically determining characteristics of a user interface that is currently appropriate to be presented to a user of a computing device, the method comprising: dynamically determining a level of attention which the user can currently give to the user interface; and dynamically determining one or more current characteristics of a user interface that is currently appropriate to be presented to the user based at least in part on the determined level of attention. 58. The method of claim 57 including determining a user interface that includes the determined characteristics and presenting the determined user interface to the user. 59. The method of claim 57 wherein the determined level of attention is based on a determined current cognitive load of the user. 60. The method of claim 57 wherein the determining of the current characteristics is performed without user intervention. 61. The method of claim 57 wherein the determining of the level of attention is performed without user intervention. 62. A method for determining techniques for dynamically generating an appropriate user interface to be presented to a user of a computing device, the method comprising: retrieving one or more definitions for dynamically combining available user interface elements in an appropriate manner so as to satisfy current needs; and selecting one of the retrieved definitions based on current conditions so that available user interface elements can be combined in an appropriate manner to generate a user interface that is appropriate to be presented to the user. 63. The method of claim 62 including using the selected definition to generate a user interface that is appropriate to be presented to the user and presenting the generated user interface to the user. 64. The method of claim 62 wherein the selecting of the retrieved definition is performed without user intervention. 65. A method for determining techniques for dynamically generating an appropriate user interface to be presented to a user of a computing device, the method comprising: retrieving one or more definitions for dynamically adapting available user interface elements to a type of computing device; and selecting one of the retrieved definitions based on current conditions so that available user interface elements can be adapted to the type of the computing device so as to generate a user interface that is appropriate to be presented to the user. 66. The method of claim 65 including using the selected definition to generate a user interface that is appropriate to be presented to the user and presenting the generated user interface to the user. 67. The method of claim 65 wherein the selecting of the retrieved definition is performed without user intervention. 68. A method for dynamically determining an appropriate user interface to be presented to a user of a computing device based on a current context, the method comprising: determining multiple user interface elements that are available for presentation on the computing device; and characterizing properties of the determined user interface elements, so that available user interface elements whose characterized properties are appropriate for a current context can be selected and combined in an appropriate manner to generate a user interface that is appropriate to be presented to the user 69. The method of claim 68 including combining available user interface elements whose characterized properties are appropriate for a current context in order to generate a user interface that is appropriate to be presented to the user and presenting the generated user interface to the user. 70. The method of claim 68 wherein the characterizing of the properties is performed without user intervention.
CROSS REFERENCE TO RELATED APPLICATIONS [0001] This application claims the benefit of U.S. Provisional Application No. 60/240,671 (Attorney Docket Nos. TG1003 and 294438006US00), filed Oct. 16, 2000; of U.S. Provisional Application No. 60/240,682 (Attorney Docket Nos. TG1004 and 294438006US01), filed Oct. 16, 2000; of U.S. Provisional Application No. 60/240,687 (Attorney Docket Nos. TG1005 and 294438006US02), filed Oct. 16, 2000; of U.S. Provisional Application No. 60/240,689 (Attorney Docket Nos. TG1001 and 294438006US03), filed Oct. 16, 2000; of U.S. Provisional Application No. 60/240,694 (Attorney Docket Nos. TG1013 and 294438006US04), filed Oct. 16, 2000; of U.S. Provisional Application No. 60/311,181 (Attorney Docket Nos. 145 and 294438006US06), filed Aug. 9, 2001; of U.S. Provisional Application No. 60/311,148 (Attorney Docket Nos. 146 and 294438006US07), filed Aug. 9, 2001; of U.S. Provisional Application No. 60/311,151 (Attorney Docket Nos. 147 and 294438006US08), filed Aug. 9, 2001; of U.S. Provisional Application No. 60/311,190 (Attorney Docket Nos. 149 and 294438006US09), filed Aug. 9, 2001; of U.S. Provisional Application No. 60/311,236 (Attorney Docket Nos. 150 and 294438006US10), filed Aug. 9, 2001; and of U.S. Provisional Application No. 60/323,032 (Attorney Docket Nos. 135 and 294438006US05), filed Sep. 14, 2001, each of which are hereby incorporated by reference in their entirety.
TECHNICAL FIELD [0002] The following disclosure relates generally to computer user interfaces, and more particularly to various techniques for dynamically determining an appropriate user interface, such as based on a current context of a user of a wearable computer. BACKGROUND [0003] Current user interfaces (UIs) often use a windows, icons, menus, and pointers (WIMP) interface. While WIMP interfaces have proved useful for some users of stationary desktop computers, a WIMP interface is not typically appropriate for other users (e.g., users that are non-stationary and/or users of other types of computing devices). One reason that WIMP interfaces are inappropriate in other situations is that they make several inappropriate assumptions about the user's situation, including: (a) that the user's computing device has a significant amount of screen real estate available for the UI; (b) that interaction, not digital information, is the user's primary task (e.g., that the user is willing to track a pointer's movement, hunt down a menu item or button, find an icon, and/or immediately receive and respond to information being presented); and (c) that the user can and should explicitly specify how and when to change the interface (e.g., to adapt to changes in the user's environment). [0004] Moreover, what limited controls are available to the user in a WIMP interface (e.g., manually changing the entire computer display's brightness or audio volume) are typically complicated (e.g., system controls are not integrated in the control mechanisms of the computing system—instead, users must go through multiple layers of system software), inflexible (e.g., user preferences do not apply to different input and output (I/O) devices), non-automated (e.g., UIs do not typically respond to context changes without direct user intervention), not user-extensible (e.g., new devices cannot be integrated into existing preferences), not user-programmable (e.g., users cannot modify underlying logic used), and difficult to share (e.g., there is a lack of integration, which means preference for logic used cannot be conveniently stored and exported to other computers), as well as suffering from various other problems. [0005] A computing system and/or an executing software application that were able to dynamically modify a UI during execution so as to appropriately reflect current conditions would provide a variety of benefits. However, to perform such dynamic modification of a UI, whether by choosing between existing options and/or by creating a custom UI, such a system and/or software may need to be able to determine and respond to a variety of complex current UI needs. For instance, in a situation in which the user requires that the input to the computing environment be private, the computer-assisted task is complex, and the user has access to a head-mounted display (HMD) and a keyboard, the UI needs are different than a situation in which the user does not require any privacy, has access to a desktop computer with a monitor, and the computer-assisted task is simple. [0006] Unfortunately, current computing systems and software applications (including WIMP interfaces) do not explicitly model sufficient UI needs (e.g., privacy, safety, available I/O devices, learning style, etc.) to allow an optimal or near-optimal UI to be dynamically determined and used during execution. In fact, most computing systems and software applications do not explicitly model any UI needs, and make no attempt to dynamically modify their UI during execution to reflect current conditions. [0007] Some current systems do attempt to provide modifiability of UI designs in various limited ways that do not involve modeling such UI needs, but each fail for one reason or another. Some such current techniques include: [0008] changing UI design based on device type; [0009] specifying explicit user preferences; and [0010] changing UI output by selecting a platform at compile-time. [0011] Unfortunately, none of these techniques address the entire problem, as discussed below. [0012] Changing the UI based on the type of device (e.g., providing a personal digital assistant (PDA) with a different UI than a desktop computer or a computer in an automobile) typically involves designing completely separate UIs that are not inter-compatible and that do not react to the user's context. Thus, the user gets a different UI on each computing device that they use, and gets the same UI on a particular device regardless of their situation (e.g., whether they are driving a car, working on an airplane engine, or sitting at a desk). [0013] Specifying of user preferences (e.g., as allowed by the Microsoft Windows operating system and some application programs) typically allows a UI to be modified, but in ways that are limited to appearance and superficial functionality (e.g., accessibility, pointers, color schemes, etc.), and requires an explicit user intervention (which is typically difficult and time-consuming to specify) every time that the UI is to change. [0014] Changing the type of UI output that will be presented (e.g., pop-up menus versus scrolling lists) based on the underlying software platform (e.g., operating system) that will be used to support the presentation is typically a choice that must be made at compile time, and often involves requiring the UI to be limited to a subset of functionality that is available on every platform to be supported. For example, Geoworks' U.S. Pat. No. 5,327,529 describes a system that supports the creation of software applications that can change their appearance in limited manners based on different platforms. [0015] Thus, while current systems provide limited modifiability of UI designs, such current systems do not dynamically modify a UI during execution so as to appropriately reflect current conditions. The ability to provide such dynamic modification of a UI would provide significant benefits in a wide variety of situations. BRIEF DESCRIPTION OF THE DRAWINGS [0016] [0016]FIG. 1 is a data flow diagram illustrating one embodiment of dynamically determining an appropriate or optimal UI. [0017] [0017]FIG. 2 is a block diagram illustrating an embodiment of a computing device with a system for dynamically determining an appropriate UI. [0018] [0018]FIG. 3 illustrates an example relationship between various techniques related to dynamic optimization of computer user interfaces. [0019] [0019]FIG. 4 illustrates an example of an overall mechanism for characterizing a user's context. [0020] [0020]FIG. 5 illustrates an example of automatically generating a task characterization at run time. [0021] [0021]FIG. 6 is a representation of an example of choosing one of multiple arbitrary predetermined UI designs at run time. [0022] [0022]FIG. 7 is a representation of example logic that can be used to choose a UI design at run time. [0023] [0023]FIG. 8 is an example of how to match a UI design characterization with UI requirements via a weighted matching index. [0024] [0024]FIG. 9 is an example of how UI requirements can be weighted so that one characteristic overrides all other characteristics when using a weighted matching index. [0025] [0025]FIG. 10 is an example of how to match a UI design characterization with UI requirements via a weighted matching index. [0026] [0026]FIG. 11 is a block diagram illustrating an embodiment of a computing device capable of executing a system for dynamically determining an appropriate [0027] [0027]FIG. 12 is a diagram illustrating an example of characterizing multiple UI designs. [0028] [0028]FIG. 13 is a diagram illustrating another example of characterizing multiple UI designs. [0029] [0029]FIG. 14 illustrates an example UI.
DETAILED DESCRIPTION [0030] A software facility is described below that provides various techniques for dynamically determining an appropriate UI to be provided to a user. In some embodiments, the software facility executes on behalf of a wearable computing device in order to dynamically modify a UI being provided to a user of the wearable computing device (also referred to as a wearable personal computer or “WPC”) so that the current UI is appropriate for a current context of the user. In order to dynamically determine an appropriate UI, various embodiments characterize various types of UI needs (e.g., based on a current user's situation, a current task being performed, current I/O devices that are available, etc.) in order to determine characteristics of a UI that is currently optimal or appropriate, characterize various existing UI designs or templates in order to identify situations for which they are optimal or appropriate, and then selects and uses one of the existing UIs that is most appropriate based on the current UI needs. In other embodiments, various types of UI needs are characterized and a UI is dynamically generated to reflect those UI needs, such as by combining in an appropriate or optimal manner various UI building block elements that are appropriate or optimal for the UI needs. A UI may in some embodiments be dynamically generated only if an existing available UI is not sufficiently appropriate, and in some embodiments a UI to be used is dynamically generated by modifying an existing available UI. [0031] For illustrative purposes, some embodiments of the software facility are described below in which current UI needs are determined in particular ways, in which existing UIs are characterized in various ways, and in which appropriate or optimal UIs are selected or generated in various ways. In addition, some embodiments of the software facility are described below in which described techniques are used to provide an appropriate UI to a user of a wearable computing device based on a current context of the user. However, those skilled in the art will appreciate that the disclosed techniques can be used in a wide variety of other situations and that UI needs and UI characterizations can be determined in a variety of ways. [0032] [0032]FIG. 1 illustrates an example of one embodiment of an architecture for dynamically determining an appropriate UI. In particular, box 109 represents using an appropriate UI for a current context. When changes in the current context render a previous UI inappropriate or non-optimal, a new UI appropriate or optimal UI can be selected or generated, as is shown in boxes 146 and 155 respectively. In order to enable selection of a new UI that is appropriate or optimal, the characteristics of a UI that is currently appropriate or optimal are determined in box 145 and the characteristics of various existing UIs are determined in box 135 (e.g., in a manual and/or automatic manner). In order to enable the determination of the characteristics of a UI that is currently appropriate or optimal, in the illustrated embodiment the UI requirements of the current task are determined in box 149 (e.g., in a manual and/or automatic manner), the UI requirements corresponding to the user are determined in box 150 (e.g., based on the user's current needs), and the UI requirements corresponding to the currently available I/O devices are determined in box 147. The UI requirements corresponding to the user can be determined in various ways, such as in the illustrated embodiment by determining in box 106 the quantity and quality of attention that the user can currently provide to their computing system and/or executing application. If a new appropriate or optimal UI is to generated in box 155, the generation is enabled in the illustrated embodiment by determining the characteristics of a UI that is currently appropriate or optimal in box 145, determining techniques for constructing a UI design to reflect UI requirements in box 156 (e.g., by combining various specified UI building block elements), and determining how newly available hardware devices can be used as part of the UI. The order and frequency of the illustrated types of processing can be varied in various embodiments, and in other embodiments some of the illustrated types of processing may not be performed and/or additional non-illustrated types of processing may be used. [0033] [0033]FIG. 2 illustrates an example computing device 200 suitable for executing an embodiment of the facility, as well as one or more additional computing device 250s with which the computing device 200 may interact. The computing device 200 includes a CPU 205, various I/O devices 210, storage 220, and memory 230. The I/O devices include a display 211, a network connection 212, a computer-readable media drive 213, and other I/O devices 214. [0034] Various components 241-248 are executing in memory 230 to enable dynamic determination of appropriate or optimal UIs, as are a UI Applier component 249 to apply an appropriate or optimal UI that is dynamically determined. One or more other application programs 235 may also be executing in memory, and the UI Applier may supply, replace or modify the UIs of those application programs. The dynamic determination components include a Task Characterizer 241, a User Characterizer 242, a Computing System Characterizer 243, an Other Accessible Computing Systems Characterizer 244, an Available UI Designs Characterizer 245, an Optimal UI Determiner 246, an Existing UI Selector 247, and a New UI Generator 248. The various components may use and/or generate a variety of information when executing, such as UI building block elements 221, current context information 222, and current characterization information 223. [0035] Those skilled in the art will appreciate that computing devices 200 and 250 are merely illustrative and are not intended to limit the scope of the present invention. Computing device 200 may be connected to other devices that are not illustrated, including through one or more networks such as the Internet or via the World Wide Web (WWW), and many in some embodiments be a wearable computer. In other embodiments, the computing devices may comprise other combinations of hardware and software, including computers, network devices, internet appliances, PDAs, wireless phones, pagers, electronic organizers, television-based systems and various other consumer products that include inter-communication capabilities. In addition, the functionality provided by the illustrated components may in some embodiments be combined in fewer components or distributed in additional components. Similarly, in some embodiments the functionality of some of the illustrated components may not be provided and/or other additional functionality may be available. [0036] Those skilled in the art will also appreciate that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them can be transferred between memory and other storage devices for purposes of memory management and data integrity. Some or all of the components and their data structures may also be stored (e.g., as instructions or structured data) on a computer-readable medium, such as a hard disk, a memory, a network, or a portable article to be read by an appropriate drive. The components and data structures can also be transmitted as generated data signals (e.g., as part of a carrier wave) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums Accordingly, the present invention may be practiced with other computer system configurations. [0037] What follows are various examples of techniques for dynamically determining an appropriate UI, such as by characterizing various types of UI needs and/or by characterizing various existing UI designs or templates in order to identify situations for which they are optimal or appropriate. [0038] Modeling a Computer User's Cognitive Availability [0039] User's Meaning [0040] (the significance and/or implication of things, in the user's mind) [0041] Task, Purpose, Activity, Destination, Motivation, Desired Privacy [0042] When we assign a type, a friendly name, or description to a thing like place, we support the inference of intention. [0043] A grocery store is where activity associated with shopping can be accomplished—it is a characterization, an association of activities, in the mind of the user about a specific place. [0044] User's Cognition [0045] Cognitive/Attention Availability [0046] “Change in Cognitive Availability Change in Mode of interaction” (could differentiate between ‘user doesn't have the cycles’ and ‘user has them, but does not chose to give them to WPC’) [0047] “State Info/Compartmentalization Complexity of UI”
[0048] Characterize tasks as PC Aware, or not. [0049] Divided User Attention [0050] This section will deal primarily with Divided Attention. [0051] When performing more than one task at a time, the user can engage in three types of tasks: [0052] Focus Tasks: requires the users primary attention [0053] An example of a Focus Task is looking at a map. [0054] Routine Tasks: requires attention from the user, but allows multi-tasking in parallel [0055] An example of a Routine Task is talking on a cell phone, through the headset. [0056] Awareness Tasks: does not require any significant attention from the user [0057] For an example of an “Awareness Task”, imagine that the rate of data connectivity were represented as the background sound of flowing water. The user would be aware of the rate at some level, without significantly impacting the available User Attention. [0058] To perform tasks simultaneously, there are three kinds of divided attention-Task Switched, Parallel, and Awareness, as follows: [0059] Task Switching (Focus Task+Focus Task) [0060] When the user is engaged in more than one Focus Task, the attention is Task Switched. The user performs a compartmentalized subset of one task, interrupts that task, and performs a compartmentalized subset of the other task, as follows: [0061] Re-Grounding Phase: As the user returns to a Focus Task, they first reacquire any state information associated with the task, and/or acquire the UI elements themselves. Either the user or the WPC can carry the state information. [0062] Work Phase: Here the user actually performs the sub-task. The longer this phase, the more complex the subtask can be. [0063] Interruption/Off Task: When the interruption occurs, the user switches from one Focus Task to another task. [0064] When the duration of Work on Task increases (say, when the user's motion temporarily goes from 30 MPH to 0), then task presentation can more complex. This includes increased context of the steps involved (e.g., view more steps in the Bouncing Ball Wizard) or greater detail of each step (addition of other people's schedule when making appointments). [0065] The longer the Off Task cycle, the more likely the user is to lose Task State Information that is carried in their head. Also, the more complex or voluminous the Task State Information, the more desirable it becomes to allow the WPC to present the state information. The side effect of using the WPC to present Task State Information is that the Re-Grounding Phase may be lengthened, reducing the Work Phase. [0066] Parallel [0067] (Focus Task+Routine) OR (Routine+Routine) [0068] Background Awareness [0069] The concept of Background Awareness is that a non-focus output stimulus allows the user to monitor information without devoting significant attention or cognition. The stimulus retreats to the subconscious, but the user is consciously aware of an abrupt change in the stimulus. [0070] Cocktail Party Effect [0071] In audio, a phenomenon known as the “Cocktail Party Effect” allows a user to listen to multiple background audio channels, as long as the sounds representing each process are distinguishable. [0072] Experiments have shown that increasing the channels beyond three (3) causes degradation in comprehension. [Stiefelman94]
[0073] Spatial layout (3D Audio) can be used as an aid to audio memory. Focus can be given to a particular audio channel by increasing the gain on that channel. [0074] Listening and Monitoring have different cognitive burdens. [0075] The MIT Nomadic Radio Paper “Simultaneous and Spatial Listening” provides additional information on this phenomenon. [0076] Characterizing a Computer User's UI Requirements [0077] When monitoring and evaluating some or all available characteristics that could cause a UI to change (regardless of the source of the characteristic), it is possible to choose one or more of the most important characteristics upon which to build a UI, and then pass those characteristics to the computing system. [0078] Considered singularly, many of the characteristics described in this disclosure can be beneficially used to inform a computing system when to change. However, with an extensible system, additional characteristics can be considered (or ignored) at anytime, providing precision to the optimization. [0079] Attributes Analyzed [0080] This section describes various modeled real-world and virtual contexts The described model for optimal UI design characterization includes at least the following categories of attributes when determining the optimal UI design: [0081] All available attributes. The model is dynamic so it can accommodate for any and all attributes that could affect the optimal UI design for a user's context. [0082] For example, this model could accommodate for temperature, weather conditions, time of day, available I/O devices, preferred volume level, desired level of privacy, and so on. [0083] Significant attributes. Some attributes have a more significant influence on the optimal UI design than others. Significant attributes include, but are not limited to, the following: [0084] The user can see video. [0085] The user can hear audio. [0086] The computing system can hear the user. [0087] The interaction between the user and the computing system must be private. [0088] The user's hands are occupied. [0089] Attributes that correspond to a theme. Specific or programmatic. Individual or group. [0090] Using even one of these attribute categories can produce a large number of potential UIs. As discussed below, a limited model of user context can generate a large number of distinct situations, each potentially requiring a unique UI design. Despite this large number, this is not a challenge for software implementation. Modern computers can easily handle software implementations of much larger lookup tables. [0091] Although this document lists many attributes of a user's tasks and mental and physical environment, these attributes are meant to be illustrative because it is not possible to know all of the attributes that will affect a UI design until run time. The described model is dynamic so it can account for unknown attributes. [0092] It is important to note that any of the attributes mentioned in this document are just examples. There are other attributes that can cause a UI to change that are not listed in this document. However, the dynamic model can account for additional attributes. [0093] User Characterizations [0094] This section describes the characteristics that are related to the user. [0095] User Preferences [0096] User preferences are a set of attributes that reflect the user's likes and dislikes, such as I/O devices preferences, volume of audio output, amount of haptic pressure, and font size and color for visual display surfaces. User preferences can be classified in the following categories: [0097] Self characterization. Self-characterized user preferences are indications from the user to the computing system about themselves. The self-characterizations can be explicit or implicit. An explicit, self-characterized user preference results in a tangible change in the interaction and presentation of the UI. An example of an explicit, self characterized user preference is “Always use the font size 18” or “The volume is always off.” An implicit, self-characterized user preference results in a change in the interaction and presentation of the UI, but it might be not be immediately tangible to the user. A learning style is an implicit self-characterization. The user's learning style could affect the UI design, but the change is not as tangible as an explicit, self-characterized user preference. [0098] If a user characterizes themselves to a computing system as a “visually impaired, expert computer user,” the UI might respond by always using 24-point font and monochrome with any visual display surface. Additionally, tasks would be chunked differently, shortcuts would be available immediately, and other accommodations would be made to tailor the UI to the expert user. [0099] Theme selection. In some situations, it is appropriate for the computing system to change the UI based on a specific theme. For example, a high school student in public school 1420 who is attending a chemistry class could have a UI appropriate for performing chemistry experiments. Likewise, an airplane mechanic could also have a UI appropriate for repairing airplane engines. While both of these UIs would benefit from hands free, eyes out computing, the UI would be specifically and distinctively characterized for that particular system. [0100] System characterization. When a computing system somehow infers a user's preferences and uses those preferences to design an optimal UI, the user preferences are considered to be system characterizations. These types of user preferences can be analyzed by the computing system over a specified period on time in which the computing system specifically detects patterns of use, learning style, level of expertise, and so on. Or, the user can play a game with the computing system that is specifically designed to detect these same characteristics. [0101] Pre-configured. Some characterizations can be common and the UI can have a variety of pre-configured settings that the user can easily indicate to the UI. Pre-configured settings can include system settings and other popular user changes to default settings. [0102] Remotely controlled. From time to time, it may be appropriate for someone or something other than the user to control the UI that is displayed. [0103] Example User Preference Characterization Values [0104] This UI characterization scale is enumerated. Some example values include: [0105] Self characterization [0106] Theme selection [0107] System characterization [0108] Pre-configured [0109] Remotely controlled [0110] Theme [0111] A theme is a related set of measures of specific context elements, such as ambient temperature, current user task, and latitude, which reflect the context of the user. In other words, theme is a name collection of attributes, attribute values, and logic that relates these things. Typically, themes are associated with user goals, activities, or preferences. The context of the user includes: [0112] The user's mental state, emotional state, and physical or health condition. [0113] The user's setting, situation or physical environment. This includes factors external to the user that can be observed and/or manipulated by the user, such as the state of the user's computing system. [0114] The user's logical and data telecommunications environment (or “cyber-environment,” including information such as email addresses, nearby telecommunications access such as cell sites, wireless computer ports, etc.). [0115] Some examples of different themes include: home, work, school, and so on. Like user preferences, themes can be self characterized, system characterized, inferred, pre-configured, or remotely controlled. [0116] Example Theme Characterization Values [0117] This characteristic is enumerated. The following list contains example enumerated values for theme. [0118] No theme [0119] The user's theme is inferred. [0120] The user's theme is pre-configured. [0121] The user's theme is remotely controlled. [0122] The user's theme is self characterized. [0123] The user's theme is system characterized. [0124] User Characteristics [0125] User characteristics include: [0126] Emotional state [0127] Physical state [0128] Cognitive state [0129] Social state [0130] Example User Characteristics Characterization Values [0131] This UI characterization scale is enumerated. The following lists contain some of the enumerated values for each of the user characteristic qualities listed above. * Emotional state. * Happiness * Sadness * Anger * Frustration * Confusion * Physical state * Body * Biometrics * Posture * Motion * Physical Availability * Senses * Eyes * Ears * Tactile * Hands * Nose * Tongue * Workload demands/effects * Interaction with computer devices * Interaction with people * Physical Health * Environment * Time/Space * Objects * Persons * Audience/Privacy Availability * Scope of Disclosure * Hardware affinity for privacy * Privacy indicator for user * Privacy indicator for public * Watching indicator * Being observed indicator * Ambient Interference * Visual * Audio * Tactile * Location. * Place_name * Latitude * Longitude * Altitude * Room * Floor * Building * Address * Street * City * County * State * Country * Postal_Code * Physiology. * Pulse * Body_temperature * Blood_pressure * Respiration * Activity * Driving * Eating * Running * Sleeping * Talking * Typing * Walking *Cognitive state * Meaning * Cognition * Divided User Attention * Task Switching * Background Awareness * Solitude * Privacy * Desired Privacy * Perceived Privacy * Social Context * Affect * Social state * Whether the user is alone or if others are present * Whether the user is being observed (e.g., by a camera) * The user's perceptions of the people around them and the user's perceptions of the intentions of the people that surround them. * The user's social role (e.g. they are a prisoner, they are a guard, they are a nurse, they are a teacher, they are a student, etc.) [0132] Cognitive Availability [0133] There are three kinds of user tasks: focus, routine, and awareness and three main categories of user attention: background awareness, task switched attention, and parallel. Each type of task is associated with a different category of attention. Focus tasks require the highest amount of user attention and are typically associated with task-switched attention. Routine tasks require a minimal amount of user attention or a user's divided attention and are typically associated with parallel attention. Awareness tasks appeals to a user's precognitive state or attention and are typically associated with background awareness. When there is an abrupt change in the sound, such as changing from a trickle to a waterfall, the user is notified of the change in activity. [0134] Background Awareness [0135] Background awareness is a non-focus output stimulus that allows the user to monitor information without devoting significant attention or cognition. [0136] Example Background Awareness Characterization Values [0137] This characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: the user has no awareness of the computing system/the user has background awareness of the computing system. [0138] Using these values as scale endpoints, the following list is an example background awareness scale. [0139] No background awareness is available. A user's pre-cognitive state is unavailable. [0140] A user has enough background awareness available to the computing system to receive one type of feedback or status. [0141] A user has enough background awareness available to the computing system to receive more than one type of feedback, status and so on. [0142] A user's background awareness is fully available to the computing system. A user has enough background awareness available for the computing system such that they can perceive more than two types of feedback or status from the computing system. [0143] Exemplary UI Design Implementations for Background Awareness [0144] The following list contains examples of UI design implementations for how a computing system might respond to a change in background awareness. [0145] If a user does not have any attention for the computing system, that implies that no input or output are needed. [0146] If a user has enough background awareness available to receive one type of feedback, the UI might: [0147] Present a single light in the peripheral vision of a user. For example, this light can represent the amount of battery power available to the computing system. As the battery life weakens, the light gets dimmer. If the battery is recharging, the light gets stronger. [0148] If a user has enough background awareness available to receive more than one type of feedback, the UI might: [0149] Present a single light in the peripheral vision of the user that signifies available battery power and the sound of water to represent data connectivity. [0150] If a user has full background awareness, then the UI might: [0151] Present a single light in the peripheral vision of the user that signifies available battery power, the sound of water that represents data connectivity, and pressure on the skin to represent the amount of memory available to the computing system. [0152] Task Switched Attention [0153] When the user is engaged in more than one focus task, the user's attention can be considered to be task switched. [0154] Example Task Switched Attention Characterization Values [0155] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints, are: the user does not have any attention for a focus task/the user has full attention for a focus task. [0156] Using these characteristics as the scale endpoints, the following list is an example of a task switched attention scale. [0157] A user does not have any attention for a focus task. [0158] A user does not have enough attention to complete a simple focus task. The time between focus tasks is long. [0159] A user has enough attention to complete a simple focus task. The time between focus tasks is long. [0160] A user does not have enough attention to complete a simple focus task. The time between focus tasks is moderately long. [0161] A user has enough attention to complete a simple focus task. The time between tasks is moderately long. [0162] A user does not have enough attention to complete a simple focus task. The time between focus tasks is short. [0163] A user has enough attention to complete a simple focus task. The time between focus tasks is short. [0164] A user does not have enough attention to complete a moderately complex focus task. The time between focus tasks is long. [0165] A user has enough attention to complete a moderately complex focus task. The time between focus tasks is long. [0166] A user does not have enough attention to complete a moderately complex focus task. The time between focus tasks is moderately long. [0167] A user has enough attention to complete a moderately complex focus task. The time between tasks is moderately long. [0168] A user does not have enough attention to complete a moderately complex focus task. The time between focus tasks is short. [0169] A user has enough attention to complete a moderately complex focus task. The time between focus tasks is short. [0170] A user does not have enough attention to complete a moderately complex focus task. The time between focus tasks is long. [0171] A user has enough attention to complete a complex focus task. The time between focus tasks is long. [0172] A user does not have enough attention to complete a complex focus task. The time between focus tasks is moderately long. [0173] A user has enough attention to complete a complex focus task. The time between tasks is moderately long. [0174] A user does not have enough attention to complete a complex focus task. The time between focus tasks is short. [0175] A user has enough attention to complete a complex focus task. The time between focus tasks is short. [0176] A user has enough attention to complete a very complex, multi-stage focus task before moving to a different focus task. [0177] Parallel [0178] Parallel attention can consist of focus tasks interspersed with routine tasks (focus task+routine task) or a series of routine tasks (routing task+routine task). [0179] Example Parallel Attention Characterization Values [0180] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints, are: the user does not have enough attention for a parallel task/the user has full attention for a parallel task. [0181] Using these characteristics as scale endpoints, the following list is an example of a parallel attention scale. [0182] A user has enough available attention for one routine task and that task is not with the computing system. [0183] A user has enough available attention for one routine task and that task is with the computing system. [0184] A user has enough attention to perform two routine tasks and at least of the routine tasks is with the computing system. [0185] A user has enough attention to perform a focus task and a routine task. At least one of the tasks is with the computing system. [0186] A user has enough attention to perform three or more parallel tasks and at least one of those tasks is in the computing system. [0187] Physical Availability [0188] Physical availability is the degree to which a person is able to perceive and manipulate a device. For example, an airplane mechanic who is repairing an engine does not have hands available to input indications to the computing systems by using a keyboard. [0189] Learning Profile [0190] A user's learning style is based on their preference for sensory intake of information. That is, most users have a preference for which sense they use to assimilate new information. [0191] Example Learning Style Characterization Values [0192] This characterization is enumerated. The following list is an example of learning style characterization values. [0193] Auditory [0194] Visual [0195] Tactile [0196] Exemplary UI Design Implementation for Learning Style [0197] The following list contains examples of UI design implementations for how the computing system might respond to a learning style. [0198] If a user is a auditory learner, the UI might: [0199] Present content to the user by using audio more frequently. [0200] Limit the amount of information presented to a user if these is a lot of ambient noise. [0201] If a user is a visual learner, the UI might: [0202] Present content to the user in a visual format whenever possible. [0203] Use different colors to group different concepts or ideas together. [0204] Use illustrations, graphs, charts, and diagrams to demonstrate content when appropriate. [0205] If a user is a tactile learner, the UI might: [0206] Present content to the user by using tactile output. [0207] Increase the affordance of tactile methods of input (e.g. increase the affordance of keyboards). [0208] Software Accessibility [0209] If an application requires a media-specific plug-in, and the user does not have a network connection, then a user might not be able to accomplish a task. [0210] Example Software Accessibility Characterization Values [0211] This characterization is enumerated. The following list is an example of software accessibility values. [0212] The computing system does not have access to software. [0213] The computing system has access to some of the local software resources. [0214] The computing system has access to all of the local software resources. [0215] The computing system has access to all of the local software resources and some of the remote software resources by availing itself to opportunistic user of software resources. [0216] The computing system has access to all of the local software resources and all remote software resources by availing itself to the opportunistic user of software resources. [0217] The computing system has access to all software resources that are local and remote. [0218] Perception of Solitude [0219] Solitude is a user's desire for, and perception of, freedom from input. To meet a user's desire for solitude, the UI can do things like: [0220] Cancel unwanted ambient noise [0221] Block out human made symbols generated by other humans and machines [0222] Example Solitude Characterization Values [0223] This characterization is scalar, with the minimum range being binary. Example binary values, or scalar endpoints, are: no solitude/complete solitude. [0224] Using these characteristics as scale endpoints, the following list is an example of a solitude scale. [0225] No solitude [0226] Some solitude [0227] Complete solitude [0228] Privacy [0229] Privacy is the quality or state of being apart from company or observation. It includes a user's trust of audience. For example, if a user doesn't want anyone to know that they are interacting with a computing system (such as a wearable computer), the preferred output device might be a head mounted display (HMD) and the preferred input device might be an eye-tracking device. [0230] Hardware Affinity for Privacy [0231] Some hardware suits private interactions with a computing system more than others. For example, an HMD is a far more private output device than a desk monitor. Similarly, an earphone is more private than a speaker. [0232] The UI should choose the correct input and output devices that are appropriate for the desired level of privacy for the user's current context and preferences. [0233] Example Privacy Characterization Values [0234] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints, are: not private/private, public/not public, and public/private. [0235] Using no privacy and fully private as the scale endpoints, the following list is an example privacy characterization scale. [0236] No privacy is needed for input or output interaction [0237] The input must be semi-private. The output does not need to be private. [0238] The input must be fully private. The output does not need to be private. [0239] The input must be fully private. The output must be semi-private. [0240] The input does not need to be private. The output must be fully private. [0241] The input does not need to be private. The output must be semi-private. [0242] The input must be semi-private. The output must be semi-private. [0243] The input and output interaction must be fully private. [0244] Semi-private. The user and at least one other person can have access to or knowledge of the interaction between the user and the computing system. [0245] Fully private. Only the user can have access to or knowledge of the interaction between the user and the computing system. [0246] Exemplary UI Design Implementation for Privacy [0247] The following list contains examples of UI design implementations for how the computing system might respond to a change in task complexity. [0248] If no privacy is needed for input or output interaction: [0249] The UI is not restricted to any particular I/O device for presentation and interaction. For example, the UI could present content to the user through speakers on a large monitor in a busy office. [0250] If the input must be semi-private and if the output does not need to be private, the UI might: [0251] Encourage the user to use coded speech commands or use a keyboard if one is available. There are no restrictions on output presentation. [0252] If the input must be fully private and if the output does not need to be private, the UI might: [0253] Not allow speech commands. There are no restrictions on output presentation. [0254] If the input must be fully private and if the output needs to be semi-private, the UI might: [0255] Not allow speech commands (allow only keyboard commands). Not allow an LCD panel and use earphones to provide audio response to the user. [0256] If the output must be semi-private and if the input does not need to be private, the UI might: [0257] Restrict users to an HMD device and/or an earphone for output. There are no restrictions on input interaction, [0258] If the output must be semi-private and if the input does not need to be private, the UI might: [0259] Restrict users to HMD devices, earphones, and/or LCD panels. There are no restrictions on input interaction. [0260] If the input and output must be semi-private, the UI might: [0261] Encourage the user to use coded speech commands and keyboard methods for input. Output may be restricted to HMD devices, earphones or LCD panels. [0262] If the input and output interaction must be completely private, the UI might: [0263] Not allow speech commands and encourage the user of keyboard methods of input. Output is restricted to HMD devices and/or earphones. [0264] User Expertise [0265] As the user becomes more familiar with the computing system or the UI, they may be able to navigate through the UI more quickly. Various levels of user expertise can be accommodated. For example, instead of configuring all the settings to make an appointment, users can recite all the appropriate commands in the correct order to make an appointment. Or users might be able to use shortcuts to advance or move back to specific screens in the UI. Additionally, expert users may not need as many prompts as novice users. The UI should adapt to the expertise level of the user. [0266] Example User Expertise Characterization Values [0267] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints, are: new user/not new user, not an expert user/expert user, new user/expert user, and novice/expert. [0268] Using novice and expert as scale endpoints, the following list is an example user expertise scale. [0269] The user is new to the computing system and to computing in general. [0270] The user is new to the computing system and is an intermediate computer user. [0271] The user is new to the computing system, but is an expert computer user. [0272] The user is an intermediate user in the computing system. [0273] The user is an expert user in the computing system. [0274] Exemplary UI Design Implementation for User Expertise [0275] The following are characteristics of an exemplary audio UI design for novice and expert computer users. [0276] The computing system speaks a prompt to the user and waits for a response. [0277] If the user responds in x seconds or less, then the user is an expert. The computing system gives the user prompts only. [0278] If the user responds in >x seconds, then the user is a novice and the computing system begins enumerating the choices available. [0279] This type of UI design works well when more than 1 user accesses the same computing system and the computing system and the users do not know if they are a novice or an expert. [0280] Language [0281] User context may include language, as in the language they are currently speaking (e.g. English, German, Japanese, Spanish, etc.). [0282] Example Language Characterization Values [0283] This characteristic is enumerated. Example values include: [0284] American English [0285] British English [0286] German [0287] Spanish [0288] Japanese [0289] Chinese [0290] Vietnamese [0291] Russian [0292] French [0293] Computing System [0294] This section describes attributes associated with the computing system that may cause a UI to change. [0295] Computing Hardware Capability [0296] For purposes of user interfaces designs, there are four categories of hardware: [0297] Input/output devices [0298] Storage (e.g. RAM) [0299] Processing capabilities [0300] Power supply [0301] The hardware discussed in this topic can be the hardware that is always available to the computing system. This type of hardware is usually local to the user. Or the hardware could sometimes be available to the computing system. When a computing system uses resources that are sometimes available to it, this can be called an opportunistic use of resources. [0302] Storage [0303] Storage capacity refers to how much random access memory (RAM) is available to the computing system at any given moment. This number is not considered to be constant because the computing system might avail itself to the opportunistic use of memory. [0304] Usually the user does not need to be aware of how much storage is available unless they are engaged in a task that might require more memory than to which they reliably have access. This might happen when the computing system engages in opportunistic use of memory. For example, if an in-motion user is engaged in a task that requires the opportunistic use of memory and that user decides to change location (e.g. they are moving from their vehicle to a utility pole where they must complete other tasks), the UI might warn the user that if they leave the current location, the computing system may not be able to complete the task or the task might not get completed as quickly. [0305] Example Storage Characterization Values [0306] This UI characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: no RAM is available/all RAM is available. [0307] Using no RAM is available and all RAM is available, the following table lists an example storage characterization scale. Scale attribute Implication No RAM is available to the If no RAM is available, there is computing system no UI available.-Or-There is no change to the UI. Of the RAM available to the The UI is restricted to the computing system, only the opportunistic use of RAM. opportunistic use of RAM is available. Of the RAM that is available to The UI is restricted to using the computing system, only the local local RAM. RAM is accessible Of the RAM that is available to The UI might warn the user the computing system, the local RAM is that if they lose available and the user is about to lose opportunistic use of memory, opportunistic use of RAM. the computing system might not be able to complete the task, or the task might not be completed as quickly Of the total possible RAM If there is enough memory available to the computing system, all available to the computing of it is available. system to fully function at a high level, the UI may not need to inform the user. If the user indicates to the computing system that they want a task completed that requires more memory, the UI might suggest that the user change locations to take advantage of additional opportunistic use of memory. [0308] Processing Capabilities [0309] Processing capabilities fall into two general categories: [0310] Speed. The processing speed of a computing system is measured in megahertz (MHz). Processing speed can be reflected as the rate of logic calculation and the rate of content delivery. The more processing power a computing system has, the faster it can calculate logic and deliver content to the user. [0311] CPU usage. The degree of CPU usage does not affect the UI explicitly. [0312] With current UI design, if the CPU becomes too busy, the UI Typically “freezes” and the user is unable to interact with the computing system. If the CPU usage is too high, the UI will change to accommodate the CPU capabilities. For example, if the processor cannot handle the demands, the UI can simplify to reduce demand on the processor. [0313] Example Processing Capability Characterization Values [0314] This UI characterization is scalar, with the minimum range being binary. Example binary or scale endpoints are: no processing capability is available/all processing capability is available. [0315] Using no processing capability is available and all processing capability as scale endpoints, the following table lists an example processing capability scale. Scale attribute Implication No processing power is There is no change to the UI available to the comput- ing system The computing system has The UI might be audio or text access to a slower speed CPU. only. The computing system has The UI might choose to use access to a high speed CPU video in the presentation instead of a still picture. The computing system has There are no restrictions on the access to and control of all UI based on processing power. processing power available to the computing system. [0316] Power Supply [0317] There are two types of power supplies available to computing systems: alternating current (AC) and direct current (DC). Specific scale attributes for AC power supplies are represented by the extremes of the exemplary scale. However, if a user is connected to an AC power supply, it may be useful for the UI to warn an in-motion user when they're leaving an AC power supply. The user might need to switch to a DC power supply if they wish to continue interacting with the computing system while in motion. However, the switch from AC to DC power should be an automatic function of the computing system and not a function of the UI. [0318] On the other hand, many computing devices, such as wearable personal computers (WPCs), laptops, and PDAs, operate using a battery to enable the user to be mobile. As the battery power wanes, the UI might suggest the elimination of video presentations to extend battery life. Or the UI could display a VU meter that visually demonstrates the available battery power so the user can implement their preferences accordingly. [0319] Example Power Supply Characterization Values [0320] This task characterization is binary if the power supply is AC and scalar if the power supply is DC. Example binary values are: no power/full power. Example scale endpoints are: no power/all power. [0321] Using no power and full power as scale endpoints, the following list is an example power supply scale. [0322] There is no power to the computing system. [0323] There is an imminent exhaustion of power to the computing system. [0324] There is an inadequate supply of power to the computing system. [0325] There is a limited, but potentially inadequate supply of power to the computing system. [0326] There is a limited but adequate power supply to the computing system. [0327] There is an unlimited supply of power to the computing system. [0328] Exemplary UI Design Implementations for Power Supply [0329] The following list contains examples of UI design implementations for how the computing system might respond to a change in the power supply capacity. [0330] If there is minimal power remaining in a battery that is supporting a computing system, the UI might: [0331] Power down any visual presentation surfaces, such as an LCD. [0332] Use audio output only. [0333] If there is minimal power remaining in a battery and the UI is already audio-only, the UI might: [0334] Decrease the audio output volume. [0335] Decrease the number of speakers that receive the audio output or use earplugs only. [0336] Use mono versus stereo output. [0337] Decrease the number of confirmations to the user. [0338] If there is, for example, six hours of maximum-use battery life available and the computing system determines that the user not have access to a different power source for 8 hours, the UI might: [0339] Decrease the luminosity of any visual display by displaying line drawings instead of 3-dimensional illustrations. [0340] Change the chrominance from color to black and white. [0341] Refresh the visual display less often. [0342] Decrease the number of confirmations to the user. [0343] Use audio output only. [0344] Decrease the audio output volume. [0345] Computing Hardware Characteristics [0346] The following is a list of some of the other hardware characteristics that may be influence what is an optimal UI design. [0347] Cost [0348] Waterproof [0349] Ruggedness [0350] Mobility [0351] Again, there are other characteristics that could be added to this list. However, it is not possible to list all computing hardware attributes that might influence what is considered to be an optimal UI design until run time. [0352] Bandwidth [0353] There are different types of bandwidth, for instance: [0354] Network bandwidth [0355] Inter-device bandwidth [0356] Network Bandwidth [0357] Network bandwidth is the computing system's ability to connect to other computing resources such as servers, computers, printers, and so on. A network can be a local area network (LAN), wide area network (WAN), peer-to-peer, and so on. For example, if the user's preferences are stored at a remote location and the computing system determines that the remote resources will not always be available, the system might cache the user's preferences locally to keep the UI consistent. As the cache may consume some of the available RAM resources, the UI might be restricted to simpler presentations, such as text or audio only. [0358] If user preferences cannot be cached, then the UI might offer the user choices about what UI design families are available and the user can indicate their design family preference to the computing system. [0359] Example Network Bandwidth Characterization Values [0360] This UI characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: no network access/full network access. [0361] Using no network access and full network access as scale endpoints, the following table lists an example network bandwidth scale. Scale attribute Implication The computing system does not The UI is restricted to using local have a connection to network computing resources only. If user resources. preferences are stored remotely, then the UI might not account for user preferences. The computing system has an The UI might warn the user that unstable connection to the connection to remote resources network resources might be interrupted. The UI might ask the user if they want to cache appropriate information to accommodate for the unstable connection to network resources. The computing system has a The UI might simplify, such as slow connection to network offer audio or text only, to resources accommodate for the slow connection. Or the computing system might cache appropriate data for the UI so the UI can always be optimized without restriction of the slow connection. The computing system has a In the present moment, the UI high speed, yet limited (by does not have any restrictions based time) access to network on access to network resources. If the resources computing system determines that it will lose a network connection, then the UI can warn the user and offer choices, such as does the user want to cache appropriate information, about what to do. The computing system has a There are no restrictions to the very high-speed connection UI based on access to network to network resources. resources. The UI can offer text, audio, video, haptic output, and so on. [0362] Inter-Device Bandwidth [0363] Inter-device bandwidth is the ability of the devices that are local to the user to communicate with each other. Inter-device bandwidth can affect the UI in that if there is low inter-device bandwidth, then the computing system cannot compute logic and deliver content as quickly. Therefore, the UI design might be restricted to a simpler interaction and presentation, such as audio or text only. If bandwidth is optimal, then there are no restrictions on the UI based on bandwidth. For example, the UI might offer text, audio, and 3-D moving graphics if appropriate for the user's context. [0364] Example Inter-Device Bandwidth Characterization Values [0365] This UI characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: no inter-device bandwidth/full inter-device bandwidth. [0366] Using no inter-device bandwidth and full inter-device bandwidth as scale endpoints, the following table lists an example inter-device bandwidth scale. Scale attribute Implication The computing system does not Input and output is restricted to have inter-device connectivity. each of the disconnected devices. The UI is restricted to the capability of each device as a stand-alone device. Some devices have connectivity It depends and others do not. The computing system has The task that the user wants to slow inter-device bandwidth. complete might require more bandwidth that is available among devices. In this case, the UI can offer the user a choice. Does the user want to continue and encounter slow performance? Or, does the user want to acquire more bandwidth by moving to a different location and taking advantage of opportunistic use of bandwidth? The computing system has fast There are few, if any, restrictions inter-device bandwidth. on the interaction and presentation between the user and the computing system. The UI sends a warning message only if there is not enough bandwidth between devices. The computing system has very There are no restrictions on the high-speed inter-device UI based on inter-device connectivity. connectivity. [0367] Context Availability [0368] Context availability is related to whether the information about the model of the user context is accessible. If the information about the model of the context is intermittent, deemed inaccurate, and so on, then the computing system might not have access to the user's context. [0369] Example Context Availability Characterization Values [0370] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: context not available/context available. [0371] Using context not available and context available as scale endpoints, the following list is an example context availability scale. [0372] No context is available to the computing system [0373] Some of the user's context is available to the computing system. [0374] A moderate amount of the user's context is available to the computing system. [0375] Most of the user's context is available to the computing system. [0376] All of the user's context is available to the computing system [0377] Exemplary UI Design for Context Availability [0378] The following list contains examples of UI design implementations for how the computing system might respond to a change in context availability. [0379] If the information about the model of context is intermittent, deemed inaccurate, or otherwise unavailable, the UI might: [0380] Stay the same. [0381] Ask the user if the UI needs to change. [0382] Infer a UI from a previous pattern if the user's context history is available. [0383] Change the UI based on all other attributes except for user context (e.g. I/O device availability, privacy, task characteristics, etc.) [0384] Use a default UI. [0385] Opportunistic Use of Resources [0386] Some UI components, or other enabling UI content, may allow acquisition from outside sources. For example, if a person is using a wearable computer and they sit at a desk that has a monitor on it, the wearable computer might be able to use the desktop monitor as an output device. [0387] Example Opportunistic Use of Resources Characterization Scale [0388] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints, are: no opportunistic use of resources/use of all opportunistic resources. [0389] Using these characteristics, the following list is an example of an opportunistic use of resources scale. [0390] The circumstances do not allow for the opportunistic use of resources in the computing system. [0391] Of the resources available to the computing system, there is a possibility to make opportunistic use of resources. [0392] Of the resources available to the computing system, the computing system can make opportunistic use of most of the resources. [0393] Of the resources available to the computing system, all are accessible and available. [0394] Content [0395] Content is defined as information or data that is part of or provided by a task. Content, in contrast to UI elements, does not serve a specific role in the user/computer dialog. It provides informative or entertaining information to the user. It is not a control. For example a radio has controls (knobs, buttons) used to choose and format (tune a station, adjust the volume & tone) of broadcasted audio content. [0396] Sometimes content has associated metadata, but it is not necessary. [0397] Example content characterization values [0398] Quality [0399] Static/streamlined [0400] Passive/interactive [0401] Type [0402] Output device required [0403] Output device affinity [0404] Output device preference [0405] Rendering software [0406] Implicit. The computing system can use characteristics that can be inferred from the information itself, such as message characteristics for received messages. [0407] Source. A type or instance of carrier, media, channel or network path [0408] Destination. Address used to reach the user (e.g., a user typically has multiple address, phone numbers, etc.) [0409] Message content. (parseable or described in metadata) [0410] Data format type. [0411] Arrival time. [0412] Size. [0413] Previous messages. Inference based on examination of log of actions on similar messages. [0414] Explicit. Many message formats explicitly include message-characterizing information, which can provide additional filtering criteria. [0415] Title. [0416] Originator identification. (e.g., email author) [0417] Origination date & time [0418] Routing. (e.g., email often shows path through network routers) [0419] Priority [0420] Sensitivity. Security levels and permissions [0421] Encryption type [0422] File format. Might be indicated by file name extension [0423] Language. May include preferred or required font or font type [0424] Other recipients (e.g., email cc field) [0425] Required software [0426] Certification. A trusted indication that the offer characteristics are dependable and accurate. [0427] Recommendations. Outside agencies can offer opinions on what information may be appropriate to a particular type of user or situation. [0428] Security [0429] Controlling security is controlling a user's access to resources and data available in a computing system. For example when a user logs on a network, they must supply a valid user name and password to gain access to resource on the network such as, applications, data, and so on. [0430] In this sense, security is associated with the capability of a user or outside agencies in relation to a user's data or access to data, and does not specify what mechanisms are employed to assure the security. [0431] Security mechanisms can also be separately and specifically enumerated with characterizing attributes. [0432] Permission is related to security. Permission is the security authorization presented to outside people or agencies. This characterization could inform UI creation/selection by giving a distinct indication when the user is presented information that they have given permission to others to access. [0433] Example Security Characterization Values [0434] This characteristic is scalar, with the minimum range being binary. Example binary values, or scale endpoints are: no authorized user access/all user access, no authorized user access/public access, and no public access/public access. [0435] Using no authorized user access and public access as scale endpoints, the following list is an example security scale. [0436] No authorized access. [0437] Single authorized user access. [0438] Authorized access to more than one person [0439] Authorized access for more than one group of people [0440] Public access [0441] Single authorized user only access. The only person who has authorized access to the computing system is a specific user with valid user credentials. [0442] Public access. There are no restrictions on who has access to the computing system. Anyone and everyone can access the computing system. [0443] Exposing Characterization of User's UI Needs [0444] There are many ways to expose user UI need characterizations to the computing system. This section describes some of the ways in which this can be accomplished. [0445] Numeric Key [0446] A context characterization can be exposed to the system with a numeric value corresponding to values of a predefined data structure. [0447] For instance, a binary number can have each of the bit positions associated with a specific characteristic. The least significant bit may represent the need for a visual display device capable of displaying at least 24 characters of text in an unbroken series. Therefore a UI characterization of decimal 5 would require such a display to optimally display its content. [0448] XML Tags [0449] A UI's characterization can be exposed to the system with a string of characters conforming to the XML structure. [0450] For instance, a context characterization might be represented by the following: [0451] <Context Characterization>
[0452] <Theme>Work </Theme>
[0453] <Bandwidth>High Speed LAN Network Connection</Bandwidth>
[0454] <Field of View>28�</Field of View>
[0455] <Privacy>None </Privacy>
[0456] </Context Characterization>
[0457] One significant advantage of the mechanism is that it is easily extensible. [0458] Programming Interface [0459] A context characterization can be exposed to the computing system by associating the design with a specific program call. [0460] For instance: [0461] GetSecureContext can return a handle to the computing system that describes a UI a high security user context. [0462] Name/Value Pairs [0463] A user's UI needs can be modeled or represented with multiple attributes that each correspond to a specific element of the context (e.g., safety, privacy, or security), and the value of an attribute represents a specific measure of that element. For example, for an attribute that represents the a user's privacy needs, a value of “5” represents a specific measurement of privacy. Each attribute preferably has the following properties: a name, a value, an uncertainty level, and a timestamp. For example, the name of the privacy attribute may be “User Privacy” and its value at a particular time may be 5. Associated with the current value may be a timestamp of 08/01/2001 13:07 PST that indicates when the value was generated, and an uncertainty level of +/−1 degrees. [0464] How to Expose Manual Characterization [0465] The UI Designer or other person manually and explicitly determines the task characteristic values. For example, XML metadata could be attached to a UI design that explicitly characterizes it as “private” and “very secure.”
[0466] Manual and Automatic Characterization [0467] A UI Designer or other person could manually and explicitly determine a task characteristic and the computing system could automatically derive additional values from the manual characterization. For example, if a UI Designer characterized cognitive load as “high,” then the computing system might infer that the values of task complexity and task length are “high” and “long,” respectively. [0468] Automatic Characterization [0469] The following list contains some ways in which the previously described methods of task characterization could be automatically exposed to the computing system. [0470] The computing system examines the structure of the task and automatically evaluates calculates the task characterization method. For example, an application could evaluate how many steps there are in a wizard to task assistant to determine task complexity. The more steps, the higher the task complexity. [0471] The computing system could apply patterns of use to establish implicit characterizations. For example, characteristics can be based on historic use. A task could have associated with is a list of selected UI designs. A task could therefore have an arbitrary characteristic, such as “activity” with associated values, such as “driving.” A pattern recognition engine determines a predictive correlation using a mechanism such as neural networks. [0472] Characterizing a Task's UI Requirements [0473] For a system to accurately determine an optimal UI design for a user's current computing context, it should be able to determine the task function including the dialog elements, content, task sequence, user requirements, choices in task and the choices about the task. This disclosure describes an explicit extensible method to characterize tasks executed with the assistance of a computing system. Computer UIs are designed to allow the interaction between users and computers for a wide range of system configurations and user situations. In general, any task characterizations can be considered if they are exposed in a way that the system can interpret. Therefore there are three aspects [0474] What task characteristics are exposed?
[0475] What are the methods to characterize the tasks?
[0476] How are task characteristics exposed to the computing system?
[0477] Task Characterizations [0478] A task is a user-perceived objective comprising steps. The topics in this section enumerate some of the important characteristics that can be used to describe tasks. In general, characterizations are needed only if they require a change in the UI design. [0479] The topics in this section include examples of task characterizations, example characterization values, and in some cases, example UI designs or design characteristics. [0480] Task Length [0481] Whether a task is short or long depends upon how long it takes a target user to complete the task. That is, a short task takes a lesser amount of time to complete than a long task. For example, a short task might be creating an appointment. A long task might be playing a game of chess. [0482] Example Task Length Characterization Values [0483] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: short/not short, long/not long, or short/long. [0484] Using short/long as scale endpoints, the list is an example task length scale. [0485] The task is very short and can be completed in 30 seconds or less [0486] The task is moderately short and can be completed in 31-60 seconds. [0487] The task is short and can be completed in 61-90 seconds. [0488] The task is slightly long and can be completed in 91-300 seconds. [0489] The task is moderately long and can be completed in 301-1,200 seconds. [0490] The task is long and can be completed in 1,201-3,600 seconds. [0491] The task is very long and can be completed in 3,601 seconds or more. [0492] Task Complexity [0493] Task complexity is measured using the following criteria: [0494] Number of elements in the task. The greater the number of elements, the more likely the task is complex. [0495] Element interrelation. If the elements have a high degree of interrelation, then the more likely the task is complex. [0496] User knowledge of structure. If the structure, or relationships, between the elements in the task is unclear, then the more likely the task is considered to be complex. [0497] If a task has a large number of highly interrelated elements and the relationship between the elements is not known to the user, then the task is considered to be complex. On the other hand, if there are a few elements in the task and their relationship is easily understood by the user, then the task is considered to be well-structured. Sometimes a well-structured task can also be considered simple. [0498] Example Task Complexity Characterization Values [0499] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: simple/not simple, complex/not complex, simple/complex, well-structured/not well-structured, or well-structured/complex. [0500] Using simple/complex as scale endpoints, the list is an example task complexity scale. [0501] There is one, very simple task composed of 1-5 interrelated elements whose relationship is well understood. [0502] There is one simple task composed of 6-10 interrelated elements whose relationship is understood. [0503] There is more than one very simple task and each task is composed of 1-5 elements whose relationship is well understood. [0504] There is one moderately simple task composed of 11-15 interrelated elements whose relationship is 80-90% understood by the user. [0505] There is more than one simple task and each task is composed of 6-10 interrelated whose relationship is understood by the user. [0506] There is one somewhat simple task composed of 16-20 interrelated elements whose relationship is understood by the user. [0507] There is more than one moderately simple task and each task is composed of 11-15 interrelated elements whose relationship is 80-90% understood by the user. [0508] There is one complex task complex task composed of 21-35 interrelated elements whose relationship is 60-79% understood by the user. [0509] There is more than one somewhat complex task and each task is composed of 16-20 interrelated elements whose relationship is understood by the user. [0510] There is one moderately complex task composed of 36-50 elements whose relationship is 80-90% understood by the user. [0511] There is more than one complex task and each task is composed of 21-35 elements whose relationship is 60-79% understood by the user. [0512] There is one very complex task composed of 51 or more elements whose relationship is 40-60% understood by the user. [0513] There is more than one complex task and each task is composed of 36-50 elements whose relationship is 40-60% understood by the user. [0514] There is more than one very complex task and each part is composed of 51 or more elements whose relationship is 20-40% understood by the user. [0515] Exemplary UI Design Implementation for Task Complexity [0516] The following list contains examples of UI design implementations for how the computing system might respond to a change in task complexity. [0517] For a task that is long and simple (well-structured), the UI might: [0518] Give prominence to information that could be used to complete the task. [0519] Vary the text-to-speech output to keep the user's interest or attention. [0520] For a task that is short and simple, the U might: [0521] Optimize to receive input from the best device. That is, allow only input that is most convenient for the user to use at that particular moment. [0522] If a visual presentation is used, such as an LCD panel or monitor, prominence may be implemented using visual presentation only. [0523] For a task that is long and complex, the UI might: [0524] Increase the orientation to information and devices [0525] Increase affordance to pause in the middle of a task. That is, make it easy for a user to stop in the middle of the task and then return to the task. [0526] For a task that is short and complex, the UI might: [0527] Default to expert mode. [0528] Suppress elements not involved in choices directly related to the current task. [0529] Change modality [0530] Task Familiarity [0531] Task familiarity is related to how well acquainted a user is with a particular task. If a user has never completed a specific task, they might benefit from more instruction from the computing environment than a user who completes the same task daily. For example, the first time a car rental associate rents a car to a consumer, the task is very unfamiliar. However, after about a month, the car rental associate is very familiar with renting cars to consumers. [0532] Example Task Familiarity Characterization Values [0533] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: familiar/not familiar, not unfamiliar/unfamiliar, and unfamiliar/familiar. [0534] Using unfamiliar and familiar as scale endpoints, the list is an example task familiarity scale. [0535] On a scale of 1 to 5, where one is very unfamiliar and 5 is very familiar, the task familiarity rating is 1. [0536] On a scale of 1 to 5, where one is very unfamiliar and 5 is very familiar, the task familiarity rating is 2. [0537] On a scale of 1 to 5, where one is very unfamiliar and 5 is very familiar, the task familiarity rating is 3. [0538] On a scale of 1 to 5, where one is very unfamiliar and 5 is very familiar, the task familiarity rating is 4. [0539] On a scale of 1 to 5, where one is very unfamiliar and 5 is very familiar, the task familiarity rating is 5. [0540] Exemplary UI Design Implementation for Task Familiarity [0541] The following list contains examples of UI design implementations for how the computing system might respond to a change in task familiarity. [0542] For a task that is unfamiliar, the UI might: [0543] Increase task orientation to provide a high level schema for the task. [0544] Offer detailed help. [0545] Present the task in a greater number of steps. [0546] Offer more detailed prompts. [0547] Provide information in as many modalities as possible. [0548] For a task that is familiar, the UI might: [0549] Decrease the affordances for help [0550] Offer summary help [0551] Offer terse prompts [0552] Decrease the amount of detail given to the user [0553] Use auto-prompt and auto-complete (that is, make suggestions based on past choices made by the user). [0554] The ability to barge ahead is available. [0555] Use user-preferred modalities. [0556] Task Sequence [0557] A task can have steps that must be performed in a specific order. For example, if a user wants to place a phone call, the user must dial or send a phone number before they are connected to and can talk with another person. On the other hand, a task, such as searching the Internet for a specific topic, can have steps that do not have to be performed in a specific order. [0558] Example Task Sequence Characterization Values [0559] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: scripted/not scripted, nondeterministic/not nondeterministic, or scripted/nondeterministic. [0560] Using scripted/nondeterministic as scale endpoints, the following list is an example task sequence scale. [0561] The each step in the task is completely scripted. [0562] The general order of the task is scripted. Some of the intermediary steps can be performed out of order. [0563] The first and last steps of the task are scripted. The remaining steps can be performed in any order. [0564] The steps in the task do not have to be performed in any order. [0565] Exemplary UI Design Implementation for Task Sequence [0566] The following list contains examples of UI design implementations for how the computing system might respond to a change in task sequence. [0567] For a task that is scripted, the UI might: [0568] Present only valid choices. [0569] Present more information about a choice so a user can understand the choice thoroughly. [0570] Decrease the prominence or affordance of navigational controls. [0571] For a task that is nondeterministic, the UI might: [0572] Present a wider range of choices to the user. [0573] Present information about the choices only upon request by the user. [0574] Increase the prominence or affordance of navigational controls [0575] Task Independence [0576] The UI can coach a user though a task or the user can complete the task without any assistance from the UI. For example, if a user is performing a safety check of an aircraft, the UI can coach the user about what questions to ask, what items to inspect, and so on. On the other hand, if the user is creating an appointment or driving home, they might not need input from the computing system about how to successfully achieve their objective. [0577] Example Task Independence Characterization Values [0578] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints are: coached/not coached, not independently executed/independently executed, or coached/independently executed. [0579] Using coached/independently executed as scale endpoints, the following list is an example task guidance scale. [0580] The each step in the task is completely scripted. [0581] The general order of the task is scripted. Some of the intermediary steps can be performed out of order. For example, the first and last steps of the task are scripted and the remaining steps can be performed in any order. [0582] The steps in the task do not have to be performed in any order. [0583] Task Creativity [0584] A formulaic task is a task in which the computing system can precisely instruct the user about how to perform the task. A creative task is a task in which the computing system can provide general instructions to the user, but the user uses their knowledge, experience, and/or creativity to complete the task. For example, the computing system can instruct the user about how to write a sonnet. However, the user must ultimately decide if the combination of words is meaningful or poetic. [0585] Example Task Creativity Characterization Values [0586] This task characterization is scalar, with the minimum range being binary. Example binary values or scale endpoints could be defined as formulaic/not formulaic, creative/not creative, or formulaic/creative. [0587] Using formulaic and creative as scale endpoints, the following list is an example task creativity scale. [0588] On a scale of 1 to five, where 1 is formulaic and 5 is creative, the task creativity rating is 1. [0589] On a scale of 1 to five, where 1 is formulaic and 5 is cr