Abstract: In a system and method for providing user help tips, the system may determine a relevance to a user of a plurality of tips, may assign priority categories to the tips based on the relevance and may determine which tip to output based on the priority categories of the tips.
SYSTEM AND METHOD FOR PROVIDING USER HELP TIPS
BACKGROUND
[1] Computer applications include a vast number of features, many of which are not
intuitive and a user is often unaware. The user therefore often performs incorrect or inefficient steps, thereby failing to altogether or inefficiently accomplish a goal the user intended to accomplish and/or causing an error.
[2] It is conventional for a system to provide user help information tips, such as a tip of the
day, informing users about various features. It is conventional for the system to record whether a particular tip has already been displayed, and to display only those tips that are not recorded as having been previously displayed. For example, until all system tips are displayed, the system displays a tip only if it has not been previously displayed. Once all system1 tips are displayed, the system repeats the tip display cycle.
[3] However, often many of the tips provided by the system are not useful for a user. For
example, a tip may pertain to an aspect of the system seldom or never used by the user.
[4] Thus, there is a need in the art for a system and method that selectively provides user-
specific user help information tips based on a user history.
BRIEF DESCRIPTION OF THE DRAWINGS
[5] Fig. 1 is a block diagram that illustrates example components of a system according to
an example embodiment of the present invention.
[6] Fig. 2 is a map of an exemplary logical association of task, program, and tip entries
according to an example embodiment of the present invention.
DETAILED DESCRIPTION
[7] Embodiments of the present invention relate to a computer system and method that
provide user specific help information tips, where the provision of the tips is made in accordance with a relevance of the tips to a user. Embodiments of the present invention relate to a computer system and method that may selectively provide user help information tips based on a user history. The user history may indicate particular computer applications and/or
application features most often used by a corresponding user, and/or particular tasks and/or subtasks most often performed by the user. A task may be associated with a plurality of applications. For example, to generate and transmit an e-mail regarding salary to a plurality of employees of a company, a combination of word processing, spreadsheet, and database management programs may be used. A tip may be provided because of its direct or indirect association with an application, application feature, task, and/or subtask used or performed by the user.
[8] Fig. 1 is a block diagram that illustrates example components of a system according to
an example embodiment of the present invention. A processor 100 may execute one or more sets of program instructions stored in a memory 102. The particular instructions executed by the processor 100 may depend on input provided by a user via an input device, e.g., a keyboard, a mouse, a touch pad, or any other conventional input device. The input device may be, e.g., at a terminal 104. At the terminal 104 may be an output device, e.g., a graphical user interface (GUI) 106. Output obtained during execution of the program instructions may be provided to the user via the output device. For example, the processor 100 may provide data for generating a display at the GUI 106 including the obtained output.
[9] The system may store a list 108 of program instruction sets that may be executed by
the processor 100. For one or more program instruction sets that may be executed by the processor 100, the list 108 may further include entries listing program features, system tasks, and/or problems, actions, and/or errors that may occur during execution of the program instruction sets. A problem may be a failure by a user to act in a manner, intent of performance of which it is determined is highly probable at a particular point during program execution. An action may be a performance by a user in a manner that does not produce an error, but does not allow for completion of a task. For example, for completion of a task it may be required that the user enter a number amount in a particular field. While it may be that no error occurs when the user enters data other than a number amount, if the user later attempts to perform the task for which the number amount was required, the previous action may be deemed an error. An error may be a faulty user operation.
[10] For each entry or some entries in the list 108 there may be stored a corresponding
solution or instruction set in a set of user help information 110. For example, the list 108 may include for each entry in the list 108 a pointer to a corresponding solution or instruction set in
the set of user help information 110. Any conventional manner of linking data may be used. While Fig. 1 illustrates the list 108 and set of user help information 110 as separate data entities, such that linking of particular solutions or instruction sets to particular program features, system tasks, problems, actions, and/or errors is required, e.g., by pointers, it will be appreciated that the list 108 and set of user help information 110 may be combined into a single data entity. For example, they may be combined into a single flat file. It will also be appreciated that a single feature, task, problem, action, or error is not limited to one pointer. For example, for a particular feature, task, problem, action, or error, a combination of two or more solutions or instruction sets, e.g., which may each be used separately for other features, tasks, problems, actions, and/or errors, may be appropriate. In this instance, the list 108 may include two or more corresponding pointers for the particular feature, task, problem, action, or error. The list 108 may include entries that are not directly associated with a portion of the user help information 110. Instead, they may be associated with other entries in the list 108 that are themselves directly associated with one or more entries in the user help information 110. One or more entries in the user help information 110, or one or more combination of entries of the list 108 and user help information 110 may be designated as a tip. In this regard, a particular user help information entry may be used as multiple tips since they may be for different entries in the list 108. With respect to a task, a tip may indicate the method, e.g., the steps of the method and/or sequence of performing the steps, for completing the task.
[11] One or more entries in the list 108 may be uniquely identified. For example, the
identification may be by an assigned identification number, a memory address at which it is listed, or any other conventional way in which to uniquely identify a particular stored data element. For a user, a corresponding user history 112 may be stored that identifies particular programs, program features, tasks, and/or subtasks of the list 108 used or performed by the user, or attempted to be used or performed by the user, e.g., with a memory address pointer or with a unique identification number. When the user attempts to or does use a program or program feature, or attempts to or does perform a task or subtask listed in the list 108, the system may update the user history 112 to include an identification of the event. Specifically, the system may update the user history 112 to indicate whether the task was successfully completed, failed, or abandoned. A non-exhaustive list of additional information that may be stored in the user history 112 is a number of times a particular event has occurred, a date and/or time of the occurrence of the event, identifications of tips previously provided to the
user, identification of particular ones of alternative methods used by the user for performing a task or subtask, and/or information regarding the user's role, e.g., manager, clerk, etc.
[12] A plurality of user histories 112 may be stored, each for a different user. For example,
users may log into a system that provides for access by the user to use programs. Each user may be assigned a different log-in ID. The log-in ID may be a username entered by the user during log-in. Alternatively, a plurality of terminals, which may each be uniquely identified, e.g., via a network address, may be provided with access to the system. For each username, or terminal, a corresponding user history 112 may be stored.
[13] In an example embodiment of the present invention, for a user the system may assign
programs, program features, tasks, and/or subtasks (any one of which is referred to herein generally as a system element) to tip priority categories. The assignment may be based on data of the user history 112 corresponding to the user. The system may determine from the user history 112 which programs and tasks are most often used and performed by the user. Those that are most often used and performed, may be assigned a highest priority since they are most relevant to the user. For example, the system may compare the use and performance numbers assigned to each of the programs, program features, tasks, and/or subtasks, and may sort them.
[14] In one example embodiment, the system and method may sort a combination of the
listed programs and tasks, and their sub-listings. In an alternative embodiment, programs and their sub-listings may be sorted separately from tasks and their sub-listings.
[15] Example priority categories may be high, medium, and low. For example, each category
may be fixedly assigned a predetermined interval of use and/or performance numbers. For example, if it is determined that a user used or attempted to use a program or performed or attempted to use a task a number of times that falls in an interval of 150 to 200, the program or task may be assigned a high priority; if it is determined that the user used or attempted to use a program or performed or attempted to use a task a number of times that falls in an interval of 100 to 149, the program or task may be assigned a medium priority; and if it is determined that the user used or attempted to use a program or performed or attempted to use a task a number of times that is less than 100, the program or task may be assigned a low priority.
[16] In an alternative embodiment, the system may dynamically determine the tip priority
categories based on the user's use and performance numbers. According to one exemplary
calculation, the system may determine the range of the user's use and performance numbers,
and may allocate predetermined percentages of the range to the different tip priority
categories. Accordingly, if of a total of 100 listed programs and/or tasks, it is determined that a
user used or performed one or more of them 0 times, one or more of them 199 times, and
none more than 199 times, the system may determine the range to be 0-199. Consider this
embodiment as applied to an instance where the predetermined percentages allocated to each
of three categories is 25% to a high priority category, 25% to a low priority category, and 50%
to a medium category. In this instance, the system may assign to the high priority category
any listing for which the implementation number falls in an interval of 150 to 199; to the
medium priority category any listing for which the implementation number falls in an interval of
50 to 149; and to the low priority category any listing for which the implementation number
falls in an interval of 0 to 49. (An implementation number, as referred to herein, is either a use
or performance number.)
[17] It will be appreciated that other variations for determining priority categories are
permissible. For example, a rule set according to which the priority categories may be determined may provide that at least a predetermined number of listings are to be assigned to a particular one of the categories. Further, it will be appreciated that the categories discussed above are provided as examples, and that the listings may be assigned instead to other categories. For example, they may be assigned to more than or less than the three categories discussed above.
[18] In an embodiment of the present invention, the system may output tips of different
categories at different frequencies. A particular frequency may be assigned to a particular category. Alternatively, the tips may be output according to a ratio of the categories to each other. For example, for every 3 output tips of high priority, 2 tips of medium priority and 1 tip of low priority may be output.
[19] It will be appreciated that instead of priority categories to which an interval of
implementation numbers are assigned, tip priorities may be assigned directly to each listing according to a sort, so that for every implementation number, a different priority is assigned.
[20] In an example embodiment of the present invention, one or more of the entries of the
list 108 may be associated with one or more entries of the list 108. For a particular entry having assigned a particular priority category, there may be a corresponding plurality of tips of the user help information 110. The tips may include one or more entries in the user help information 110 to which the particular entry of the list 108 directly corresponds and may also include entries in the user help information 110 to which directly corresponds those entries of
the listing 108 with which the particular entry is associated. It may therefore occur that a tip
that directly corresponds to an entry of the list 108 that is assigned to a low priority category based on its implementation number is output as a high priority tip.
[21] For example, Fig. 2 is a map of an exemplary logical association of entries of the list 108
(shown as boxes) to each other and to entries of the user help information 110 or tips (shown as circles). If entry (1) of list 108 is assigned to a high priority category, the entries (1) of user help information 110 may be output as high priority tips. Further, the entries (2) of the user help information 110 may be output as high priority tips since they are associated with an entry (2) of the list 108 with which the entry (1) of the list 108 is directly associated. Entries (4) of the user help information 110, however, may be output as low priority tips (depending on the priority category of the entry (4) of the list 108) since the entry (1) of the list 108 is not directly associated with the entry (4) of the list 108.
[22] According to an example embodiment of the present invention, a number of steps
removed from a source entry assigned to a high or higher priority category may be considered when determining a priority category of an entry of the list 108. It is noted that the steps removed does not refer to sequence of the listing, but rather to the entries' logical associations. A source entry may be an entry for which a priority category is determined without consideration of a number of steps that the entry is removed from another entry. In one example embodiment, an entry may be assigned two categories. A first category may be that which is determined without consideration of steps of removal from another entry and a second category may be that which is determined with consideration of steps of removal. The first category of a particular entry may be used for determining a priority category of an entry one step removed from the particular entry, while the second category may be used for determining how the tips associated with the particular entry are to be output. For example, if entries (3) and (4) of the list 108 have implementation numbers that are the same or that fall in the same
interval, and that correspond to a low priority category, entry (3) of the list 108 may nevertheless be assigned to higher priority category with respect to output of tip entries than that of entry (4) of the list 108, since entry (3) is only 2 steps removed from entry (1), while entry (4) is 3 steps removed from entry (1). It will be appreciated that other variations of the extent to which steps of removal are considered are possible. In particular, an entry may be associated with a plurality of other entries and may therefore stem from a plurality of source entries of higher priority categories. A rule set may provide for consideration of a highest
category source entry," a closest source entry, or some combination thereof.
[23] In one example embodiment, a particular entry of the list 108 may affect the
determination of a priority category of a neighboring entry, in additional ways. Further, the way a first entry affects its neighboring entries may be different than the way a second entry affects its neighboring entries. The system may refer to a stored rule set to determine how each entry is affected by or affects its neighboring entries. For example, for a particular entry, a large disparity between its implementation number and that of its neighbor may raise the priority category of the neighboring entry. Different disparity numbers may be used for different entries, and not used at all for others. Further, a particular disparity number used may depend on the number of an entry's neighboring entries. For example, greater disparity number may be used for determining an effect of entry (3) of the list 108 on its neighboring entries, than a disparity number used for determining an effect of entry (1) of the list 108 on its neighboring entry. Further, implementation numbers of other neighboring entries of a particular entry's neighboring entry may be considered.
[24] For example, entry (1) of the list 108 may represent a task. Entries (2) of the list 108
may represent particular subtasks used for accomplishing the task represented by (1). If it is determined that a subtask corresponding to entry (2a) is implemented, e.g., for 90% of the implementations of the task corresponding to entry (1), then one or more of entries (2b-2d) may be assigned to a higher priority category than they otherwise would. In another instance, the rule set may indicate that entry (2b) is to be assigned to a higher priority category if it is determined that its corresponding subtask is implemented, e.g., for less than 2% of the implementations of the task corresponding to entry (1). These are but a couple of a plethora of calculations that may be made depending on a rule set.
[25] In an embodiment of the present invention, the system may take additional factors into
consideration when determining a tip's priority. For example, a high implementation number may render an entry of the list 108 a high priority entry, but the high implementation number, or even any implementation number above zero, may render an entry of the user help information 110 that directly corresponds to the high priority entry of the list 108 a low priority entry of the user help information 110, since its implementation may indicate the user's proficiency with respect to the entry, i.e., its implementation may indicate that the user is already aware of the Contents of the tip. In particular, whether the implementation was completed or otherwise abandoned or failed may be taken into consideration.
[26] In one example embodiment, different users may be assigned different roles. The user
history 112 may identify a user's role. The particular tips provided, the determination as to a tip's priority, and/or the determination as to a priority of a system element of the list 108 may vary depending on the user's identified role. For example, the user history 112 and the method of providing user help tips based on the user history 112 may be provided for a company portal. Company employees may log into the portal. A user history 112 may be maintained for each company employee, and may identify the employee's role in the company. A rule set may provide that one or more tips are to be output for employees of a first role but not for employees of a second role. Further, by default, certain programs, program features, tasks, and/or subtasks may be assigned particular priority categories depending on the employee's role. For example, it may be determined that an employee of a first role usually uses a particular program, while an employee of a second role usually does not. Accordingly, tips pertaining to the particular program would be particularly relevant to the employee of the first role, but not to the employee of the second role. For example, a supervisor may often use a program for managing a queue of requests generated by a number lower level employees. The lower level employees may use the program less often, and may even be denied access to the program.
[27] In an example embodiment of the present invention, a timestamp of an implementation
of a particular system element may be taken into consideration for determining the priority of the system element. For example, if a recorded implementation number of first program is greater than that of a second implementation number, but all, most, or a last of the implementations of the first program occurred at a much earlier time than all, most, or a last of
the implementations of the second program, the second program may be assigned to a higher priority category. In one exemplary application of this embodiment, a formula may be applied where an implementation number is multiplied by another number that is decremented by a predetermined amount for each passing day since a last implementation.
[28] Consider the foregoing embodiments as applied to an exemplary installation in which the
system provides for the management of Purchase Orders (P.O.). The system may provide for generating a P.O. Within an electronic P.O. form, a number of fields may be provided, of which one may be a drop-down box including a list of possible suppliers. The system may provide a way for the user to set a default supplier to be automatically selected. With reference to the user history 112, the system may determine that the user has set up a default supplier. The system may therefore refrain from providing a tip that informs the user of a method of setting up a default supplier.
[29] If the system determines based on the user history 112 that the user has not set up a
default supplier, the system may provide the tip to the user. However, the system may refrain from doing so, or may assign the tip a low priority, if the system determines that the tip is not relevant. For example, in one embodiment, the system may assign a high priority to a tip for informing a user of a shortcut method only if the system determines that the user has instead performed a longer method numerous times. For example, if the system determines from the user history that the user has not used the part of the system that facilitates generation of a P.O., or if the system determines that the user has used that portion of the system, but has not selected a same supplier from the drop-down box significantly more times than the user has selected one or more other suppliers, then the system may determine that the user has not used a long method a significant number of times, and may therefore assign the tip a low priority. However, if the system determines that the user has selected a same supplier a number of times more than any of the other suppliers, e.g., where the number of times exceeds a predetermined threshold value, or where the ratio of the supplier's selection to the other suppliers' sections exceeds a threshold value, then the system may assign the tip a high priority.
[30] In one embodiment, the tip may be shown daily or after predetermined time intervals.
In one embodiment, the system may display the tip when the user performs a task or uses a program to which the tip relates. For example, for each new task the user performs or for each
program the user uses, the system may select based on the user history 112 a particular tip that relates to the task and/or program and display it at that time. In one embodiment, the system may choose for display only one tip a day or per log-in but may refrain from displaying it until the user performs a particular task or uses a particular program to which the tip relates. If the tip relates to the overall system, the tip may be displayed immediately at log-in, but if the tip relates to setting up a default supplier, the system may wait until the user opens the P.O. generation part of the system before displaying the tip.
[31] In one example embodiment, the tips may be cycled. Once used, a tip is moved to the
end of the cycle. In one example embodiment, the cycle may include all tips of all categories, so that once a high priority tip is used, it may be moved to a position in the cycle behind a lower priority tip. Alternatively, separate cycles may be maintained for the different priority categories.
[32] Those skilled in the art can appreciate from the foregoing description that the present
invention can be implemented in a variety of forms. Therefore, while the embodiments of this invention have been described in connection with particular examples thereof, the true scope of the embodiments of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.
WHAT IS CLAIMED IS:
1. A method for providing user help tips, comprising:
determining, based on a user history, a relevance of a particular one of a plurality of tips to a user; and
assigning to the particular tip a priority category in accordance with the relevance.
2. The method of claim 1, further comprising:
outputting a plurality of tips over time so that a frequency at which tips of a first category are output and a frequency at which tips of a second category are output meet a predetermined ratio.
3. The method of claim 1, wherein the relevance is determined based on a recorded
implementation number of a system element with which the particular tip is associated.
4. The method of claim 3, wherein the system element is one of a program, a program
feature, a task, and a sub-task.
5. The method of claim 3, wherein, for a lapse of a predetermined amount of time since a
last implementation of the system element, the relevance is diminished.
6. The method of claim 3, further comprising:
determining a range of values of implementation numbers of a plurality of system elements;
dividing the range into a plurality of value intervals;
assigning each value interval to a corresponding priority category;
assigning the system element to the priority category to which a value interval in which the system element's recorded implementation number falls;
wherein the relevance is determined based on the priority category of the system element.
7. The method of claim 1, further comprising:
based on priority categories of the plurality of tips, outputting for the user tips relating to a first system element more frequently than tips relating to a second system element where the user implements the first system element more often than the second system element.
8. The method of claim 1, further comprising:
determining based on the user history that, for accomplishing a goal, the user implemented a first system element a number of times more than a second system element, the number exceeding a predefined threshold value;
and based on the determination that the user implemented the first system element the number of times more than the second system element, outputting a tip regarding the second system element.
9. The method of claim 8, wherein the goal is to select a supplier, the first system element
is one or more program steps for choosing from a list of suppliers, and the second system
element is one or more program steps for designating a supplier as a default supplier.
10. A computer-readable medium having stored thereon instructions adapted to be executed
by a processor, the instructions which, when executed, cause the processor to perform the
method of claim 1.
11. A method for providing user help tips, comprising:
for a user:
automatically prioritizing at least one of a plurality of system elements based on a user history;
automatically prioritizing at least one of a plurality of tips based on an association of the tip with a prioritized system element; and
outputting a tip according to its prioritization.
12. The method of claim 11, wherein the at least one system element is prioritized based on
at least one of a number of times it has been implemented, a recorded role of the user, a
timestamp of one or more of its implementations, and its association with another system
element.
13. The method of claim 11, wherein the plurality of system elements include at least one of
a program, a program feature, a task, and a sub-task.
14. The method of claim 13, wherein the prioritization of the at least one tip is further based
on a comparison of a number of times the system element with which the tfp is associated is
implemented with a number of times another system element is implemented.
15. The method of claim 14, wherein if the number of times the system element with which
the tip is associated is implemented is less than the number of times the another system
element is implemented, a priority of the at least one tip is heightened.
16. The method of claim 15, wherein the priority of the at least tip is heightened based on
the number of times the system element with which the tip is associated is implemented being
less than the number of times the another system element is implemented upon a condition
that an amount by which it is less exceeds one of a predetermined threshold amount and a
N
predetermined threshold ratio.
17. The method of claim 15, wherein each of the system element with which the tip is
associated and the another system element is a different one of a plurality of ways to
accomplish a same goal.
18. The method of claim 11, wherein:
a priority of a system element is heightened in accordance with a number of steps by which the system element is removed from a source system element having a higher priority; and
the number of steps by which it is removed is determined based on predefined interrelationship of the plurality of system elements.
19. The method of claim 11, further comprising:
based on a user role recorded in the user history, determining whether the user has access to a particular system element;
wherein, for the user a tip associated with the particular system element is output upon a condition that the user has access to the particular system element.
20. The method of claim 11, wherein based on the prioritization of the tips, tips relating to a
first system element are output for the user more frequently than tips relating to a second
system element where the user implements the first system element more often than the
second system element.
| # | Name | Date |
|---|---|---|
| 1 | 25-del-2006-abstract.pdf | 2011-08-21 |
| 1 | 25-DEL-2006-GPA-(12-04-2010).pdf | 2010-04-12 |
| 2 | 25-DEL-2006-Correspondence-Others-(12-04-2010).pdf | 2010-04-12 |
| 2 | 25-del-2006-claims.pdf | 2011-08-21 |
| 3 | 25-del-2006-gpa.pdf | 2011-08-21 |
| 3 | 25-del-2006-correspondence-others.pdf | 2011-08-21 |
| 4 | 25-del-2006-form-5.pdf | 2011-08-21 |
| 4 | 25-del-2006-description (complete).pdf | 2011-08-21 |
| 5 | 25-del-2006-drawings.pdf | 2011-08-21 |
| 5 | 25-del-2006-form-3.pdf | 2011-08-21 |
| 6 | 25-del-2006-form-1.pdf | 2011-08-21 |
| 6 | 25-del-2006-form-2.pdf | 2011-08-21 |
| 7 | 25-del-2006-form-1.pdf | 2011-08-21 |
| 7 | 25-del-2006-form-2.pdf | 2011-08-21 |
| 8 | 25-del-2006-drawings.pdf | 2011-08-21 |
| 8 | 25-del-2006-form-3.pdf | 2011-08-21 |
| 9 | 25-del-2006-description (complete).pdf | 2011-08-21 |
| 9 | 25-del-2006-form-5.pdf | 2011-08-21 |
| 10 | 25-del-2006-gpa.pdf | 2011-08-21 |
| 10 | 25-del-2006-correspondence-others.pdf | 2011-08-21 |
| 11 | 25-DEL-2006-Correspondence-Others-(12-04-2010).pdf | 2010-04-12 |
| 11 | 25-del-2006-claims.pdf | 2011-08-21 |
| 12 | 25-DEL-2006-GPA-(12-04-2010).pdf | 2010-04-12 |
| 12 | 25-del-2006-abstract.pdf | 2011-08-21 |