The present invention relates to user interfaces for electronic data systems and in particular to a user interface which promotes interface categories as a function of how recently a user has interacted with that category.
Good user interface design balances comprehensive access to a wide range of information or functions with rapid access to particular information or a particular function.
One way of managing a large universe of information or functions is through a tree structure that allows the user to navigate to the functions or information by deciding among a limited number of branch levels, at each level of the tree, for successive levels. Such systems provide order to a large amount of information or function selections but suffer from the drawback that frequently used information requires substantial tree traversal time.
As an alternative, user interfaces may use a search feature that allows a user to rapidly access functions or information by searching for keywords associated with the function or information. Search features are limited by requiring the user to know the particular keyword or its approximation in order to use the search effectively.
Another approach to this problem presents a “hotlist” of frequently used information or functions (list elements) to the user based on their history of usage. This approach takes advantage of a recognition that most users concentrate on a limited set of user interface features. The hotlist provides an ordering of list elements so that elements at the “top” of the hotlist may be preferentially displayed in the order of their usage.
A simple hotlist system promotes the most recently used list elements to the top of the list while demoting the remaining list elements downward by one position. The advantage to such a system is that a single list-order number describing the ordering of the hotlist may be associated with each list element eliminating the need for storage of separate historical usage information.
The present invention provides an improved hotlist system which, like conventional hotlists, only requires a single list-order number for each list element but which provides a more nuanced sorting of the list elements that can reflect a history of user interaction beyond the most recent interaction with the list element. Generally, list-order numbers for the list elements are increased each time the user interacts with the list element and this increase is a function of the distance between the list element and an adjacent list element (measured by differences between list-order numbers). In this way, the system provides a simple index structure for a hotlist that can be responsive to a history of recent user interactions and yet which responds rapidly to a change in user interaction patterns, allowing list elements to quickly overtake other list elements regardless of their history when particular list elements are frequently used.
Specifically, the invention provides a user interface system having one or more electronic computers including a memory, display, user interface and electronic processor. The electronic processor executes a program to display elements on the display according to a display order, the display dements invokable by the user through the user interface to control operation of the one or more electronic computers. The program controls the display order using a hotlist data structure held in memory and providing a set of list-order numbers associated with each menu element defining a display order of the display elements according the relative values of the list-order numbers of each menu element. Invocation of the display elements is monitored to change a given list-order number associated with a given invoked menu element by changing a value of the given list-order number by an amount dependent on a separation in value between the given list order number and a list order number of an adjacent menu element in the display order. After adjustment of the given list-order number, the display of the display elements is updated.
It is thus a feature of at least one embodiment of the invention to capture both historical information about menu item use and menu item order in a single term by making use of both the cardinal and ordinal qualities of each list-order term.
The given menu element may not be the highest menu element in the display order and the adjacent menu element is a next higher menu element in the display order, Alternatively, the given element may be a highest menu item in the display order and the adjacent menu element is a next lower menu element in the display order.
It is thus a feature of at least one embodiment of the invention to provide a historically sensitive ranking system that can work for each element in the list.
The amount of adjustment of each list-order number maybe a fraction of the separation in value between the given list order number and the list order number of the adjacent menu item plus a fixed increment.
It is thus a feature of at least one embodiment of the invention to provide a simple and efficient method of adjusting list-order numbers.
The method may further include the step of normalizing the list-order numbers of the hotlist data structure to at least one predetermined normalization value.
It is thus a feature of at least one embodiment of the invention to ensure computer variable range limitations are not violated.
The system may allow adding a new menu element into the display order between existing display elements by adding a corresponding list-order number to the hotlist data structure having a value between values of the list-order numbers of the existing display elements and displaying the new menu element.
It is thus a feature of at least one embodiment of the invention to provide a simple method of integrating new display elements in the hotlist.
The system may also allow deleting a menu element in the display order by removing a list order number from the hotlist data structure and no longer displaying display elements that have no list order number.
It is thus a feature of at least one embodiment of the invention to allow the deletion of menu items from the list.
The system may select from multiple hotlist data structures according to at least one of an identity of a user, an identity of a user's role, or an identity of a user's task.
It is thus a feature of at least one embodiment of the invention to allow individuals either within a group or sharing a same functional role to share a hotlist and thus benefit from the usage patterns of other individuals.
The invocation of the menu element may be the providing of focus to the menu element by the operating system.
It is thus a feature of at least one embodiment of the invention to permit capturing usage information at a high level without the need to modify multiple functions or the operating system.
The list order numbers may be floating-point number representations.
It is thus a feature of at least one embodiment of the invention to provide a simple method of encoding separation distances between hotlist items that admits to substantially arbitrary divisions and separations.
These particular objects and advantages may apply to only some embodiments falling within the claims and thus do not define the scope of the invention.
Referring now to
The user terminal devices 24, as will be understood in the art, may provide for display screens and user input devices such as keyboards, mice, etc., coordinated through an associated processor and memory holding an operating system and one or more application programs or the like. Typically the user terminal devices 24 will execute browser functionality to display data elements and to execute functions in coordination with server 12 as is generally understood in the art.
The memory 16 of the server 12 (in communication with the mass storage device 20) may include, for example, a database program 26 and a network server program 25 as coordinated by an operating system 31 as is generally understood in the art, for example, a Windows or Linux operating system. The electronic memory 16 may also include an adaptive menu program 30 of the present invention as will be described below providing multiple hotlists 34 associated with individuals as will be discussed below. The adaptive menu program 30 will operate to invoke various functions 28, for example, for the display or manipulation of data in the storage device 20.
Referring now to also to
The tabs 32 will be logically associated with a hotlist 34 including a set of logical rows of list elements 33, each row related to one tab 32, and each row having different logical columns related to different categories of information or type of function. Each list element 33, for example, may link tab information 36, for example, pointing to particular information or a program executable when the tab 32 has focus, to a list-order number 38 used to determine the order of the list elements 33 and hence the tabs 32 as displayed on the terminal device 24. The list-order numbers 38 also define a subset of tabs 32 that will be displayed, the subset normally being the “top” tabs 32 according to a sorting of the hotlist list-order numbers 38. In this regard, it will be appreciated that a wide variety of different displays can be associated with a hotlist 34 other than one incorporating tabs 32 including the pulldown menu displays, bulleted lists of hotlinks, tree displays, text lists and the like. Henceforth these different application elements (tabs 32, pulldown menu elements, bulleted lists, etc.) will be termed collectively display elements 32.
As will now be discussed, the list-order numbers 38 of the hotlist 34 are adjusted according to recent interactions by the user with the associated functions or information for each list element 33, for example, measured by how often the menu item is invoked or “clicked”. Changing the list-order numbers 38 changes the display order of the display elements 32 in the hotlist 34 and hence defines which display elements 32 are displayed and the order of the display of the display elements 32.
Generally, a different hotlist 34 may be associated with each different user so that the hotlist provides a personalized user experience. This may be done, for example, by providing a different hotlist linked to a user identification 35 for each user based on the user's login information. Similarly, hotlist 34 may be associated with departments or functions within a business so as to contain a historical “memory” of transactions within that department or business that may be shared by all users. In this case the user identification 35 may be a department embracing a variety of login credentials. Likewise a hotlist 34 may be associated with particular activities by a user for which all of the elements of the hotlist 34 may be relevant but may have different importance. Multidimensional hotlist 34 may relate to particular combinations of individuals tasks or departments coded in the user identification 35
Referring now to
At any time after this initialization, as indicated by process block 42, a new list element 33 may be entered into the hotlist 34 by assigning it a list-order number 38 within the range of list-order numbers. When the new list element 33 is intended to be inserted between two other list elements 33, the assigned list-order number 38 of the new list element 33 will be numerically between the list-order numbers 38 of the flanking list elements 33. Thus, for example, if element C is to be placed between element A, the latter having an list-order number 38 of 1.3 and element B, the latter having an list-order number of 1.4, element C may be given an list-order number of 1.35. One method of selecting this list-order number is simply to average the list-order numbers of the flanking display elements 32.
If the new list element 33 is to be the top list element, it may be given a list-order number 38 larger than any other list element 33. Thus, for example, if element C is to be placed at the top of the hotlist 34 and the currently highest valued list-order number is 1.4, element C may be given a list-order number of 2.4. One method of selecting such a list-order number is to add one to the highest value of the existing list-order numbers.
A list element 33 may be removed at any time without adjustment of the list-order numbers 38 of the remaining list elements 33. The list element 33 may be removed or its list order-number removed (i.e. set to a null value) to similar effect
It will be appreciated that this change in the hotlist 34 will be accompanied by corresponding graphical changes in the display of the display elements 32 to insert the menu element 32 in a particular location between existing display elements 32, or to place a new menu element 32 on the display (typically removing a lower ranked menu element) or to remove a menu element 32 promoting a lower ranked menu element 32 and those elements below that menu element 32.
Once the elements of the hotlist 34 have been assembled, their ordering may be changed upon interaction by the user with a given menu element and corresponding hotlist element 33 (designated Ei in
Per process block 44, interaction can be flexibly defined, for example, to mean a viewing of particular data elements associated with the list element 33 or invoking a function associated with the element 33. In one example, any menu element 32 that has “focus” as defined by the operating system may be counted as an interaction at the time of receiving focus. Note that focus may be distinguished from the visibility of the menu element 32 in that a visible menu element 32 may still not have focus attained by clicking on the tab with the mouse or the like.
At decision block 46, a determination is made as to whether element 33 associated with Ii (being the subject of interaction) is the uppermost element (e.g., having a list-order number 38 designated I0). If not, the program 30 proceeds to process block 48 and an updated list-order number Ii is calculated computing the difference between Ii of the current element and the list-order number of the next highest element Ii-1, adding to that difference a constant fractional value c between zero and one (in this example 0.1) and dividing that entire quantity by a step value D greater than one (in this example 2) per the following equation (1):
Referring now to
The modification of equation (1) will increase the value of Ii for list element C by one half the distance between element C and the next highest element B plus a small increment c as indicated by arrow 50. Specifically, the list-order number 38 for C will increase from 3 to 3.55 per the following calculation:
In this way, in the next interaction with C, the height of element C (and hence its list-order number 38) will be such as to have taken over the position of second place list element 33 (B) per arrow 52 upon a succeeding sorting of the list elements 33 at process block 54 shown in
The parameter D roughly determines how many interactions with a given list element 33 are necessary to bring a given list element above the next higher list element. This number of necessary interactions is largely independent of the separation between the given list element 33 and the next higher list element 33 thus preventing a given list element from being submerged for a long period of time beneath a higher list element that was previously popular over a long period of time but is no longer popular.
The increment c prevents ties between successive list elements 33 as they are promoted (e.g., being the ease where both have the same list-order number 38) and prevents the step distance of rising element C (being determined with respect to its distance from element B) from carrying over into the transition of rising element C with respect to element A.
it will be appreciated that the system is sensitive to the history of interactions between the user and the user interface beyond the most immediate interaction (the history being proportional to D) but does not require separate history data to be stored because this history is implicitly stored within the list-order numbers 38.
At process block 56, after the sort block of 54, each of the list-order numbers 38 for each list element may be re-normalized by dividing them by the mean value although it will be recognized that this process need not occur upon each change of an element because the sorting will remain unaffected by this step which is intended simply to prevent long-term overflow.
At process block 58, the display on the terminal devices 24 as provided by the server 12 may be changed according to the new sorting of the hotlist 34, for example, as shown in
Referring now to
The result is that list element 33 associated with list-order number I0 continues to rise as indicated by arrow 60 albeit not in a way that prevents lower elements 33 from quickly catching up to it.
The program 30 then proceeds through process blocks 54, 56, and 58 as discussed above before looping back to either of process blocks 42 or 44 depending on the next interaction.
While the example shows the list-order numbers as floating-point fractional numbers, it will be appreciated that they may also be integers, for example, normalized to a large number, for example, 10,000, to ensure adequate space for introduction of new list elements. Calculations described above may then be performed with integer arithmetic.
Certain terminology is used herein for purposes of reference only, and thus is not intended to be limiting. For example, terms such as “upper”, “lower”, “above”, and “below” refer to directions in the drawings to which reference is made. Terms such as “front”, “back”, “rear”, “bottom” and “side” describe the orientation of portions of the component within a consistent but arbitrary frame of reference which is made clear by reference to the text and the associated drawings describing the component under discussion. Such terminology may include the words specifically mentioned above, derivatives thereof, and words of similar import. Similarly, the terms “first”, “second” and other such numerical terms referring to structures do not imply a sequence or order unless clearly indicated by the context.
When introducing elements or features of the present disclosure and the exemplary embodiments, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of such elements or features. The terms “comprising”, “including” and “having” are intended to be inclusive and mean that there may be additional elements or features other than those specifically noted. It is further to be understood that the method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
References to any computing device can be understood to include one or more computing devices that can communicate in a stand-alone and/or a distributed environment(s), and can thus be configured to communicate via wired or wireless communications with other processors, where such one or more processor can be configured to operate on one or more processor-controlled devices that can be similar or different devices. Furthermore, references to memory, unless otherwise specified, can include one or more processor-readable and accessible memory elements and/or components that can be internal to the processor-controlled device, external to the processor-controlled device, and can be accessed via a wired or wireless network.
It is specifically intended that the present invention not be limited to the embodiments and illustrations contained herein and the claims should be understood to include modified forms of those embodiments including portions of the embodiments and combinations of elements of different embodiments as come within the scope of the following claims. All of the publications described herein, including patents and non-patent publications, are hereby incorporated herein by reference in their entireties.
This application claims the benefit of U.S. provisional application 62/216,682 filed Sep. 10, 2016, and hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62216682 | Sep 2015 | US |