Elision based presentation of ordered data
The present invention relates generally to a graphical interface for data presentation by a computer user. More particularly, the present invention relates to a space efficient, elision based menu system for presenting data that is suitable for use in visual displays of limited size. 
     BACKGROUND AND SUMMARY OF THE INVENTION 
     The use of menu based selection systems for user control of software systems is widely practiced. Menu selection with simple key presses or pointing devices (such as a touchpad or a mouse) eliminates training and memorization of complex command sequences, and can impart information not otherwise readily available to a user. Menus can be used to access information, or for initiation of actions that control software and hardware. Because of their ease of use as compared to command line instructions, pull-down or pop-up menus such as those first employed in the Xerox Star computer have been widely adopted by the computer industry. 
     However, menu systems are not without disadvantages. Organization of large menu systems suited for use by an inexperienced user can be difficult. If too many menu options are available, it is difficult or impossible to simultaneously fit all the menu choices on a screen. In practice, this has led to the development of hierarchical menu systems, usually tree based, that only present information at one level of the tree at a given time. For example, a user can move higher or lower in binary, ternary, or k-ary tree (where k is an integer representing the number of choices at each level of the tree) to select a desired menu option, with only a relatively few choices having to be made by the user at each level. 
     Unfortunately, design of a easily usable hierarchical tree menu system is not simple. Menu options or data items may logically belong in several different categories, forcing duplication of entries at different levels of the tree. In addition, users can literally become lost or disoriented in the tree structures having large depth (number of levels) and breadth (number of choices, options, or data available at each level). This problem is prticularly acute in systems having limited screen display space. To fit within screen constraints, the menu designer is forced to provide &#34;narrow&#34; trees having little breadth, with a &#34;deep&#34; level structure. This necessary trade-off between depth and breadth is not to the benefit of a user, who often becomes disoriented after proceeding as few as four or five levels down in the tree structure. Even more importantly, having greater depth in a tree structure usually leads to an increase in the number of menu selections required by a user to complete a task, disrupting work flow and greatly irritating the user. 
     To alleviate the problems associated with tree structures, menu designers have employed a technique commonly known as &#34;scrolling&#34;. A scrolling menu presentation shows only a small portion of the complete menu options. In a common type of scrolling window application, a user accesses other menu options by clicking on arrow keys in a scroll bar to rewrite the display with new choices that are alphabetically ordered before or after the currently displayed scrolling window. Although this method reduces disorientation associated with deep trees, the breadth problems associated with selecting one choice in a long list are enhanced. This may require a user to endure multiple screen rewrites to scroll through a long list of menu choices. Even if shortcuts to particular portions of a long list exist (e.g., pointer selection on a scroll bar to move halfway down a list), such shortcuts often require a guess as to where in a list a desired menu option may be found. 
     Accordingly, the present invention reduces problems associated with ordering data in deep or wide trees, scrollable lists, or other known methods for organizing data structures for presentation to a user by providing a novel elision based method for accessing members of an ordered data set. A selected ordered data set is divided into multiple ordered subsets. These subsets can be of varying size, but typically will contain approximately the same number of members in each ordered subset. At least one member of each ordered subset is then designated as a &#34;bracket&#34; member, with those members of each ordered subset not identified as bracket members referenced with a &#34;collective data member symbol&#34;. Normally, either the highest or the lowest member in the ordered subset is selected to be a bracket member, and an ellipsis &#34;. . .&#34; is used as the collective data member symbol. The ordered set of bracket members is then displayed, with a collective data member symbol also displayed between those bracket members separated from each other by two or more members in the ordered data set. 
     For example, a display showing integers between 1 and a 100, with an initial four ordered subsets, would appear as &#34;1 . . . 25 . . . 50 . . . 75 . . . 100&#34;. A user can select one of the displayed bracket members (1, 25, 50, 75, 100) to obtain more information about that bracket member, or initiate performance of an operation associated with that bracket member. 
     If a user does not need to select one of the displayed bracket members (1, 25, 50, 75, 100), other data members can be easily accessed by selecting an appropriate ellipsis. In a substantially recursive manner, the foregoing steps of the method of the present invention are repeated. Those members of each ordered subset not identified as bracket members, and arranged between a respective pair of bracket members (i.e., referenced with an ellipsis), constitute a new ordered data set capable of being divided into multiple ordered subsets. Ordinarily, the method of the present invention repeats itself until a user selects a bracket member, or alternatively invokes a call to escape the program. 
     As an example, consider that selection of the ellipsis between the integers 25 and 50 would result in a rewrite of the display to show &#34;1 . . . 25 . . . 30 . . . 35 . . . 40 . . . 45 . . . 50 . . . 100&#34;. Note that this displayed sequence permits backing up to the previous level by selecting the ellipsis between 1 and 25, or the ellipsis between 50 and 100. If the desired number is 35, a user can select the number 35 and initiate performance of the desired operation. If the number to be selected instead happened to be 37, the ellipsis between the numbers 35 and 40 is selected, with the rewritten display then showing &#34;1 . . . 35, 36, 37, 38, 39, 40 . . . 100&#34;. The user can then select the displayed bracket member 37, and initiate performance of an operation associated with the number 37. Note that the division into subsets in this example is variable, with the ordered data set 1 through 100 divided into four subsets on the display, the next lower level ordered data set of 25 through 50 is divided into five displayed subsets, and the lowest level simply displaying four bracket members (36, 37, 38, and 39) in the subset. Of course, as desired it is possible to select equal subset divisions at all levels. In fact this may present certain advantages, since choosing equal divisions allows for presentation at all levels in a substantially constant area of display screens. 
     In preferred embodiments, the method of the present invention adapts to the need of a user by preferentially selecting as bracket members those members of the data set determined likely to be selected to perform an operation by the user. This adaptive behavior greatly speeds the user selection process for data, since redrawing a screen based on the ordered subset of data is not required. The selection criteria for determining likelihood of user selection can vary, but may include preferentially selecting as bracket members those members of the ordered data set last selected by a user; preferentially selecting as bracket members those members of the ordered data set most frequently selected by a user; or even preferentially selecting as bracket members certain user determined members of the ordered data set. 
     In a most preferred embodiment of the present invention, the ordered data set is alphabetically ordered text. However, the data set can be numerically ordered, chronologically ordered, or even provide an order based on discrete measurements of physical quantities. For example, representations of color, hue, gray levels, temperature, area, length, etc., can be ordered in a manner suitable for use in conjunction with the present invention. 
     Another aspect of the present invention provides a recursive method for accessing members of an ordered data set. An ordered data set is divided into multiple ordered subsets, with an initial or terminal member of each ordered subset designated as a bracket member. Those members of each ordered subset not identified as bracket members are collectively referenced with a collective data member symbol. An ordered set of bracket members is displayed, with a collective data member symbol displayed between those bracket members separated from each other by two or more members in the ordered data set. When a user selects one of the bracket members, an operation is performed. 
     Yet another aspect of the present invention encompasses an apparatus for accessing members of ordered data sets too large to permit individual display of each member within a predetermined display area. This apparatus includes a display unit having a predetermined area configured to accommodate a defined number of representations of data members, a memory unit for storing ordered data and instruction data, and a user input device for receiving signals indicating selection of a representation of a data member by a user. The user input device can be a keyboard, a touch sensitive pointer, a mouse, or any other conventional selector mechanisms. Typically, the apparatus has a small (often less than 25 square centimeter) screen display, or alternatively can use only a small area of a larger screen display (e.g., a child window display, a pop-up menu, or a pull-down menu on a standard 17-inch CRT display). In fact, utility in conjunction with small screen displays makes the method and apparatus of the present invention ideal for handheld devices, or those devices having little available space or need for a standard large format display screen. 
     The apparatus also includes a processor connected to receive data from the user input device, with the processor being further connected to the display unit to control display of representations of data members, and to the memory unit to access stored ordered data and instruction data. The processor is configured to execute instructions that provide for dividing an ordered data set stored in the memory unit into multiple ordered subsets, designating at least one member of each ordered subset as a bracket member, and referencing those members of each ordered subset not identified as bracket members with a collective data member symbol. In response to processor instructions, the display unit displays an ordered set of bracket members, with a collective data member symbol displayed between those bracket members separated from each other by two or more members in the ordered data set stored in the memory unit. When a user selects one of the bracket members with a pointing device or other conventional user input device, an operation such as data retrieval or initiation of software or hardware control is performed by the processor. 
     Other objects and advantages of the present invention will become apparent to those skilled in the art upon consideration of the following description of the drawings and preferred embodiments. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 schematically illustrates one possible k-ary menu tree for representation of letters of the alphabet as an alphabetically ordered data set, with bracket members (letters) separated by an ellipsis acting as collective data member symbol, and three tree levels shown; 
     FIG. 2 is a schematic representation of a screen display presenting information related to the second level of the k-ary tree of FIG. 1 within a limited screen space. A touch sensitive pointer is indicating user selection of an ellipsis between the letters &#34;t&#34; and &#34;z&#34;; 
     FIG. 3 is a schematic representation of the screen display of FIG. 2 as it has been rewritten in response to user selection of the ellipsis, with the touch sensitive pointer indicating the letter &#34;w&#34; to initiate an action such as retrieval of information related to the letter &#34;w&#34;; 
     FIG. 4 schematically illustrates adaptive reorganization of the k-ary menu tree shown in FIG. 1 after selection of the letter &#34;w&#34; as shown in FIGS. 2 and 3; 
     FIG. 5 is a schematic representation of a screen display presenting information related to the second level of the k-ary tree of FIG. 4 within a limited screen space. A touch sensitive pointer is indicating user selection of the letter &#34;w&#34;, now designated as a bracket member at the second level of the k-ary tree (contrast with FIG. 1, in which &#34;w&#34; is a bracket member at the third level of the k-ary tree); 
     FIG. 6 illustrates a handheld computer having a small screen size that can be used to determine the location of individuals upon selection of an individual&#39;s name. A pointing device illustrates selection of an ellipsis between individuals represented by &#34;preas&#34; and &#34;shenker&#34;; 
     FIG. 7 illustrates the screen of the handheld computer of FIG. 6 after selection of the ellipsis. A pointing device illustrates selection of the name of the present inventor &#34;schilit&#34;; 
     FIG. 8 illustrates the screen of the handheld computer of FIG. 7 after selection of the name &#34;schilit&#34;, with information about his location in room 2101 and the time and date being shown; 
     FIG. 9 illustrates the screen of the handheld computer of FIGS. 6-8, with the k-ary tree ordering name data having been adaptively reorganized after the selection of the name &#34;schilit&#34; in FIGS. 7 and 8 to now allow screen presentation of the name &#34;schilit&#34; at the top level of the k-ary tree ordering; 
     FIGS. 10-14 sequentially illustrate selection of the word &#34;computer&#34; from a thesaurus application capable of running on a handheld computer with a small screen size; 
     FIGS. 15a-15g are charts illustrating flow logic in accordance with the method of the present invention to adaptively organize and present ordered information on a small display; 
     FIGS. 16 and 17 respectively illustrate example screens having ordered chronological information, with a first level screen displayed In FIG. 16 and the second level screen display after selection of the indicated ellipsis in FIG. 16 shown in FIG. 17; 
     FIG. 18 and 19 respectively illustrate example screens display having ordered color information, with the first level screen displayed in FIG. 18, and the second level screen after selection of the indicated box representing a collective omitted color data symbol in FIG. 18 being shown in FIG. 19; and 
     FIGS. 20 and 21 illustrate example screens having ordered area information, with the second level screen display after selection of a blank space in FIG. 20 being shown as FIG. 21. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     As illustrated in FIG. 1, a simple example of a k-ary menu tree 10 having logical structure suitable for use in the method of the present invention has a first level 1, a second level 2, and a third level 3. The third level 3 is composed of twenty-six members representing an alphabetic data set 12. As one would expect, the alphabetic data set 12 is conveniently organized in alphabetical order, with the letter &#34;a&#34; first and the letter &#34;z&#34; last. 
     The alphabetic data set 12 is divided into six subsets 18, with five of the subsets 18 containing four members each, and the remaining subset containing six members (&#34;uvwxyz&#34;). This is represented at the second level 2 of the k-ary menu tree 10 by the combination of bracket members 16, and a collective data member symbol such as an ellipsis 14 (. . .). The ellipsis 14 represents those members in the subset 18 not displayed at the second level 2 while still being members of the appropriate subset 18 (as indicated by connecting lines in the tree structure). The bracket members 16 are one or more selected members from each subset 18. As shown in FIG. 1, the last member of each subset 18 (d, h, l, p, t, and z) is a bracket member, along with the first member of the entire alphabetic data set 12 (in this case, &#34;a&#34;). 
     Presentation of the k-ary menu tree 10 on a computer processor driven small screen display 20 is illustrated with reference to FIGS. 2 and 3. Because only a limited number of characters can be displayed (in the example, 4×4=16 characters), the entire alphabetic data set 12 with twenty-six members cannot be simultaneously displayed on the screen. Instead, a hierarchical, elision based method of menu presentation that displays selected bracket members (taken from the alphabetic data set 12) and the ellipsis 14 (to represent those omitted characters in order between the bracket members) is used to allow two step selection of any letter. 
     In the example shown in FIGS. 2 and 3, a user desires to select the letter &#34;w&#34;. As can be seen from inspection of FIG. 2, the letter &#34;w&#34; is not present on the screen. Instead, bracket members 16, separated by an ellipsis 14 are displayed. Since the user realizes that &#34;w&#34; lies between the letters &#34;t&#34; and &#34;z&#34; in conventional alphabetic ordering, the user selects the ellipsis positioned between those characters (reading left to right, top to bottom on the display). Selection is accomplished by bringing the tip 23 of a pointing device 22 into contact with the touch sensitive screen of the display 20. The screen display 20 is then rewritten to appear as shown in FIG. 3, allowing the letter &#34;w&#34; to be selected with the pointing device 22. If the user makes a mistake, and instead had wished to select a letter between &#34;a&#34; and &#34;t&#34;, the ellipsis positioned between those respective letters could be touched to back up to the level 2 indicated in FIG. 2. 
     A unique adaptive aspect of the present invention is indicated with reference to FIGS. 4 and 5. After user selection of the letter &#34;w&#34;, the screen display (shown in FIG. 5) and logical structure of the the k-ary menu tree 110 (shown in FIG. 4) is modified to reflect the increased likelihood that &#34;w&#34; will again be selected. The letter &#34;w&#34; is selected to be a bracket member, causing the subset to which &#34;w&#34; formerly belonged (&#34;uvwxyz&#34;) to be subdivided into subsets (&#34;uvw&#34; and &#34;xyz&#34;). Display of the letter &#34;w&#34; as a bracket member on the second level 2 positions that letter on the first screen shown to a user, eliminating the two step selection procedure discussed previously in connection with FIGS. 1, 2, and 3. 
     As those skilled in the art will appreciate, alternative methods for determining the most likely to be selected members of the data set can also be employed. It is contemplated that methods involving selection of bracket members historically selected with the highest frequency, those members defined as important by the user, or any other accepted selection criteria can be used in the method according to the present invention. In addition, the size of subsets defined by selection of bracket members can be varied, with both equal and unequal divisions of subsets being contemplated (e.g., subsets of the data set 12 could provide for relatively few members in the first portion of the alphabet, &#34;abcd&#34;, and many members toward the end, &#34;qrstuvwxyz&#34;). Variable member size of the subsets could be most useful in connection with ordered data sets that have widely varying access requirements within the data set. If the access requirements are unknown, or algorithmically costly to implement, equal division of members into multiple subsets is often adequate. 
     An example of a working application of the present invention is illustrated in FIGS. 6 through 9. A small, handheld processor based computer 120 with on-board memory and a user interface provided by pointer indicator 122 (mouse or touch sensitive screen controlled) is shown in those Figures. The computer 120 (known as the PARC TAB) can only display about 21 alphanumeric characters horizontally and eight alphanumeric characters vertically. In the Figures, the handheld computer 120 is being used to determine the location of an individual upon selection of that individual&#39;s name. The target name is &#34;schilit&#34;. Since the name &#34;schilit&#34; is not displayed on the initial screen of FIG. 6, the pointer indicator 122 is maneuvered to select an ellipsis sited between names of individuals represented by the terms &#34;preas&#34; and &#34;shenker&#34;. After this selection, the screen is rewritten as illustrated in FIG. 7. The desired name (that of the present inventor &#34;schilit&#34;) is selected, and the screen is rewritten as illustrated in FIG. 8 to display information about the location of &#34;schilit&#34; in room 2101 of Xerox PARC, along with the appropriate time and date. 
     Note that at any point in the selection process it is possible to move back up the tree by selection of an appropriate ellipsis, as well as down to the target name. For example, in FIG. 7, the first item in the list &#34;atkinson&#34; and its following ellipsis are present, as well as the last item in the list &#34;wirish&#34; and its preceding ellipsis. Selection of either ellipsis would cause the screen to rewrite and display the first level screen shown in FIG. 6. This feature enables a user to easily correct mistakes and move to other levels in the k-ary tree with little difficulty. The final screen shown in FIG. 8 illustrates the adaptive nature of the method and apparatus of the present invention, with the name &#34;schilit&#34; now appearing as a bracket member able to be selected on the initial screen presented to a user. 
     An alternative thesaurus application provides an indication of the power of the present invention for searching ordered lists with minimal display requirements and very few levels of search (search time being proportional to the log base k of the k-ary tree). As shown in FIGS. 10 through 14, a 29-thousand word thesaurus can be searched using the elision based method of the present invention to find the word &#34;computer&#34; in only four steps. 
     A flow chart illustrating the logic controlling presentation of data such as illustrated in FIGS. 6 through 14 is shown in FIGS. 15a through 15g. As shown in those Figures, FIG. 15a shows the top-level flow chart logic called &#34;Selection-Dialog&#34; comprising steps SD1 through SD6. This flow chart fragment initializes the collection of members (SD1) (e.g., words, phrases, numbers), extracts the bracket members (SD2), and repeatedly processes user input (SD3-SD6). FIG. 15b shows the flow chart logic called &#34;initialize&#34; comprising steps I1 through I4. The collection of members (e.g., words, phrases, numbers) is first read into the array called &#34;Items&#34; (I1); the number of members is recorded in ItemCnt (I2); and the array is sorted (I3) and weights are assigned to members to facilitate choosing bracket members (I4). FIGS. 15c and 15d show the flow chart logic called &#34;InitItem-Weights&#34; comprising steps IW1 through IW7 and &#34;Weight-Loop&#34; comprising steps WL1 through WL6. The purpose of these steps is to initialize the integer weight values for each members. Weight values serve the following purpose: for any subset of members, extracting the N members with the highest weights will provide the N bracket members required for the selection procedure. Steps IW1 through IW7 evenly spread the high value weights within the Items array. This causes the size of the elided regions to start out even. For example, with 72 entries the weights are distributed as follows: 72 57 56 55 54 71 53 52 51 50 70 49 48 47 46 69 45 44 43 42 68 41 40 39 38 67 37 36 35 34 66 33 32 31 30 65 29 28 27 26 64 25 24 23 22 63 21 20 19 18 62 17 16 15 14 61 13 12 11 10 60 9 8 7 6 59 5 4 3 2 58 1. 
     FIG. 15e shows the flow chart logic called &#34;Selection-Event&#34; comprising steps SE1 through SE7. Selection-Event handles user input during the dialog if the user selects an item (bracket member) then does the action for that item (SE4). If the user selects the elision &#34;. . . &#34; between two items (bracket members), the display is redrawn to show members contained within range of the bracket members (SE6-SE7). FIG. 15f shows the flow chart logic called &#34;Extract&#34; comprising steps EX1 through EX7. Extract is invoked with a &#34;first&#34; and &#34;last&#34; index into the Items array representing the elided range of items(members) that currently comprise the user&#39;s focus. The object of Extract is to select new bracket members and store them into a Table to later show to the user. Step EX1 determines how many items will be in Table. Step EX2 stores in a temporary set called List the most significant items in the selected range. Step EX3-EX5 makes sure that the first and last members are present in List to facilitate navigation. Finally the bracket members are stored into Table (EX6)and sorted (EX7). FIG. 15g shows the flow chart logic called &#34;Draw-Elision-Table&#34; comprising steps DE1 through DE6. This flow chart presents the contents of the array Table (filled in by Extract) to the user. All members in Table are printed (DE3) and if two members bracket a non-empty range of members then these missing members are shown by drawing an elision (&#34;. . .&#34;) (DE5). 
     As will be appreciated by those skilled in the art, not only textual material can constitute the ordered data searchable by the method of the present invention. For example, FIGS. 16 and 17 respectively illustrate example screens having ordered chronological information (such as a history time table) in years before common era (BCE) or after common era (ACE). A first level screen is displayed In FIG. 16 and the second level screen display after selection of the indicated ellipsis in FIG. 16 shown in FIG. 17 for this example. 
     Alternatively, FIG. 18 and 19 respectively illustrate example screens display having ordered color information, with the first level screen displayed in FIG. 18, and the second level screen after selection of the indicated box representing a collective omitted color data symbol in FIG. 18 being shown in FIG. 19. This application enables a user to easily select any color in the spectrum, with the ordering information internally represented by light wavelength. 
     Finally, FIGS. 20 and 21 illustrate example screens having ordered area information, with the second level screen display after selection of a blank space in FIG. 20 being shown as FIG. 21. Differing size ranges can be selected with this particular application, which internally orders the data by areal size. 
     While the present invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and variations will be apparent to those skilled in the art. Accordingly, the various embodiments described herein should be considered illustrative, and not limiting the scope of the present invention as defined in the following claims.