The present invention relates to help content and/or Active Content Wizards (ACW's) in software applications. More specifically, the present invention relates to methods of aiding a user in discovering tasks which can be executed with the use of help content or ACW's.
Graphical User Interfaces (GUIs) provide a visual representation of all the features available in an application. If a user knows where to browse and look for things, he or she can see what's possible (i.e., what tasks can be completed, etc.). For a user who knows where something is, and can remember it, GUIs are very predictable and controllable.
GUI's are optimized for efficiency. Widgets (i.e., tabs, check boxes, slide bars, buttons, and other UI control elements), words, and icons are better for recognition than using language. It can be faster to recognize the symbol B than it is to recognize the command “Make this bold” if the user knows what he or she is looking for. Additionally, a lot more small buttons can be fit on the screen than can 5 to 7 word commands.
As the number of features supported by software applications, application suites and operating systems increases, features get buried under dropdowns, context menus, dialogs etc. Novices and sometimes even advanced users find it difficult to understand the actions available to them when using the application. They also fail to find features that they know must be there, because the controls to access them are difficult to find.
To find out how to use a feature that they know exists, users:
To discover what features exist that they might want to use, users:
The current solution to providing user assistance is to bundle help topics with the application that document what is possible and how to accomplish users' goals using the widgets in the GUI. These topics are written in language that users understand. Also, help topics can be easily updated and can be added after the application has shipped. However, there are a number of problems with help topics that makes this less valuable to users than it should be.
ACW's address the issue of the lack of actionability of traditional help content. ACW's generally include code, in one form or another, to interact with the user interface, to essentially play a help topic for a user directly to the user interface. Thus, while an ACW is interacting with the user interface to execute a task on behalf of a user, the ACW will also provide a description to the user regarding the interaction. During playback, the ACW may allow the user to interact with the user interface to enter specific information, such as a filename, etc. ACW's are described, for example, in the above-referenced U.S. patent application Ser. No. 10/337,745, filed Jan. 7, 2003, entitled Active Content Wizard: Execution of Tasks and Structured Content, and published on Jul. 8, 2004 as Publication No. US 2004/0130572 A1.
ACW's are very useful tools for users in that the user can both have a task automatically executed, and can learn how to execute the task themselves by watching the execution of individual steps. However, even with ACW's provided to automatically execute tasks, the above-described problem of users not knowing what features are available still remains.
The present invention provides solutions to one or more of the above-described problems and/or provides other advantages over the prior art.
A computer implemented method of suggesting tasks to a user based upon their graphical user interface (GUI) browsing behavior is provided. In the method, a GUI element is selected or identified based upon the user's browsing behavior, for example based upon the user hovering a pointer over the GUI element. Based upon the selected GUI element, a subset of a plurality of automatically executable procedural help topics is identified. Then, a list of the identified subset of automatically executable procedural help topics is displayed to the user. In displaying the list to the user, in some embodiments, names of the automatically executable procedural help topics are displayed.
Displaying the names of the help topics can comprise, in exemplary embodiments, displaying names of tasks. When the user clicks on the task, an Active Content Wizard (ACW) executes only the remaining steps. For example, consider a task with name N, the steps of which require the user to click on Tools, then Options, then X, then Y, then Z. If the user has already performed (clicked on) Tools and Options, then finds the name N in the list and clicks on it, the ACW will just execute the steps of clicking on X, Y and Z since the user has already done the first two steps in the procedure.
Other features and benefits that characterize embodiments of the present invention will be apparent upon reading the following detailed description and review of the associated drawings.
The present invention includes methods, systems and concepts for aiding a user in discovering tasks which can be executed with the help of help content or ACW's. Prior to describing the present invention in greater detail, one exemplary environment in which the invention can be used will be discussed.
I. Exemplary Environment
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 110 through input devices such as a keyboard 162, a microphone 163, and a pointing device 161, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. The logical connections depicted in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
The present invention includes a lightweight solution to presenting user assistance that allows the user to browse help in context with the GUI. This solution is embodied in methods and systems, for example as described in the following illustrative embodiments. This solution—which is referred to here as “What can I do now?”—uses widgets in the GUI as a way of accessing help. This, along with ACW technology, makes help contextual and actionable. Widgets, as used hereafter, refers to UI control elements such as tabs, buttons, slide bars, icons, selectable menu items, check boxes, text boxes, and other UI elements which can be clicked on, typed on, or otherwise selected and manipulated to carry out a task.
The solution provided by the present invention builds a data structure that takes procedural help topics, and maps them to the GUI. Using this data structure, users' UI-browsing experiences can be radically improved. This data structure can be used to get the following benefits:
For the end-user:
See lists of tasks they can do, while browsing.
Learn about relevant and interesting (to them!) features, that they didn't know about.
More efficiently perform actions that have many steps.
For the product team:
The invention is not difficult to implement, and results in almost zero incremental authoring costs.
The invention provides a solution which scales well and feels predictable to the end user, yet is powerful.
The proposed solution, “What can I do now?” will help end users of the application with the following questions:
In complex GUI applications, users have a very hard time finding features of the application. For example in Microsoft Office, it is very hard to add new features as the GUI is saturated. In fact the top 10 most frequently requested features in Microsoft Office already exist in Office, but users do not know about them. The present invention enhances or increases the discoverability of features in GUI applications. Further, the present invention provides a very useful way for users of applications to launch tasks and get their work done. Users can browse the application for tasks of interest and launch them.
Currently, when users are unable to figure out how to accomplish something using the GUI, they are forced to switch context to a help place. “What can I do now?” is a better UI browsing experience in such a situation as it presents assistance in language which is easy for the users to understand, and is in context to browsing the UI. Also, “What can I do now?” is a very light-weight solution and can be updated to present newer help topics and other changes after the application has shipped. “What can I do now?” can be used to list and launch traditional help topics, as well as Active Content Wizard (ACW) executable help topics.
A description of ACW's and ACW technology is provided, for example, in the above-referenced U.S. patent application Ser. No. 10/337,745, filed Jan. 7, 2003, entitled Active Content Wizard: Execution of Tasks and Structured Content, and published on Jul. 8, 2004 as Publication No. US 2004/0130572 A1. In summary, ACW technology allows application authors to write executable help topics. Active Content Wizards store UI automation information about each UI element in the procedure. The recorded scripts can be played back by the ACW runtime engine to either show the user how to complete the task or to do it automatically on their behalf. Further, these recorded scripts can be annotated with state information, so that the help topic/ACW script is aware of context (such as the SKU, domain vs. workgroup, whether the computer is connected to Internet, whether the computer has a document open, etc.).
A typical ACW procedural help topic contains steps that perform actions on the GUI. For example, an ACW script to set the security settings to high in Microsoft Word would click on the Tools button, then click Options, select the Security tab, click Macro Security, select the Security Level tab, and select the checkbox for High. The only useful action here is checking on the final checkbox, but the user still has to perform all the other steps to get to it. This is typical of complex applications where there are a large number of UI elements that are only for navigation.
In accordance with exemplary embodiments of the present invention, each UI element or widget is defined to be a node in a graph. Each node is connected to another if there is a step in an ACW help topic (or in a traditional help topic) where the two UI elements are in a sequence. Therefore, in the above security example, an edge would be added from the Tools node to the Options node (since the procedure involves clicking the Tools menu, followed by the Options sub-menu). Terminal points of this graph are the final nodes in the procedures: the checkboxes that actually set a value, the text boxes where values are stored, the buttons where choices are really committed. A terminal node will correspond to the final step in a procedural help topic.
Taking the union of all such procedural help topics, the graph can be generated. In an example embodiment, an excerpt of such a graph for Microsoft Word could be as illustrated in graph 200 shown in
As a further example of the graph generation process in which the nodes are connected if there is a step in a help topic where the two UI elements are accessed in sequence, note that for the above security example, an edge 203 is added between tools node 202 and options node 204 since the procedure involves clicking the Tools menu, followed by the Options sub-menu). Edges are similarly added for all steps in ACW help topics to build graph 200.
The graph data structure can be programmatically constructed by parsing and combining the ACW script files. This requires no extra effort from application authors—they just create their ACW scripts, and the graph can be constructed from that corpus.
What Can I Do Now?
Once graph data structure 200/300 has been created, each of the leaf nodes represents a feature that a user might be interested in. So, when a user is browsing the GUI, say when they hover over the menu item Find in Microsoft Word, they can automatically be shown all tasks that can be accomplished using that UI element. To accomplish this, the user is shown all UI elements (or corresponding descriptions) associated with the leaf nodes that are below that node (corresponding to the Find UI element) in the graph. Effectively, this makes browsing much more useful, since instead of simply seeing the word “Find”, the user can see “Search for words that sound like a given word”, “Search for text using wildcards”, “Find all forms of a given word”, etc.
Referring now to
Referring now to the screen shot illustrated in
The “What can I do now?” concepts of the present invention are very effective when the user is not very sure how to accomplish some task or when they are trying to learn what features are available in the application. When they already know what are doing, it can be distracting and can easily be turned off.
Conditions
Many procedures have pre-conditions. For example, if the user does not have the Japanese language pack installed, the procedure “Add emphasis to Japanese characters” does not make sense. The graphs corresponding data structures can be constructed so that only those procedures or tasks whose pre-conditions are true (or met) are shown.
Procedures Based on Document Context
A number of procedures require slots to be filled in. For example, to “Split cells in a table”, the user needs to select a cell in the table. This information can be authored as part of the ACW script as a user action. (For example: Step 1: Select the cell you want to split. Step 2: Click Table, click Split Cells.). Thus when the user selects an object in the document that is a slot value to a task, “What can I do now?” can display tasks that take the object as a slot. For example, if the cursor or is inside a table cell, “What can I do now?” can show the tasks “Split cells in a table”, “Format the table” etc. These are further examples of imposing conditions on the “What can I do now?” concepts of the present invention.
Referring now to the screen shot illustrated in
To summarize, the “What can I do now?” technology, the graph data structure includes a reverse mapping of some or all of the authored ACW scripts. Typically, ACW scripts include:
The graph can be constructed such that the GUI will display the script title whenever:
Other extensions to the general concepts described above are also considered to be within the scope of the invention. For example, machine learning techniques can be used to provide relevance ranking of what tasks are possible/available for any given context, or menu choice. This will allow a ranked list of tasks to be presented to the user, making the user's GUI browsing experience more efficient.
Further, a system for instrumenting and gathering feedback, about the tasks that are used by users in order to understand how an application is being used, can be employed with the present invention to report back what procedures people actually did, and then to try to identify patterns. Then, after some learning based on the gathered usage data, tasks can be suggested in an intelligent manner, for example by saying “people who printed envelopes also did a mail merge”, or “people who printed many pages per sheet also printed both side, and set up a certain kind of page numbering”.
Referring now to
The steps of the method illustrated in
The method can also include the above-described steps of determining whether pre-conditions associated with individual automatically executable procedural help topics have been satisfied, and displaying the list as a function of whether the pre-conditions associated with individual procedural help topics have been satisfied. These pre-conditions can be based, for example, upon document context. Further, the list of help topics can be displayed as a function of the user's past browsing behavior, for example by sorting the help topics based upon the most recent actions taken by the user.
Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Reference is hereby made to the following co-pending and commonly assigned patent applications: U.S. application Ser. No. 10/337,745, filed Jan. 7, 2003, entitled “ACTIVE CONTENT WIZARD: EXECUTION OF TASKS AND STRUCTURED CONTENT” which was published on Jul. 8, 2004 as Publication No. US 2004/0130572 A1; U.S. application Ser. No. 10/887,058, filed Jul. 8, 2004, entitled “AUTOMATIC TEXT GENERATION” which was published on Feb. 10, 2005 as Publication No. US 2005/0033713 A1; U.S. application Ser. No. 10/940,479, filed Sep. 14, 2004, entitled “ACTIVE CONTENT WIZARD TESTING”; U.S. application Ser. No. 10/887,543, filed Jul. 8, 2004, entitled “IMPORTATION OF AUTOMATICALLY GENERATED CONTENT” which was published on Dec. 16, 2004 as Publication No. US 2004/0255270 A1; U.S. application Ser. No. 10/887,414, filed Jul. 8, 2004, entitled “AUTOMATIC IMAGE CAPTURE FOR GENERATING CONTENT” which was published on Dec. 9, 2004 as Publication No. US 2004/0250214 A1; U.S. application Ser. No. 11/______, filed ______, entitled “USING EXISTING CONTENT TO GENERATE ACTIVE CONTENT WIZARD EXECUTABLES FOR EXECUTION OF TASKS”, all of which are hereby incorporated by reference in their entirety.