US20060184880A1 - Discoverability of tasks using active content wizards and help files - the what can I do now? feature - Google Patents

Discoverability of tasks using active content wizards and help files - the what can I do now? feature Download PDF

Info

Publication number
US20060184880A1
US20060184880A1 US11/059,737 US5973705A US2006184880A1 US 20060184880 A1 US20060184880 A1 US 20060184880A1 US 5973705 A US5973705 A US 5973705A US 2006184880 A1 US2006184880 A1 US 2006184880A1
Authority
US
United States
Prior art keywords
help topics
subset
user
procedural help
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/059,737
Inventor
Aravind Bala
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/059,737 priority Critical patent/US20060184880A1/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BALA, ARAVIND
Priority to KR1020050133368A priority patent/KR20060092042A/en
Priority to AT06100278T priority patent/ATE499647T1/en
Priority to DE602006020203T priority patent/DE602006020203D1/en
Priority to EP06100278A priority patent/EP1693747B1/en
Priority to CN2006100054435A priority patent/CN1821943B/en
Priority to JP2006041199A priority patent/JP2006228228A/en
Publication of US20060184880A1 publication Critical patent/US20060184880A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Definitions

  • 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.
  • ACCW's Active Content Wizards
  • 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.
  • 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.
  • the ACW will also provide a description to the user regarding the interaction.
  • 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.
  • GUI graphical user interface
  • 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.
  • a subset of a plurality of automatically executable procedural help topics is identified.
  • a list of the identified subset of automatically executable procedural help topics is displayed to the user.
  • 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.
  • an Active Content Wizard 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.
  • FIG. 1 is a block diagram of one exemplary environment in which the present invention can be used.
  • FIG. 2 is a screen shot providing a graphical illustration of a data structure which is used in some embodiments of the present invention.
  • FIG. 3 is a block diagram illustrating a system for generating the graph data structure represented by the graph in FIG. 2 .
  • FIG. 4 is another screen shot providing a graphical illustration of the data structure shown in FIG. 2 , and demonstrating further aspects of inventive embodiments.
  • FIGS. 5 and 6 are screen shots of graphical user interfaces (GUIs) in accordance with embodiments of the present invention.
  • FIG. 7 is a block diagram illustrating a system in accordance with an illustrative embodiment of the present invention.
  • FIG. 8 is a flow diagram illustrating a method in accordance with an embodiment of the present invention.
  • 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.
  • 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.
  • FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented.
  • the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100 .
  • 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.
  • 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.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110 .
  • Components of computer 110 may include, but are not limited to, a processing unit 120 , a system memory 130 , and a system bus 121 that couples various system components including the system memory to the processing unit 120 .
  • the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • 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.
  • 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.
  • 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.
  • 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 .
  • ROM read only memory
  • RAM random access memory
  • BIOS basic input/output system
  • RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120 .
  • FIG. 1 illustrates operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
  • the computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media.
  • FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152 , and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media.
  • removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140
  • magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150 .
  • hard disk drive 141 is illustrated as storing operating system 144 , application programs 145 , other program modules 146 , and program data 147 . Note that these components can either be the same as or different from operating system 134 , application programs 135 , other program modules 136 , and program data 137 . Operating system 144 , application programs 145 , other program modules 146 , and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • 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 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 .
  • 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 FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173 , but may also include other networks.
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
  • the computer 110 When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170 .
  • the computer 110 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.
  • program modules depicted relative to the computer 110 may be stored in the remote memory storage device.
  • FIG. 1 illustrates remote application programs 185 as residing on remote computer 180 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • 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.
  • Widgets 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:
  • 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.
  • 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.
  • ACW ACW technology
  • 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.
  • 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.
  • each box or node represents a UI element.
  • Tools node 202 represents the “Tools” UI element on a UI toolbar.
  • the number in parentheses is the number of tasks that can be reached from this node.
  • this is illustrated as 134 tasks that can be reached from that node.
  • the leaf nodes under any box or node are the procedural help tasks that were used to generate the data structure.
  • leaf node 208 labeled “Save smart tags in e-mail” under node 206 labeled “General” is a procedural help task which is accessible in sequence from node 208 (representing a UI element labeled “General”).
  • 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.
  • FIG. 3 illustrates a system and component for generating these types of graph data structures.
  • a parsing/combining component 302 accesses the ACW script corpus 304 .
  • graph data structure 300 is created having the characteristics (i.e., connection of nodes, identification of leaf nodes, etc.) and in the manner described above.
  • Graph data structure 300 is intended to generally and diagrammatically illustrate data structures which represent graphs such as graph 200 shown in FIG. 2 .
  • parsing/combining component 302 is illustrated as a single component, in other embodiments which are also intended to be represented diagrammatically, separate parsing and combining components are used.
  • the parsing component parses the ACW scripts in the ACW script corpus 304 to identify the various steps (and corresponding nodes) in the ACW help topics.
  • the separate combining component then combines the various parses to generate the graph data structure 300 .
  • 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.
  • FIG. 4 shown is an example in the context of graph 200 originally illustrated in FIG. 2 .
  • the graph 200 makes it easy to work out what can be accomplished with that UI element.
  • Systems and methods of the present invention use this internal data structure to present a useful list to the user.
  • FIG. 5 Another example is provided, this time illustrating an embodiment of the invention from the perspective of the generated GUI 500 .
  • the screen shot included in FIG. 5 illustrates the Microsoft Word application with a tools drop down menu 502 displayed (in response to clicking on the tools item or element 501 ).
  • the GUI generation engine or component With pointer 504 controlled by the user to hover over the AutoCorrect Options menu item 506 , the GUI generation engine or component generates a “What can I do now?” window 508 .
  • Window 508 displays the procedures (in list 510 ) that use this menu item. These procedures are text descriptions corresponding to leaf nodes, under an AutoCorrect Options node, in a graph data structure similar to the ones illustrated in FIGS. 2 and 4 .
  • a search of the procedures can be conducted using a search function and GUI search window 512 , or a table of contents for the procedures can be viewed by clicking on GUI element or item 514 .
  • FIG. 6 illustrates an example of how conditions can be imposed on the methods, systems and concepts of the present invention.
  • “What can I do now?” can react to conditions in the document such as selecting text, or selecting rows or tables, in much the same way that it reacts to the user hovering over menus while exploring the UI.
  • selected text 602 is shown.
  • the GUI generation engine or component Based upon the fact that text has been selected, and/or upon the characteristics (formatting, etc) of the selected text, the GUI generation engine or component generates a “What can I do now? ” window 608 which contains procedures (in list 610 ) that can be performed on the selected text.
  • FIG. 7 is a block diagram illustrating a system 700 which is configured to implement the methods and concepts of the present invention.
  • System 700 includes a “What can I do now?” rendering engine or component 704 which uses graph data structure 300 and ACW script corpus 304 to render the “What can I do now?” portion 708 of the GUI (for example as illustrated in FIGS. 5 and 6 ) based upon user inputs as described above.
  • a condition determining component 706 can be included in system 700 to determine what tasks can be executed based upon one or more pre-conditions as described above.
  • the GUI rendering engine 704 can also render the remainder of the GUI, but this aspect is omitted from FIG. 7 to simplify the illustration.
  • ACW runtime engine or component 710 executes the corresponding ACW script from corpus 304 .
  • system 700 is only one illustrative embodiment of the present invention, and does not limit the invention to this particular embodiment.
  • ACW scripts corpus 304 and graph data structure 300 are shown as being included in an application program 702 , this need not be the case and either or both of these can be separate from the relevant application program.
  • the graph data structure includes a reverse mapping of some or all of the authored ACW scripts.
  • ACW scripts include:
  • the graph can be constructed such that the GUI will display the script title whenever:
  • 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.
  • 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”.
  • a flow diagram 800 illustrating a general method of suggesting tasks to a user based upon their GUI browsing behavior is illustrated.
  • the method includes selecting a portion of the GUI based upon the user's browsing behavior. As discussed above, this can be the selection (e.g., via hovering over a UI element) of a GUI control element, or the selection of text on the GUI (e.g., by controlling a pointer to highlight the text), or other types of selection.
  • the method includes identifying a subset of a available automatically executable procedural help topics (e.g. ACW scripts or files) as a function of the selected portion of the GUI.
  • ACW scripts or files e.g. ACW scripts or files
  • this step is performed using a graph data structure, such as the ones represented in FIGS. 2 and 4 .
  • the list of the identified subset of automatically executable procedural help topics is displayed to the user. Selection of one of the displayed automatically executable procedural help topics results in the execution of that procedural help topic.
  • step 810 can include the sub-steps of identifying a node in the graph data structure which corresponds to the selected GUI element, and identifying terminal leaf nodes on branches from the node in the graph data structure, with the terminal leaf nodes corresponding to final steps in procedural help topics.
  • step 815 can then include displaying names of the procedural help topics which correspond to the identified terminal leaf nodes. Also as described above with reference to FIG. 5 , the names can be displayed with a search function GUI element to allow the user to search the list using the search function, or with a Table of Contents GUI element.
  • 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.
  • pre-conditions can be based, for example, upon document context.
  • 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.

Abstract

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.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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:
      • Explore: browse around the UI in likely-looking places, hoping to spot a useful-seeming menu name or dialog.
      • Learn: ask friends, read help topics or books, or learn from newsgroups.
  • To discover what features exist that they might want to use, users:
      • Learn: run a tutorial, take a course, or browse a book. Observe friends do something with the software, and ask, “How did you make it do that?”
      • Explore: after a first-time exploration to find out what's possible, users typically don't explore much. Users explore only to find the way to accomplish some goal. Once they have a way that works, most users stick to it, and don't look for better ways, or look to see what else they could do.
  • 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.
      • 1. Accessing help loses the context of the application. Users are required to go to a separate Help place which is a new window or the Web. They have to either try to match their problem with the topic taxonomy, or phrase what they want to do as keywords in a search box. It might be much faster for users to just browse the GUI to figure out how to do something, than to search for a help topic, read it, and then perform the actions. Consequently, users tend to use help only as a last resort.
      • 2. Help today is not actionable. In other words, it cannot be used to automatically execute a task as ACW's can.
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of one exemplary environment in which the present invention can be used.
  • FIG. 2 is a screen shot providing a graphical illustration of a data structure which is used in some embodiments of the present invention.
  • FIG. 3 is a block diagram illustrating a system for generating the graph data structure represented by the graph in FIG. 2.
  • FIG. 4 is another screen shot providing a graphical illustration of the data structure shown in FIG. 2, and demonstrating further aspects of inventive embodiments.
  • FIGS. 5 and 6 are screen shots of graphical user interfaces (GUIs) in accordance with embodiments of the present invention.
  • FIG. 7 is a block diagram illustrating a system in accordance with an illustrative embodiment of the present invention.
  • FIG. 8 is a flow diagram illustrating a method in accordance with an embodiment of the present invention.
  • DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
  • 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
  • FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.
  • 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 FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
  • 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, FIG. 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137.
  • The computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.
  • The drives and their associated computer storage media discussed above and illustrated in FIG. 1, provide storage of computer readable instructions, data structures, program modules and other data for the computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • 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 FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
  • 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, FIG. 1 illustrates remote application programs 185 as residing on remote computer 180. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • II. “What can I do now?” Method, System and Concepts
  • 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:
      • 1. What can I do with this UI widget?
      • 2. What features of interest are there in the application?
  • 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 FIG. 2. In graph 200, each box or node represents a UI element. For example, Tools node 202 represents the “Tools” UI element on a UI toolbar. The number in parentheses is the number of tasks that can be reached from this node. By way of example, in the case of tools node 202, this is illustrated as 134 tasks that can be reached from that node. The leaf nodes under any box or node are the procedural help tasks that were used to generate the data structure. For example, leaf node 208 labeled “Save smart tags in e-mail” under node 206 labeled “General” is a procedural help task which is accessible in sequence from node 208 (representing a UI element labeled “General”).
  • 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. FIG. 3 illustrates a system and component for generating these types of graph data structures. As shown in FIG. 3, a parsing/combining component 302 accesses the ACW script corpus 304. Using corpus 304, graph data structure 300 is created having the characteristics (i.e., connection of nodes, identification of leaf nodes, etc.) and in the manner described above. Graph data structure 300 is intended to generally and diagrammatically illustrate data structures which represent graphs such as graph 200 shown in FIG. 2. While parsing/combining component 302 is illustrated as a single component, in other embodiments which are also intended to be represented diagrammatically, separate parsing and combining components are used. In these embodiments, the parsing component parses the ACW scripts in the ACW script corpus 304 to identify the various steps (and corresponding nodes) in the ACW help topics. The separate combining component then combines the various parses to generate the graph data structure 300.
  • 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 FIG. 4, shown is an example in the context of graph 200 originally illustrated in FIG. 2. In accordance with some embodiments of the present invention, when the user hovers (i.e., hovers the GUI pointer) over the UI element or widget “E-mail Options” 402 (hovering represented diagrammatically at 404), the graph 200 makes it easy to work out what can be accomplished with that UI element. Systems and methods of the present invention use this internal data structure to present a useful list to the user. For example, using the graph data structure represented by graph 200, this would result in the text descriptions 406, 408, 410, 412, 414 and 416 associated respectively with leaf nodes 407, 409, 411, 413, 415 and 417 to be displayed to the user.
  • Referring now to the screen shot illustrated in FIG. 5, another example is provided, this time illustrating an embodiment of the invention from the perspective of the generated GUI 500. The screen shot included in FIG. 5 illustrates the Microsoft Word application with a tools drop down menu 502 displayed (in response to clicking on the tools item or element 501). With pointer 504 controlled by the user to hover over the AutoCorrect Options menu item 506, the GUI generation engine or component generates a “What can I do now?” window 508. Window 508 displays the procedures (in list 510) that use this menu item. These procedures are text descriptions corresponding to leaf nodes, under an AutoCorrect Options node, in a graph data structure similar to the ones illustrated in FIGS. 2 and 4. If the user chooses one of the procedures by clicking on it in list 510 of window 508, it will execute if it is implemented as an ACW script. In some embodiments, from the “What can I do now?” window 508, a search of the procedures can be conducted using a search function and GUI search window 512, or a table of contents for the procedures can be viewed by clicking on GUI element or item 514.
  • 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 FIG. 6, another example is provided, this time illustrating an embodiment of the invention from the perspective of the generated GUI 600. FIG. 6 illustrates an example of how conditions can be imposed on the methods, systems and concepts of the present invention. “What can I do now?” can react to conditions in the document such as selecting text, or selecting rows or tables, in much the same way that it reacts to the user hovering over menus while exploring the UI. As illustrated in FIG. 6, selected text 602 is shown. Based upon the fact that text has been selected, and/or upon the characteristics (formatting, etc) of the selected text, the GUI generation engine or component generates a “What can I do now? ” window 608 which contains procedures (in list 610) that can be performed on the selected text.
  • FIG. 7 is a block diagram illustrating a system 700 which is configured to implement the methods and concepts of the present invention. System 700 includes a “What can I do now?” rendering engine or component 704 which uses graph data structure 300 and ACW script corpus 304 to render the “What can I do now?” portion 708 of the GUI (for example as illustrated in FIGS. 5 and 6) based upon user inputs as described above. Optionally, a condition determining component 706 can be included in system 700 to determine what tasks can be executed based upon one or more pre-conditions as described above. The GUI rendering engine 704 can also render the remainder of the GUI, but this aspect is omitted from FIG. 7 to simplify the illustration. Based upon further user inputs through “What can I do now?” GUI 708, ACW runtime engine or component 710 executes the corresponding ACW script from corpus 304. It should be noted that system 700 is only one illustrative embodiment of the present invention, and does not limit the invention to this particular embodiment. For example, while ACW scripts corpus 304 and graph data structure 300 are shown as being included in an application program 702, this need not be the case and either or both of these can be separate from the relevant application program.
  • 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:
      • 1. Conditions
      • 2. A path through the GUI.
      • 3. Slots that require users to enter some values.
      • 4. Slots that require users to select something on the screen (e.g. table, list, text, image, cell in a spreadsheet, column etc)
  • The graph can be constructed such that the GUI will display the script title whenever:
      • All the pre-conditions are met, and the user is hovering over one of the UI elements along the path outlined in the ACW script; or
      • All the pre-conditions are met, and the user has selected something on the screen that is a valid slot value for the ACW script.
  • 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 FIG. 8, a flow diagram 800 illustrating a general method of suggesting tasks to a user based upon their GUI browsing behavior is illustrated. As shown at step 805, the method includes selecting a portion of the GUI based upon the user's browsing behavior. As discussed above, this can be the selection (e.g., via hovering over a UI element) of a GUI control element, or the selection of text on the GUI (e.g., by controlling a pointer to highlight the text), or other types of selection. Next, as illustrated at step 810, the method includes identifying a subset of a available automatically executable procedural help topics (e.g. ACW scripts or files) as a function of the selected portion of the GUI. As described above, this step is performed using a graph data structure, such as the ones represented in FIGS. 2 and 4. Then, as illustrated at step 815, the list of the identified subset of automatically executable procedural help topics is displayed to the user. Selection of one of the displayed automatically executable procedural help topics results in the execution of that procedural help topic.
  • The steps of the method illustrated in FIG. 8 can, in more particular embodiments, be as described above with reference to FIGS. 2-7. For example, step 810 can include the sub-steps of identifying a node in the graph data structure which corresponds to the selected GUI element, and identifying terminal leaf nodes on branches from the node in the graph data structure, with the terminal leaf nodes corresponding to final steps in procedural help topics. Step 815 can then include displaying names of the procedural help topics which correspond to the identified terminal leaf nodes. Also as described above with reference to FIG. 5, the names can be displayed with a search function GUI element to allow the user to search the list using the search function, or with a Table of Contents GUI element.
  • 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.

Claims (20)

1. A computer implemented method of suggesting tasks to a user based upon their graphical user interface (GUI) browsing behavior, the method comprising:
selecting a GUI element based upon the user's browsing behavior;
identifying a subset of a plurality of automatically executable procedural help topics as a function of the selected GUI element; and
displaying a list of the identified subset of automatically executable procedural help topics.
2. The computer implemented method of claim 1, wherein identifying the subset of the plurality of automatically executable procedural help topics as a function of the selected GUI element further comprises identifying the subset of the plurality of procedural help topics using a graph data structure.
3. The computer implemented method of claim 2, wherein identifying the subset of the plurality of procedural help topics using the graph data structure further comprises:
identifying a node in the graph data structure which corresponds to the selected GUI element; and
identifying terminal leaf nodes on branches from the node in the graph data structure which corresponds to the selected GUI element, the terminal leaf nodes corresponding to final steps in procedural help topics.
4. The computer implemented method of claim 3, wherein displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying names of the procedural help topics which correspond to the identified terminal leaf nodes.
5. The computer implemented method of claim 1, wherein identifying the subset of the plurality of automatically executable procedural help topics as the function of the selected GUI element further comprises identifying a subset of a plurality of active content wizards as a function of the selected GUI element.
6. The computer implemented method of claim 1, and further comprising determining whether pre-conditions associated with individual ones of the identified subset of automatically executable procedural help topics have been satisfied, wherein the step of displaying the list of the identified subset of automatically executable procedural help topics is performed as a function of whether the pre-conditions associated with individual ones of the identified subset of automatically executable procedural help topics have been satisfied.
7. The computer implemented method of claim 1, wherein the step of displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying the list as a function of the user's past browsing behavior.
8. A computer readable medium having stored thereon computer executable instructions for implementing the steps of method claim 1.
9. A computer implemented method of suggesting tasks to a user based upon their graphical user interface (GUI) browsing behavior, the method comprising:
selecting a portion of the GUI based upon the user's browsing behavior;
identifying a subset of a plurality of automatically executable procedural help topics as a function of the selected portion of the GUI; and
displaying a list of the identified subset of automatically executable procedural help topics.
10. The computer implemented method of claim 9, wherein identifying the subset of the plurality of automatically executable procedural help topics as a function of the selected portion of the GUI further comprises identifying the subset of the plurality of procedural help topics using a graph data structure.
11. The computer implemented method of claim 10, wherein selecting the portion of the GUI based upon the user's browsing behavior further comprises selecting text or any other visible object on the GUI.
12. The computer implemented method of claim 10, wherein selecting the portion of the GUI based upon the user's browsing behavior further comprises selecting a GUI element.
13. The computer implemented method of claim 12, wherein identifying the subset of the plurality of procedural help topics using the graph data structure further comprises:
identifying a node in the graph data structure which corresponds to the selected GUI element; and
identifying terminal leaf nodes on branches from the node in the graph data structure which corresponds to the selected GUI element, the terminal leaf nodes corresponding to final steps in procedural help topics;
wherein displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying names of the procedural help topics which correspond to the identified terminal leaf nodes.
14. The computer implemented method of claim 9, wherein identifying the subset of the plurality of automatically executable procedural help topics as the function of the selected portion of the GUI further comprises identifying a subset of a plurality of active content wizards as a function of the selected GUI element.
15. The computer implemented method of claim 9, wherein displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying a search function GUI element with the list to allow the user to search the list using the search function.
16. The computer implemented method of claim 9, and further comprising determining whether pre-conditions associated with individual ones of the identified subset of automatically executable procedural help topics have been satisfied, wherein the step of displaying the list of the identified subset of automatically executable procedural help topics is performed as a function of whether the pre-conditions associated with individual ones of the identified subset of automatically executable procedural help topics have been satisfied.
17. The computer implemented method of claim 16, wherein identifying the subset of the plurality of automatically executable procedural help topics as a function of the selected portion of the GUI further comprises identifying the subset of the plurality of automatically executable procedural help topics based upon document context.
18. The computer implemented method of claim 9, wherein the step of displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying the list as a function of the user's past browsing behavior.
19. The computer implemented method of claim 9, wherein displaying the list of the identified subset of automatically executable procedural help topics further comprises displaying a table of contents sort function GUI element with the list to allow the user to view a table of contents for the list.
20. A computer readable medium having stored thereon computer executable instructions for implementing the steps of method claim 9.
US11/059,737 2005-02-17 2005-02-17 Discoverability of tasks using active content wizards and help files - the what can I do now? feature Abandoned US20060184880A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US11/059,737 US20060184880A1 (en) 2005-02-17 2005-02-17 Discoverability of tasks using active content wizards and help files - the what can I do now? feature
KR1020050133368A KR20060092042A (en) 2005-02-17 2005-12-29 Discoverability of tasks using active content wizards and help files - the what can i do now? feature
AT06100278T ATE499647T1 (en) 2005-02-17 2006-01-12 TASK RECOGNITION USING ACTIVE CONTENT ASSISTANTS AND HELP FILES
DE602006020203T DE602006020203D1 (en) 2005-02-17 2006-01-12 Detect tasks using active content wizards and help files
EP06100278A EP1693747B1 (en) 2005-02-17 2006-01-12 Discoverability of tasks using active content wizards and help files
CN2006100054435A CN1821943B (en) 2005-02-17 2006-01-17 The discoverability of tasks using active content wizards and help files-“what can I do now” feature
JP2006041199A JP2006228228A (en) 2005-02-17 2006-02-17 Method for improving active content wizard and help function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/059,737 US20060184880A1 (en) 2005-02-17 2005-02-17 Discoverability of tasks using active content wizards and help files - the what can I do now? feature

Publications (1)

Publication Number Publication Date
US20060184880A1 true US20060184880A1 (en) 2006-08-17

Family

ID=36297282

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/059,737 Abandoned US20060184880A1 (en) 2005-02-17 2005-02-17 Discoverability of tasks using active content wizards and help files - the what can I do now? feature

Country Status (7)

Country Link
US (1) US20060184880A1 (en)
EP (1) EP1693747B1 (en)
JP (1) JP2006228228A (en)
KR (1) KR20060092042A (en)
CN (1) CN1821943B (en)
AT (1) ATE499647T1 (en)
DE (1) DE602006020203D1 (en)

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US20060053372A1 (en) * 2004-09-08 2006-03-09 Transcensus, Llc Systems and methods for teaching a person to interact with a computer program having a graphical user interface
US20060184888A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Using existing content to generate active content wizard executables for execution of tasks
US20070038670A1 (en) * 2005-08-09 2007-02-15 Paolo Dettori Context sensitive media and information
US20080115109A1 (en) * 2006-11-13 2008-05-15 Bostick James E Enhanced Hover Help For Software Debuggers
US20080126971A1 (en) * 2006-09-29 2008-05-29 Brother Kogyo Kabushiki Kaisha Information Processing Device
US20080141225A1 (en) * 2006-12-06 2008-06-12 Bostick James E Method for migrating files
US20090044134A1 (en) * 2007-08-06 2009-02-12 Apple Inc Dynamic interfaces for productivity applications
US20090064000A1 (en) * 2007-08-28 2009-03-05 International Business Machines Corporation SYSTEMS, METHODS AND COMPUTER PRODUCTS TO AUTOMATICALLY COMPLETE a GUI TASK
US20100192097A1 (en) * 2009-01-26 2010-07-29 Thomas Stanton Brugler Methods for showing user interface elements in an application
US20100192092A1 (en) * 2009-01-26 2010-07-29 Thomas Stanton Brugler Keystroke activated dynamic task menu
US20100205530A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for providing interactive guidance with execution of operations
US20100205529A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for creating interactive guidance with execution of operations
US20100223550A1 (en) * 2009-02-27 2010-09-02 International Business Machines Corporation Appratus, program and method for assisting a user in understanding content
US20110047462A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent computerized guidance
US20110047514A1 (en) * 2009-08-24 2011-02-24 Emma Butin Recording display-independent computerized guidance
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control
US7917859B1 (en) * 2007-09-21 2011-03-29 Adobe Systems Incorporated Dynamic user interface elements
US20110209059A1 (en) * 2010-02-19 2011-08-25 Toshiba Tec Kabushiki Kaisha Processing apparatus and method of controlling operation of the processing apparatus
US20110314375A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Personal Assistant for Task Utilization
US20120110448A1 (en) * 2010-11-02 2012-05-03 International Business Machines Corporation Seamlessly Share And Reuse Administration-Console User-Interaction Knowledge
US20120110508A1 (en) * 2010-10-29 2012-05-03 Microsoft Corporation Enterprise resource planning oriented context-aware user interface
US20120185767A1 (en) * 2011-01-14 2012-07-19 Apple Inc. Modifying application behavior
US8375320B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Context-based task generation
US20140074452A1 (en) * 2012-09-10 2014-03-13 Adam Carmi System and method for automatic modeling of an application
US20140075304A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Annotation of user interface documents according to related documentation
US20140075371A1 (en) * 2012-09-10 2014-03-13 Adam Carmi System and method for model based session management
US9063757B2 (en) 2010-04-06 2015-06-23 Microsoft Technology Licensing, Llc Interactive application assistance, such as for web applications
US20160012143A1 (en) * 2014-07-09 2016-01-14 Verizon Patent And Licensing Inc. Apparatus, method, and system for providing hover information
US9335894B1 (en) * 2010-03-26 2016-05-10 Open Invention Network, Llc Providing data input touch screen interface to multiple users based on previous command selections
US20160162172A1 (en) * 2013-08-01 2016-06-09 Yogesh Chunilal Rathod Presenting plurality types of interfaces and functions for conducting various activities
US20160179345A1 (en) * 2014-07-08 2016-06-23 Huizhou Tcl Mobile Communication Co., Ltd. Method and mobile terminal for displaying a user guide
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
US20210240318A1 (en) * 2020-01-31 2021-08-05 Salesforce.Com, Inc. User interface migration using intermediate user interfaces
US11150923B2 (en) * 2019-09-16 2021-10-19 Samsung Electronics Co., Ltd. Electronic apparatus and method for providing manual thereof
US11340920B2 (en) * 2016-02-02 2022-05-24 Aetherpal Inc. Device navigational maps for connected devices
US11397520B2 (en) 2013-08-01 2022-07-26 Yogesh Chunilal Rathod Application program interface or page processing method and device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799341A (en) * 2011-05-26 2012-11-28 上海三旗通信科技股份有限公司 Interactive mode for starting using help function in real time
US8935610B2 (en) 2011-12-08 2015-01-13 Microsoft Corporation Dynamic minimized navigation bar for expanded communication service
US20140245141A1 (en) * 2013-02-26 2014-08-28 Microsoft Corporation Contextual user assistance for cloud services
US10496528B2 (en) * 2015-08-31 2019-12-03 Microsoft Technology Licensing, Llc User directed partial graph execution

Citations (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201046A (en) * 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
US5481667A (en) * 1992-02-13 1996-01-02 Microsoft Corporation Method and system for instructing a user of a computer system how to perform application program tasks
US5535422A (en) * 1992-03-26 1996-07-09 International Business Machines Corporation Interactive online tutorial system for software products
US5550967A (en) * 1993-01-27 1996-08-27 Apple Computer, Inc. Method and apparatus for generating and displaying visual cues on a graphic user interface
US5602982A (en) * 1994-09-23 1997-02-11 Kelly Properties, Inc. Universal automated training and testing software system
US5671351A (en) * 1995-04-13 1997-09-23 Texas Instruments Incorporated System and method for automated testing and monitoring of software applications
US5715415A (en) * 1996-06-05 1998-02-03 Microsoft Corporation Computer application with help pane integrated into workspace
US5741720A (en) * 1995-10-04 1998-04-21 Actel Corporation Method of programming an improved metal-to-metal via-type antifuse
US5825356A (en) * 1996-03-18 1998-10-20 Wall Data Incorporated Help system with semitransparent window for disabling controls
US5828374A (en) * 1993-01-27 1998-10-27 Apple Computer, Inc. Method and apparatus for selecting characters along a scroll bar with a slider
US5890178A (en) * 1994-04-21 1999-03-30 Sharp Kabushiki Kaisha Display of data files indicated by pasting instructing data indicating pasting of a data file in a displayed data file
US5926638A (en) * 1996-01-17 1999-07-20 Nec Corporation Program debugging system for debugging a program having graphical user interface
US6061643A (en) * 1998-07-07 2000-05-09 Tenfold Corporation Method for defining durable data for regression testing
US6104393A (en) * 1998-06-11 2000-08-15 International Business Machines Corporation Integration of procedural and object-oriented user interfaces
US6219047B1 (en) * 1998-09-17 2001-04-17 John Bell Training agent
US6226785B1 (en) * 1994-09-30 2001-05-01 Apple Computer, Inc. Method and apparatus for storing and replaying creation history of multimedia software or other software content
US6239800B1 (en) * 1997-12-15 2001-05-29 International Business Machines Corporation Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
US6243707B1 (en) * 1997-06-25 2001-06-05 Samsung Electronics Co. Ltd. Method and apparatus for creating home network macros
US6308146B1 (en) * 1998-10-30 2001-10-23 J. D. Edwards World Source Company System and method for simulating user input to control the operation of an application
US6307544B1 (en) * 1998-07-23 2001-10-23 International Business Machines Corporation Method and apparatus for delivering a dynamic context sensitive integrated user assistance solution
US6434629B1 (en) * 1988-05-23 2002-08-13 Hewlett-Packard Co. Computing system which implements recording and playback of semantic commands
US6504554B1 (en) * 1998-09-01 2003-01-07 Microsoft Corporation Dynamic conversion of object-oriented programs to tag-based procedural code
US20030016238A1 (en) * 2001-07-10 2003-01-23 Sullivan Timothy Rand Context-based help engine and dynamic help
US20030020751A1 (en) * 2001-07-03 2003-01-30 Laurent Safa Observation display method for dynamically changing on monitor screen object information observed on computer network and observation display system using computer network
US6532023B1 (en) * 1999-08-12 2003-03-11 International Business Machines Corporation Recording selected applet events of a user interaction sequence
US6574791B1 (en) * 1999-01-15 2003-06-03 International Business Machines Corporation Component based designer for modifying and specializing wizards
US20030177205A1 (en) * 2002-03-15 2003-09-18 Geng-Chen Liang Method and apparatus for system lineup and testing
US20030208712A1 (en) * 2002-05-01 2003-11-06 Michael Louden Method and apparatus for making and using wireless test verbs
US20030222898A1 (en) * 2002-06-03 2003-12-04 International Business Machines Corporation Integrated wizard user interface
US6662225B1 (en) * 1999-11-16 2003-12-09 Ricoh Company, Ltd. Remote system usage monitoring with flexible packaging of data
US20040010513A1 (en) * 2002-07-15 2004-01-15 Mission Control Productivity, Inc. Method, system and apparatus for organizing information for managing life affairs
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US20040250214A1 (en) * 2003-01-07 2004-12-09 Microsoft Corporation Automatic image capture for generating content
US20040255270A1 (en) * 2003-01-07 2004-12-16 Microsoft Corporation Importation of automatically generated content
US20040261026A1 (en) * 2003-06-04 2004-12-23 Sony Computer Entertainment Inc. Methods and systems for recording user actions in computer programs
US20040268259A1 (en) * 2000-06-21 2004-12-30 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US20050033713A1 (en) * 2003-01-07 2005-02-10 Microsoft Corporation Automatic text generation
US20050114785A1 (en) * 2003-01-07 2005-05-26 Microsoft Corporation Active content wizard execution with improved conspicuity
US6945152B2 (en) * 2001-07-31 2005-09-20 Abbas Jabbari Automated blind cutting machine
US6948152B2 (en) * 2001-09-14 2005-09-20 Siemens Communications, Inc. Data structures for use with environment based data driven automated test engine for GUI applications
US20050228644A1 (en) * 2004-03-31 2005-10-13 Bea Systems, Inc. Generic user interface testing framework with rules-based wizard
US6966013B2 (en) * 2001-07-21 2005-11-15 International Business Machines Corporation Method and system for performing automated regression tests in a state-dependent data processing system
US20060059433A1 (en) * 2004-09-14 2006-03-16 Microsoft Corporation Active content wizard testing
US7024658B1 (en) * 2001-09-28 2006-04-04 Adobe Systems Incorporated Extensible help facility for a computer software application
US7047498B2 (en) * 1999-05-07 2006-05-16 Knoa Corporation System and method for dynamic assistance in software applications using behavior and host application models
US7051317B2 (en) * 2001-06-29 2006-05-23 National Instruments Corporation System and method for specifying a computer-implemented process using different programming methodologies
US7055136B2 (en) * 2000-03-02 2006-05-30 Texas Instruments Incorporated Configurable debug system with dynamic menus
US7055137B2 (en) * 2001-11-29 2006-05-30 I2 Technologies Us, Inc. Distributed automated software graphical user interface (GUI) testing
US20060184888A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Using existing content to generate active content wizard executables for execution of tasks
US20060206814A1 (en) * 1999-08-05 2006-09-14 Fujitsu Limited Electronic document creation support apparatus and an electronic document creation support data component creating apparatus
US7126734B1 (en) * 2005-09-12 2006-10-24 Symbol Technologies, Inc. Motor drive circuit with reduced coil crosstalk in a feedback signal indicative of mirror motion in light scanning arrangements
US7185286B2 (en) * 2001-08-28 2007-02-27 Nvidia International, Inc. Interface for mobilizing content and transactions on multiple classes of devices
US7305659B2 (en) * 2002-09-03 2007-12-04 Sap Ag Handling parameters in test scripts for computer program applications
US20070294413A1 (en) * 2006-06-15 2007-12-20 Zhonghai Luo System and method for enabling assisted visual development of incoming message handling operations for applications on a communication device
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2121415A1 (en) * 1993-04-28 1994-10-29 Mark A. Malamud Information cursors
WO1999066394A1 (en) * 1998-06-17 1999-12-23 Microsoft Corporation Method for adapting user interface elements based on historical usage
JP2000056881A (en) * 1998-08-14 2000-02-25 Toshiba Corp Help picture generating device

Patent Citations (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434629B1 (en) * 1988-05-23 2002-08-13 Hewlett-Packard Co. Computing system which implements recording and playback of semantic commands
US5201046A (en) * 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
US5481667A (en) * 1992-02-13 1996-01-02 Microsoft Corporation Method and system for instructing a user of a computer system how to perform application program tasks
US5535422A (en) * 1992-03-26 1996-07-09 International Business Machines Corporation Interactive online tutorial system for software products
US5550967A (en) * 1993-01-27 1996-08-27 Apple Computer, Inc. Method and apparatus for generating and displaying visual cues on a graphic user interface
US5828374A (en) * 1993-01-27 1998-10-27 Apple Computer, Inc. Method and apparatus for selecting characters along a scroll bar with a slider
US5859638A (en) * 1993-01-27 1999-01-12 Apple Computer, Inc. Method and apparatus for displaying and scrolling data in a window-based graphic user interface
US5890178A (en) * 1994-04-21 1999-03-30 Sharp Kabushiki Kaisha Display of data files indicated by pasting instructing data indicating pasting of a data file in a displayed data file
US5602982A (en) * 1994-09-23 1997-02-11 Kelly Properties, Inc. Universal automated training and testing software system
US20060010420A1 (en) * 1994-09-30 2006-01-12 Peterson Alan R Method and apparatus for storing and replaying creation history of multimedia software or other software content
US6226785B1 (en) * 1994-09-30 2001-05-01 Apple Computer, Inc. Method and apparatus for storing and replaying creation history of multimedia software or other software content
US5671351A (en) * 1995-04-13 1997-09-23 Texas Instruments Incorporated System and method for automated testing and monitoring of software applications
US5741720A (en) * 1995-10-04 1998-04-21 Actel Corporation Method of programming an improved metal-to-metal via-type antifuse
US5926638A (en) * 1996-01-17 1999-07-20 Nec Corporation Program debugging system for debugging a program having graphical user interface
US5825356A (en) * 1996-03-18 1998-10-20 Wall Data Incorporated Help system with semitransparent window for disabling controls
US5715415A (en) * 1996-06-05 1998-02-03 Microsoft Corporation Computer application with help pane integrated into workspace
US6243707B1 (en) * 1997-06-25 2001-06-05 Samsung Electronics Co. Ltd. Method and apparatus for creating home network macros
US6239800B1 (en) * 1997-12-15 2001-05-29 International Business Machines Corporation Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
US6104393A (en) * 1998-06-11 2000-08-15 International Business Machines Corporation Integration of procedural and object-oriented user interfaces
US6061643A (en) * 1998-07-07 2000-05-09 Tenfold Corporation Method for defining durable data for regression testing
US6307544B1 (en) * 1998-07-23 2001-10-23 International Business Machines Corporation Method and apparatus for delivering a dynamic context sensitive integrated user assistance solution
US6504554B1 (en) * 1998-09-01 2003-01-07 Microsoft Corporation Dynamic conversion of object-oriented programs to tag-based procedural code
US6219047B1 (en) * 1998-09-17 2001-04-17 John Bell Training agent
US6308146B1 (en) * 1998-10-30 2001-10-23 J. D. Edwards World Source Company System and method for simulating user input to control the operation of an application
US6574791B1 (en) * 1999-01-15 2003-06-03 International Business Machines Corporation Component based designer for modifying and specializing wizards
US7047498B2 (en) * 1999-05-07 2006-05-16 Knoa Corporation System and method for dynamic assistance in software applications using behavior and host application models
US20060206814A1 (en) * 1999-08-05 2006-09-14 Fujitsu Limited Electronic document creation support apparatus and an electronic document creation support data component creating apparatus
US6532023B1 (en) * 1999-08-12 2003-03-11 International Business Machines Corporation Recording selected applet events of a user interaction sequence
US6662225B1 (en) * 1999-11-16 2003-12-09 Ricoh Company, Ltd. Remote system usage monitoring with flexible packaging of data
US7055136B2 (en) * 2000-03-02 2006-05-30 Texas Instruments Incorporated Configurable debug system with dynamic menus
US20040268259A1 (en) * 2000-06-21 2004-12-30 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US20040268260A1 (en) * 2000-06-21 2004-12-30 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7051317B2 (en) * 2001-06-29 2006-05-23 National Instruments Corporation System and method for specifying a computer-implemented process using different programming methodologies
US20030020751A1 (en) * 2001-07-03 2003-01-30 Laurent Safa Observation display method for dynamically changing on monitor screen object information observed on computer network and observation display system using computer network
US20030016238A1 (en) * 2001-07-10 2003-01-23 Sullivan Timothy Rand Context-based help engine and dynamic help
US6966013B2 (en) * 2001-07-21 2005-11-15 International Business Machines Corporation Method and system for performing automated regression tests in a state-dependent data processing system
US6945152B2 (en) * 2001-07-31 2005-09-20 Abbas Jabbari Automated blind cutting machine
US7185286B2 (en) * 2001-08-28 2007-02-27 Nvidia International, Inc. Interface for mobilizing content and transactions on multiple classes of devices
US6948152B2 (en) * 2001-09-14 2005-09-20 Siemens Communications, Inc. Data structures for use with environment based data driven automated test engine for GUI applications
US7024658B1 (en) * 2001-09-28 2006-04-04 Adobe Systems Incorporated Extensible help facility for a computer software application
US7055137B2 (en) * 2001-11-29 2006-05-30 I2 Technologies Us, Inc. Distributed automated software graphical user interface (GUI) testing
US20030177205A1 (en) * 2002-03-15 2003-09-18 Geng-Chen Liang Method and apparatus for system lineup and testing
US6862682B2 (en) * 2002-05-01 2005-03-01 Testquest, Inc. Method and apparatus for making and using wireless test verbs
US20030208712A1 (en) * 2002-05-01 2003-11-06 Michael Louden Method and apparatus for making and using wireless test verbs
US20030222898A1 (en) * 2002-06-03 2003-12-04 International Business Machines Corporation Integrated wizard user interface
US20040010513A1 (en) * 2002-07-15 2004-01-15 Mission Control Productivity, Inc. Method, system and apparatus for organizing information for managing life affairs
US7305659B2 (en) * 2002-09-03 2007-12-04 Sap Ag Handling parameters in test scripts for computer program applications
US20040255270A1 (en) * 2003-01-07 2004-12-16 Microsoft Corporation Importation of automatically generated content
US7036079B2 (en) * 2003-01-07 2006-04-25 Microsoft Corporation Importation of automatically generated content
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US20040250214A1 (en) * 2003-01-07 2004-12-09 Microsoft Corporation Automatic image capture for generating content
US7565607B2 (en) * 2003-01-07 2009-07-21 Microsoft Corporation Automatic image capture for generating content
US20050033713A1 (en) * 2003-01-07 2005-02-10 Microsoft Corporation Automatic text generation
US20050114785A1 (en) * 2003-01-07 2005-05-26 Microsoft Corporation Active content wizard execution with improved conspicuity
US20040261026A1 (en) * 2003-06-04 2004-12-23 Sony Computer Entertainment Inc. Methods and systems for recording user actions in computer programs
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US20050228644A1 (en) * 2004-03-31 2005-10-13 Bea Systems, Inc. Generic user interface testing framework with rules-based wizard
US20060059433A1 (en) * 2004-09-14 2006-03-16 Microsoft Corporation Active content wizard testing
US7574625B2 (en) * 2004-09-14 2009-08-11 Microsoft Corporation Active content wizard testing
US20060184888A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Using existing content to generate active content wizard executables for execution of tasks
US7587668B2 (en) * 2005-02-17 2009-09-08 Microft Corporation Using existing content to generate active content wizard executables for execution of tasks
US7126734B1 (en) * 2005-09-12 2006-10-24 Symbol Technologies, Inc. Motor drive circuit with reduced coil crosstalk in a feedback signal indicative of mirror motion in light scanning arrangements
US20070294413A1 (en) * 2006-06-15 2007-12-20 Zhonghai Luo System and method for enabling assisted visual development of incoming message handling operations for applications on a communication device

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US7620895B2 (en) 2004-09-08 2009-11-17 Transcensus, Llc Systems and methods for teaching a person to interact with a computer program having a graphical user interface
US20060053372A1 (en) * 2004-09-08 2006-03-09 Transcensus, Llc Systems and methods for teaching a person to interact with a computer program having a graphical user interface
US20060184888A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Using existing content to generate active content wizard executables for execution of tasks
US7587668B2 (en) 2005-02-17 2009-09-08 Microft Corporation Using existing content to generate active content wizard executables for execution of tasks
US20070038670A1 (en) * 2005-08-09 2007-02-15 Paolo Dettori Context sensitive media and information
US8548963B2 (en) * 2005-08-09 2013-10-01 International Business Machines Corporation Context sensitive media and information
US20080126971A1 (en) * 2006-09-29 2008-05-29 Brother Kogyo Kabushiki Kaisha Information Processing Device
US7921378B2 (en) * 2006-09-29 2011-04-05 Brother Kogyo Kabushiki Kaisha Information processing device
US20080115109A1 (en) * 2006-11-13 2008-05-15 Bostick James E Enhanced Hover Help For Software Debuggers
US20080141225A1 (en) * 2006-12-06 2008-06-12 Bostick James E Method for migrating files
US20090044134A1 (en) * 2007-08-06 2009-02-12 Apple Inc Dynamic interfaces for productivity applications
US20090064000A1 (en) * 2007-08-28 2009-03-05 International Business Machines Corporation SYSTEMS, METHODS AND COMPUTER PRODUCTS TO AUTOMATICALLY COMPLETE a GUI TASK
US7930636B2 (en) * 2007-08-28 2011-04-19 International Business Machines Corporation Systems, methods and computer products to automatically complete a GUI task
US9069578B2 (en) * 2007-09-21 2015-06-30 Adobe Systems Incorporated Dynamic user interface elements
US7917859B1 (en) * 2007-09-21 2011-03-29 Adobe Systems Incorporated Dynamic user interface elements
US20110214077A1 (en) * 2007-09-21 2011-09-01 Adobe Systems Incorporated Dynamic user interface elements
US8875052B2 (en) * 2009-01-26 2014-10-28 International Business Machines Corporation Keystroke activated dynamic task menu
US20100192097A1 (en) * 2009-01-26 2010-07-29 Thomas Stanton Brugler Methods for showing user interface elements in an application
US20100192092A1 (en) * 2009-01-26 2010-07-29 Thomas Stanton Brugler Keystroke activated dynamic task menu
US8271876B2 (en) * 2009-01-26 2012-09-18 International Business Machines Corporation Trigger, generate, and display hover helps for multiple user interface elements
US20100205529A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for creating interactive guidance with execution of operations
US20100205530A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for providing interactive guidance with execution of operations
US9569231B2 (en) 2009-02-09 2017-02-14 Kryon Systems Ltd. Device, system, and method for providing interactive guidance with execution of operations
US20100223550A1 (en) * 2009-02-27 2010-09-02 International Business Machines Corporation Appratus, program and method for assisting a user in understanding content
US20110047462A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent computerized guidance
US9405558B2 (en) 2009-08-24 2016-08-02 Kryon Systems Ltd. Display-independent computerized guidance
US9703462B2 (en) 2009-08-24 2017-07-11 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
US9098313B2 (en) * 2009-08-24 2015-08-04 Kryon Systems Ltd. Recording display-independent computerized guidance
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control
US20110047514A1 (en) * 2009-08-24 2011-02-24 Emma Butin Recording display-independent computerized guidance
US8918739B2 (en) 2009-08-24 2014-12-23 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
US20110209059A1 (en) * 2010-02-19 2011-08-25 Toshiba Tec Kabushiki Kaisha Processing apparatus and method of controlling operation of the processing apparatus
US9335894B1 (en) * 2010-03-26 2016-05-10 Open Invention Network, Llc Providing data input touch screen interface to multiple users based on previous command selections
US9063757B2 (en) 2010-04-06 2015-06-23 Microsoft Technology Licensing, Llc Interactive application assistance, such as for web applications
US8375320B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Context-based task generation
US20110314375A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Personal Assistant for Task Utilization
US8386929B2 (en) * 2010-06-22 2013-02-26 Microsoft Corporation Personal assistant for task utilization
US20120110508A1 (en) * 2010-10-29 2012-05-03 Microsoft Corporation Enterprise resource planning oriented context-aware user interface
US20120110448A1 (en) * 2010-11-02 2012-05-03 International Business Machines Corporation Seamlessly Share And Reuse Administration-Console User-Interaction Knowledge
US8751930B2 (en) * 2010-11-02 2014-06-10 International Business Machines Corporation Seamlessly sharing and reusing knowledge between an administrator console and user interaction
US20120185767A1 (en) * 2011-01-14 2012-07-19 Apple Inc. Modifying application behavior
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
US20140075304A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Annotation of user interface documents according to related documentation
US9448908B2 (en) * 2012-09-10 2016-09-20 Applitools Ltd. System and method for model based session management
US20140074452A1 (en) * 2012-09-10 2014-03-13 Adam Carmi System and method for automatic modeling of an application
US9904517B2 (en) * 2012-09-10 2018-02-27 Applitools Ltd. System and method for automatic modeling of an application
US20140075371A1 (en) * 2012-09-10 2014-03-13 Adam Carmi System and method for model based session management
US11397520B2 (en) 2013-08-01 2022-07-26 Yogesh Chunilal Rathod Application program interface or page processing method and device
US20160162172A1 (en) * 2013-08-01 2016-06-09 Yogesh Chunilal Rathod Presenting plurality types of interfaces and functions for conducting various activities
US11886693B2 (en) 2013-08-01 2024-01-30 Progwebt Llc System and method for application program interface or page processing
US10310723B2 (en) * 2013-08-01 2019-06-04 Yogesh Chunilal Rathod Presenting plurality types of interfaces and functions for conducting various activities
US20160179345A1 (en) * 2014-07-08 2016-06-23 Huizhou Tcl Mobile Communication Co., Ltd. Method and mobile terminal for displaying a user guide
US20160012143A1 (en) * 2014-07-09 2016-01-14 Verizon Patent And Licensing Inc. Apparatus, method, and system for providing hover information
US9558290B2 (en) * 2014-07-09 2017-01-31 Verizon Patent And Licensing Inc. Apparatus, method, and system for providing hover information
US11340920B2 (en) * 2016-02-02 2022-05-24 Aetherpal Inc. Device navigational maps for connected devices
US11150923B2 (en) * 2019-09-16 2021-10-19 Samsung Electronics Co., Ltd. Electronic apparatus and method for providing manual thereof
US20210240318A1 (en) * 2020-01-31 2021-08-05 Salesforce.Com, Inc. User interface migration using intermediate user interfaces
US11537363B2 (en) * 2020-01-31 2022-12-27 Salesforce.Com, Inc. User interface migration using intermediate user interfaces

Also Published As

Publication number Publication date
ATE499647T1 (en) 2011-03-15
CN1821943B (en) 2010-08-11
EP1693747A2 (en) 2006-08-23
DE602006020203D1 (en) 2011-04-07
EP1693747A3 (en) 2006-11-15
CN1821943A (en) 2006-08-23
JP2006228228A (en) 2006-08-31
EP1693747B1 (en) 2011-02-23
KR20060092042A (en) 2006-08-22

Similar Documents

Publication Publication Date Title
EP1693747B1 (en) Discoverability of tasks using active content wizards and help files
US6724401B1 (en) Computer-based documentation and instruction
US5535323A (en) Method of and system for displaying context sensitive and application independent help information
US7024658B1 (en) Extensible help facility for a computer software application
US7703037B2 (en) Searchable task-based interface to control panel functionality
KR101038395B1 (en) Active content wizard: execution of tasks and structured content
US7490313B2 (en) System and method for making user interface elements known to an application and user
US9292483B2 (en) Intelligent text annotation
US7849419B2 (en) Computer-implemented graphical user interface previews
JP2006228210A (en) Using existing content to generate active content wizard executable file for execution of task
JP2008506185A (en) Automatic text generation
CA2643754A1 (en) Searching for commands to execute in applications
WO2006016865A1 (en) Importation of automatically generated content
US20080154869A1 (en) System and method for constructing a search
US20100306259A1 (en) Menu searching of a hierarchical menu structure
Grayling Fear and loathing of the help menu: A usability test of online help
US20080301552A1 (en) User-Created Metadata for Managing Interface Resources on a User Interface
EP1715418A1 (en) Task-based interface with underlying extensible framework
US6931385B1 (en) Interactive examples for online coding tutorials
de Paz Tkinter GUI Application Development Cookbook: A practical solution to your GUI development problems with Python and Tkinter
Liberty et al. Programming. NET Windows Applications
Powers The essential guide to Dreamweaver CS4 With CSS, Ajax, and PHP
TW401552B (en) System and method for editing data structure
Barata et al. Blaze: Automating User Interaction in Graphical User Interfaces
Brimhall ProjectSnap: Addressing the Project Fragmentation Problem

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BALA, ARAVIND;REEL/FRAME:015833/0190

Effective date: 20050215

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001

Effective date: 20141014