# Patent

## Title
Method and apparatus for physically manifesting costume objects in a

## Abstract

This is a division of application Ser. No. 08/412,393 filed Mar. 28, 1995, now abandoned.

## Background
The invention concerns a method and apparatus for subjecting a large schedule of data items having multiple attributes to consecutive selection criteria in order to reduce the number of individual programs to a manageable group which can be visually searched for a desired data item having a selected subset of the attributes, and more particularly to an apparatus and method which use an interactive control having directional buttons and a select button that are used in conjunction with an interactive display viewed on a normal television set to select the desired data item.

Presently there are known methods for reducing a large quantity of data into a manageable set of data which can be visually searched for a desired item by a decision maker. One example of such a large quantity of data is a directory of a fixed drive of a computer system. Methods implemented through interactive graphical user interfaces for personal computers and workstations display and reduce disk drive directories to root directory displays which typically show root level files and one or more branch subdirectories for the user's selection. Upon selection of a subdirectory, usually by a mouse, the display typically shifts showing files of the selected subdirectory and sub-subdirectories for further selection. The subdirectory display is often too big to fit on the screen, so interactive scroll bars are typically provided so the display may be controlled by a mouse. Using the mouse and the scroll bars, a user may work down the directory tree structure until the desired file is found. Such graphical user interfaces are common for computers and monitors where visual definition is typically at least 640.times.480 pixels for each display. Such techniques might be used in homes to access databases of useful information, such as airline schedules, television programming schedules and movie-on-demand catalogues. Unfortunately, each home does not have a computer or work station with 640.times.480 pixel definition which could take advantage of such existing databases. Further, the NTSC television set which almost every home has in its living room has relatively low viewing definition compared to 640.times.480 pixels or more per screen definition of computer monitors. Moreover, the typical home television set is not connected to a mouse, which is not an appropriate pointing device for the living room, rather most television sets have controls on control panels and/or on a remote controls. If just a fraction of these home television sets were used to find and select airline ticket reservations, programs to watch on 300 hundred or more channel cable television services, or pay-per-view movies from a vast collection, the profitability of the service providers and the satisfaction of the users would both be improved. The 300 plus channels mentioned, may use any type of transmission scheme that will deliver information via a cable or wireless path and includes but is not limited to time division multiplexed channels, frequency division multiplexed channels and packet data multiplexed channels.

One known approach for the TV programming schedule is to display the presently showing programs along with the next subsequent programs for the next hour or so, on what is referred to as a preview channel. Because this is more information than can be legibly displayed on one television screen at once, the preview channel display often scrolls through all the channel offering for the present time and the near future. For a sixty channel system, one complete scrolling takes about three minutes. At such a rate, a one hundred channel cable service would take five minutes and the future three hundred plus channel cable services would take 15 minutes. Needless to say, three minutes is a long time, but acceptable because breaks between programs are about that long. Five and fifteen minutes time periods though represent a substantial portion of a 30 minute program and are simply too long to expect a TV viewer to wait. The alternatives of speeding up the scrolling rate or using smaller size letters for descriptions are not practical either because either of these actions reduces the ability of the viewer to read and understand the schedule. Thus, there is a need in the art for a method and apparatus that allows a viewer to quickly find and select a desired data item from a large schedule, in this case a TV program for viewing from a TV programming schedule for 300 plus channels over the ensuing hours or even days. There is a similar need for a method and apparatus, very similar to the TV program selector, for finding and selecting a movie to order from movies-on-demand, or an airline flight(s) for a trip. It would further be desirable to use a method similar to the TV program selector to find and select a file in storage assets accessible by the apparatus to be executed, updated or deleted as part of file maintenance.

It is an object of the present invention to provide a view of a large schedule of data items and interactive selections of subgroups of the large schedule of data items in order to arrive at a screen display with sufficiently small number of items and sufficiently legible descriptions of each item to provide a viewer with an opportunity to make a reasoned selection therefrom.

It is another object of this invention to provide a method for interactively selecting a data item from a large schedule of data items by means of sequentially applying different filtering criteria using an interactive control having an operation appropriate for use with a television set.

In another aspect of the invention, the aforementioned objects may be achieved by providing a method for a home television viewer to interactively select a data item from a large schedule of data item having multiple attributes. The method includes a step of receiving the large schedule of data items. The received schedule of data items is stored locally in a database format in order to expedite later filtering and retrieval. Next, the schedule of data items is filtered into a subgroup of the schedule of data items according to attributes selected by to interactive viewer inputs. The resulting subgroup of the schedule data items is displayed for the viewer's inspection. The user then interactively selects a data item from the subgroup of data items viewed on a television screen.

Briefly stated, in accordance with one aspect of the invention, the aforementioned objects are achieved by providing an apparatus for selecting an item from a large group in a system having display means and interactive movable pointing means for specifying a location in the display means and making a selection at a specified location. This apparatus includes a filtration means including subgroup specifiers in the display means and is responsive to selection of a subgroup specifier by the pointing means for filtering the list to produce the subgroup specified by the selected subgroup specifier; means for displaying representations of group items belonging to at least a portion of the subgroup in the display means; and group item selection means for selecting a group item by selecting the representation thereof in the display in response to the pointing means.

In yet another aspect of the invention, the aforementioned objects may be achieved by providing a method for a viewer to interactively select a program. The method includes a step of receiving program schedule data for at least 300 individual channels for a time period of at least a week. The received program schedule data is stored locally in a database format in order to expedite later sorting and retrieval. Next, the program schedule data is filtered into a subgroup of the program schedule data in response to interactive viewer inputs. The subgroup of the program schedule data is displayed for the viewer's inspection. The user then interactively selects a program from the subgroup of program schedule data for viewing on a TV screen, or alternatively for recording by an appropriate program recording device.

FIG. 1 is a pictorial of a television set connected through a set top box to a cable carrying the program to be selected and a controller for selecting that program.

FIG. 2 is a simplified block diagram of the set top box.

FIG. 3 is a pictorial of a controller as shown an FIG. 1.

FIG. 4 is a pictorial of a top most selection interactive display.

FIG. 5 is a pictorial of a second level selection interactive display.

FIG. 6 is a pictorial of a third level selection interactive display.

FIG. 7 is a pictorial of a first level selection query display.

FIG. 8 is a pictorial of a second level selection query display.

FIG. 9 is a pictorial of another third level selection query display.

FIG. 10 is a pictorial of a display showing a subgroup of programs meeting the Sports, All and On Now sorting criteria.

FIG. 11 is a pictorial of a of the display showing the subgroup of programs meeting the Sports, All and On Now sorting criteria along with a window having a preview of the highlighted program.

FIG. 12 is a pictorial of a display showing a second level selection interaction display, similar to FIG. 5.

FIG. 13 is a pictorial of a two-dimensional interactive grid display with very many program data items shown in reduced representations.

FIG. 14 is a pictorial of a third level selection query display, similar to FIG. 9.

FIG. 15 is a pictorial of a two-dimensional interactive grid display filtered down to a manageable number of data items.

FIG. 16 is a pictorial of a first alphanumeric interactive display.

FIG. 17 is the same display as FIG. 14 except that the highlighted interactive area is at a different location.

FIG. 18 is a pictorial of a second alphanumeric interactive display.

FIG. 19 is the same display as FIG. 16 except the highlighted interactive area is at a different location.

FIG. 20 is a pictorial of a third alphanumeric interactive display.

FIG. 21 is the same as FIG. 18 except that the highlighted interactive area is at a different location.

FIG. 22 is a pictorial of a fourth alphanumeric interactive display.

FIG. 23 is a pictorial of a two dimensional interactive display with logical third dimensional stacks for row and column intersections having multiple entries therein.

Referring now to FIG. 1, a television set (TV) 10 is connected to set top box (STB) 12 via interconnecting cable 14. STB 12 is also connected to cable 16 which carries at least one cable program. The TV 10 is any standard TV such as an NTSC, a high definition, or some other standard commercial type for home use. A controller 20 is linked to STB 12, preferably via a free space optical link 22 for controlling the operation of STB 12 in order to select a program for viewing.

Referring now to FIG. 2, STB 12 will be described in greater detail. The STB 12 has a cable interface 30 that selects and converts the incoming signals on cable 16, whether they are digital signals, analog signals, or packet signals, to signals that are compatible with the TV 10. The cable interface 30 is connected by bi-directional bus 32 to CPU 34. Bi-directional bus 32 carries digital information received over cable 16 for use by CPU 34 and digital information transmitted from CPU 34 to cable interface 30. If cable 16 is a bi-directional cable, some of the information from CPU 34 will be processed through cable interface 30 to cable 16.

In addition to bi-directional bus 32, CPU 34 is connected to ROM 38 and RAM 40 via a memory bus 36. ROM 38 contains an operating program that is executed by CPU 34 to provide most of the functionality of the STB 12. RAM 40, among other things, provides storage space for intermediate results of the operating program as executed by CPU 34. RAM 40 provides storage for data that is received from cable 16 and filtered in response to the operating program and viewer inputs from controller 20 (shown in FIG. 1). If further storage is needed for data, larger RAM devices and/or mass storage devices such as disk drives, may be also connected bi-directional bus 32 (not shown). To receive viewer input, CPU 34 is connected to controller interface 44 via bus 42, and to provide feedback to the viewer, CPU 34 is connected to and drives STB display 48 via bus 46 with channel related information.

FIG. 3 illustrates a preferred embodiment of the controller 20. Controller 20 is designed to look and operate like a standard remote control of a TV or a video cassette recorder (VCR). Controller 20 has a numeric keypad 50 having number keys 0-9. Controller 20 has an up arrow 52, a down arrow 54, a right pointing arrow 56, a left pointing arrow 58, a double up arrow 60 and a double down arrow 62. Controller 20 also has a select (.sqroot.) button 64, a cancel (X) button 66 and a query (?) button 68. All interactions with the interface provided by the present invention are controlled by various sequences of these 19 buttons of the controller 20. Further, the result of actuating one of these buttons will be similar the results of a similar action of a standard TV or VCR remote control, so its use will be familiar, predictable and intuitive to the viewer using it.

There are two broad classes of graphical components used in the interface of the present invention: those used by the viewer to select a desired data view or to apply a filter to the information being displayed, such as FIG. 4; and those components used to actually display the information through which the viewer will progress in order to make a selection of a specific item, such as FIG. 6. For example, the viewer might view the schedule of TV programs for the next few hours (all channels), and filter the display to show only sports, basketball games in particular. These choices fall into the first class. Once the display of all basketball shows for the next few hours has been selected, the viewer may progress through it reviewing a text or video digest of each program as selected by the controller 20. Selection of a specific program would typically lead to an action such as videotaping the show or setting an alarm to remind the viewer that the desired program is coming up. The navigation and selection sequences to find and select the desired program are examples of the use of the second class of graphical components.

Note, that in both cases the viewer is required to navigate through multiple graphic displays in order to ultimately select a desired program. The interfaces are kept conceptually and visually distinct in the interface according to the present invention because they serve different purposes and the viewer is reminded of this by their appearance. In addition, the information involved in the view selection components, i.e., the first class, falls naturally into the form of hierarchical menus: short lists with complex substructure. In contrast, the data display, i.e., the second class, components must be able to handle large schedules and arrays of information, which are essentially flat data with simple substructure.

Additionally, there is a display component in most displays referred to as a `frame`, which functions as a status display. The frame is used to give the viewer some context (what view am I displaying?), as well as a brief summary of the presently selected item's characteristics (what item do I currently have selected?). Typically the latter would be the item's fill name and useful information such as program start and stop times. The frame will be described further, later.

Referring now to FIGS. 3 and 4, a top or beginning level display 400 of the viewer interface for use with controller 20 as it appears on the viewer's TV 10 (shown in FIG. 1) during normal operation. It is depicted as a file card menu 402 having a tab labeled "Begin". On file card menu 402 are interactive buttons labeled Movies (on Demand) 404, Last Movie 406, Options 408, TV 410, TV Now 412, Last TV 414, Shopping 416, and Last Shop 418 which when selected by means of the controller 20 cause the next relevant display to be shown along with some sorting and/or filtering to be performed on the data stored in RAM 40 (shown in FIG. 2). When the file card menu 402 first appears, an active area, where a selection may be made, is highlighted. This active area may be moved by actuating the arrow buttons 52-56 and double arrow buttons 60, 62 of controller 20. The file card menu 402 is surrounded by a frame 420, the top of which indicates the designation of the active area currently highlighted. Once an active area has been highlighted, a selection is made by actuating the select (.sqroot.) button 64 in FIG. 4, the TV button 410 is shown to be active: by actuating the select (.sqroot.) button 64, the next display 500 shown in FIG. 5 appears. This appearance is a logical overlaying of the display 500 over the display 400. Although display 400 is not visible while any logically overlaying display is appearing on the screen of the TV 10, display 400 will become visible again if all of the logically overlaying displays are canceled, i.e. by actuating the cancel (X) button 66. Thus, until a program is selected for real time viewing, it is possible for the viewer to work his or her way back to the display 400 by actuating the cancel (X) button the appropriate number of times.

FIG. 5 shows a second level display 500 which is depicted as a file card menu 502 labeled "TV", which appears to overlay and occlude all of file card menu 402 except for the label "Begin". The label TV indicates that the items that can be accessed are TV shows, such as dramatic series, situation comedies, serials, regular variety shows, game shows, sports, and so forth. Since movies and shopping were topics of other interactive buttons, these types of programs may be filtered out in whole or in part. File card menu 502 has interactive buttons labeled On Now 504, Weekdays 506, Coming Up 508, Weekend 510, and Search 512. As with the file card menu 402, file card menu 502 has an active area that can be moved by the viewer by operation of the arrow buttons 52-56 and double arrow buttons 60, 62 of controller 20 (shown in FIG. 3). Each of the interactive button represents another filtering that will be performed if it is selected. In FIG. 5, the On Now button 504 is highlighted, and if selected by actuating the select (.sqroot.) button 64, causes a third level display shown in FIG. 6 to appear and a further sorting an/or filtering of the data stored within RAM 40 (shown in FIG. 2).

Referring now to FIG. 6, display 600 shows what is on at the present time, which in this illustration is 6:30 p.m. A reduced representation 602 of all television shows that are on at the present time appears in FIG. 6. The reduced representation 602 presents each program that is presently on as a card in a tightly cascaded set of cards. The cards may be gray shade coded to distinguish between news shows, sport shows, dramatic shows, comedy shows, documentary shows and so forth. Those skilled in the art will recognize that color would be preferable for color television sets, and a method and apparatus according to the present invention using color to differentiated program types in the reduced representation 602 is contemplated. Thus, using visual coding within the reduced representation 602 would allow a sports program to visually stand out from the non-sports TV programming in the example shown. Up arrow 52 and Down arrow 54 respectively move a selection window 604, which is slightly wider than the items displayed in reduced representation, up and down the reduced representation 602 of the On Now subgroup in single steps. Motion of the active area along the reduced representation 602 is one dimensional, either up or down. The up arrows 60 and the down arrows 62 move his selection window 604 respectively up and down the reduced representation 602 in increments of six. The individual items visible and located within the selection window 604 represent a further subgroup of six programs out of the reduced representation 602 On Now subgroup. This six program subgroup of the selection window 604 is displayed in larger form in a grid display 606 located next to reduced representation 602. This larger form allows the viewer to read the titles of the programs presently in grid display 606. The visible coding, i.e. gray shade coding or color coding, of each item is retained in the larger form in grid display 606 to aid the viewer differentiate between the various types of programming offered.

Within selection window 604 and grid display 606 are active areas 605, 607 that highlight one item in their respective portions of display 600. The active areas 605, 607 move in coordination with each other in response to the Up arrow 52 and the Down arrow 54. When Up arrow 52 or Down arrow 54 require the active areas 605 and 607 to move above or below the selection window 604 and grid display 606, a paging occurs which moves the selection window up six or down six. When an item is located within active areas 605, 607, further information, such as the TV channel call sign, the cable channel number, and the exact start and stop times, is retrieved from the programming database stored in RAM 40 and displayed in the top of a frame 610 of display 600. If the select (.sqroot.) button 64 is actuated at this time, a preview of either a short text description or a brief still or motion video replaces the grid display 606. The data for these previews are stored in RAM 40. A second sequential actuation of the select (.sqroot.) button 64 actually selects the highlighted program in the active area 604 of reduced representation 602 and formerly highlighted in grid display 606. If the up arrow 52 or the down arrow 54 is actuated the respective preview for the next program item up or down from the previous previewed item is selected. The information displayed in the top of the frame 610 will change to the next program item up or down also. Actuation of the cancel button 66 returns the viewer to the previous arrangement of display 600. The bottom of the frame 610 lists the characteristics of the display 600, which are also retrieved from RAM 40. If the query (?) button 68 is actuated, the grid display 606 will be replaced by a generalized help menu. This generalized help menu has many buttons, as explained below, one of which is a view button. If the view button is actuated, the generalized help menu is replaced with the previous select (i.e. filter) view.

Referring now to FIGS. 3, and 7 a selection of a program by category will be described. Actuation of the query (?) button 68 of controller 20 causes display 700 to appear on the screen of TV 10 (shown in FIG. 1). On display 700 has a help button 702, a categories button 704, a view button 706, a begin button 708, a favorites button 710, and a user button 712. An active area, shown on categories button 704 is moved by the arrow buttons 52-58. The function of the view button 706 has been discussed in regard to FIG. 6 and will not be repeated here. Actuation of the help button 702 causes a menu of specific help functions to be displayed. Actuation of the begin button 708 causes the beginning menu to be displayed, i.e. it takes the viewer back to the beginning of the selection sequence. Actuation of the favorites button 710 brings up a list of favorite programs for the present timeslot, which may either be accumulated by the CPU 32 from viewing data or may be entered by the viewer or viewers. Actuation of the viewer button 712, which causes a display to appear where a viewer may interactively enter his or her status as the principal viewer. This information is used to determine, display a slate of favorite programs customized for each viewer. Actuation of the categories button 704 causes a her display 800, which is shown in FIG. 8, to replace display 700 on the screen of TV 10.

Referring now to FIGS. 3, 8 and 9, display 800 has numerous buttons 801, 802, 803, 804, 805, 806, 807, 808, and 809 corresponding to Favorite, Information, Entertainment, Movies, Sports, News, Children, Series and More categories of programming. The buttons 801-809 may be have an active area moved among them using arrows 52-58, or the numeric keypad may be used as a set of hot keys to move the active area to the desired category immediately. The buttons 801-809 are laid out in a 3.times.3 row and column arrangement just the same as the 1-9 keys of keypad 50 are arranged. Thus, without numbering, intuitive hot key navigation is possible. For example to move the active area to the button in the third column and third row, i.e. button 809, the key in the third column and the third row, i.e. the numeral 9, of keypad 50 is actuated. The button 809 unlike the other buttons which subsequently provide narrower choices, gives another display of buttons for further category choices (not shown). If the active area is around Sports button 805 as shown in FIG. 8, and the select (.sqroot.) button 64 is actuated, the display shown in FIG. 9 would appear. FIG. 9 is arranged with selection buttons 901-909 in a 3.times.3 arrangement, similar to that of FIG. 8. Movement of the active area by arrows 52-58 or by hot key is available in FIG. 9, as in FIG. 8. Buttons 901-909 correspond to Baseball, Football, Basketball, Soccer, All, Hockey, Golf, Racing and Other respectively. Except for All button 905, each of the buttons in FIG. 9 represents a narrower subgroup of the overall category of sports. Actuating All button 905 causes display 1000, shown in FIG. 10, to replace, i.e. logically overlay, display 900.

Referring now to FIG. 10, a filtered display for TV programs, that are On Now, for 6:30 p.m. local time as shown in FIG. 10, that are Sports programs showing All categories in reduced representation 1002 is shown. Reduced representation 1002 has so few entries that characteristics of the individual cards that were hidden previously by the sheer number of programs represented can now be discerned. For example, menu card 1003 representing the program This Week in the NBA is shorter on the left side than menu card 1004 representing the program Senior PGA Golf. The reason for that difference is that the program This Week in the NBA starts at 6:30 p.m., while the program Senior PGA Golf started at an earlier time as designated by the double left pointing arrows before the title of Senior PGA Golf in selection window 1006. Since This Week in the NBA and Senior PGA Golf both end at the same time, the right sides of their reduced representations 1003 and 1004 end at the same location. Movement or navigation of the active area 1005 along the reduced representation 1002 is by means of controller 20 the same as in FIG. 6. Each of the six titles shown in selection window 1006 has a respective rectangular region 1010-1015 thereafter. The rectangular regions 1010-1015 are shaded differently according to the type of sports program with which they are associated. These different shades of gray, or different colors if the display is shown on a color TV, are a visual key to the type of sport that corresponds to each of the six titles. Actuating the select (.sqroot.) button 64 of controller 20 causes display 1106, shown in FIG. 11, which is a text preview of the program highlighted by the active area, to overlay selection area 1006. As mentioned above, actuating the select (.sqroot.) button 64 at this point will cause CPU 34 to instruct cable interface 30 (shown in FIG. 2) to select that TV program for viewing.

Referring again to FIG. 10 if the status of the method and apparatus is the same as it was just after the selection that caused display 1000 to be shown was made, as described in the previous paragraph, and if the query (?) button 68 is actuated, then the display 700 shown in FIG. 7 with various selections will again be displayed. Further, if view button 706 is actuated, display 1200 as shown in FIG. 12 and its filter selections will logically over lay display 700. Display 1200 has numerous interactive buttons: On Now 1202, Coming Up 1204, Search 1206, Weekdays 1208 and Weekend 1210. Since the All Sports category has been selected previously, if the active area of display 1200 is moved to highlight the Coming Up button 1204 and the button 1204 is actuated, display 1300, shown in FIG. 13 will appear and over lay display 1200.

In display 1300, two coordinate axes are shown which are respectively labeled with two attributes of the of the selected subgroup of data items. The two attributes shown in display 1300 are channels and timeslots for the next 24 timeslots, i.e. 12 hours, coming up. Since the all sports category has been selected, each sports program showing on one of the 300 plus channels within the next 12 hours will be represented in display 1300. Each sports program upcoming is represented by a rectangular `card` located in the row corresponding to the channel carrying the program and in the column(s) representing the timeslot(s) when it will be shown. Each `card` is a color coded, reduced representation of the data item for its respective program. The viewer may move the active area 1302 among the cards using the up and down arrows 52, 54 and right and left arrows 56, 58 for movement vertically and horizontally, respectively. As can be seen from display 1300, there are still too many data items in the subgroup to individually consider in a reasonable amount of time, so further filtering, either by a shorter time period, i.e. On Now, or a narrower category, i.e. basketball, is needed. To change to a narrower category, the viewer presses the query (?) button 68 which causes display 700 (shown in FIG. 7) to be displayed. Next, categories button 704 is selected which causes display 900 (shown in FIG. 9) to be displayed. Next, basketball button 903 is selected which causes display 1500 of FIG. 15 to be displayed. The Coming Up time filter of FIGS. 12 and 13 has not been changed, so display 1500 shows the basketball programs coming up in the next 12 hours. As can be seen, the two-dimensional grid display 1500 contains approximately sixteen programs, which is sufficiently small to review each item individually in a reasonable time period. Moving active area 1502 around two-dimensional grid display 1500 with the up and down arrows 52, 54 and/or the right and left arrows 56, 58, causes the title and channel of each program to be displayed in the top of the frame of display 1500 to assist the reviewing and selection process. For example, the program highlighted by active area 1502 is "This Week In the NBA" and it is showing on CNN. Thus, by selective filtering the unwieldly display 1300 of programs shown in FIG. 13 is reduced to a manageable handful of display 1500, which the viewer can navigate through individually in a reasonable time.

Referring now to FIGS. 16-23, another aspect of the present invention will be described. In FIG. 16 and the remaining figures, a longer period of time is selected other than the one and a half hours or so retrieved by the On Now selection. For example, if the viewer wishes to look at the programming available for the rest of the week in order to select something to record on a VCR (not shown). Actuating the button having the number zero (0) of the keypad 50 while watching a program causes the data view menu selection card, such as 900 of FIG. 9, to appear at the point in the menu-display hierarchy where the last selection was made. Actuating the zero (0) button again moves the viewer towards the broadest data view menu 400 of FIG. 4, and the viewer may stop at any display in order to change time or subject matter categories.

Thus if a viewer were watching This Week in the NBA, and wanted to find a program of interest that is on later, the viewer would first actuate the zero (0) button of keypad 50 which would bring up the display of FIG. 10. Actuating the zero (0) button four more times takes the viewer through displays 900, 800, 700 and 500 of FIGS. 9, 8, 7 and 5 respectively. To get a specific program title, the search button 509 is actuated, which causes FIG. 16 to logically overlay the display 500. FIG. 16 shows a first display 1600 of an interactive alphanumeric selection sequence. First, all alphabetic titles are sorted into groups of five or less. If, for example, Nova was the title of the desired program, the active area would be moved from its initial position (either at the top of the display or at the last group selected) to the group of letters containing the letter N using the up arrow 52 or the down arrow 54 as shown in FIG. 17 followed by actuation of the select (.sqroot.) button 64. This sequence would cause FIG. 18 to logically overlay FIG. 17. In FIG. 18, the active area is moved from its initial location at M to the location of N as shown in FIG. 17 followed again by actuation of the select (.sqroot.) button 64 causes the display 2000 of FIG. 20 to overlay FIG. 19. In display 2000 are single instances of the first two letters, such as NYPD Blue is the only instance of N followed by Y, and multiple instances of the two letter string as denoted by the double right pointing arrows by NO. To continue the search for Nova, the active area is moved to the line containing NO of display 2000 as shown in FIG. 21 using the down arrow 56 and actuating the select (.sqroot.) button 64, which causes display 2200 of FIG. 22 to overlay display 2000. Now, Nova is the only instance of a program beginning with NOV, so the entire title Nova appears in FIG. 22. By moving the active area to the line labeled NOVA in display 2200 and actuating the select (.sqroot.), button 64 causes the display 2300 shown in FIG. 23 to overlay display 2200 with a schedule of times and channels for the program series Nova.

FIG. 23 is a one week schedule that is laid out as a logical three dimensional grid. The days of the week are displayed along one side, in this case vertically along the left side, of the display 2300. Time of day is displayed along a perpendicular side, in this case horizontally across the top, for a twenty-four hour period. Thus, if an episode of Nova is scheduled at 8:00 p.m. on Sunday, a box of contrasting shade will be located in the intersection of the Sunday row and in the 8:00 p.m. column. The active area 2302 can be moved horizontally by arrows 56, 58 and vertically by arrows 52, 54 of keypad 50. If there are multiple occurrences of Nova on a particular night at a particular time, that fact is shown by a box, located at the intersection of the row of that day and the column of that time, having an asterisk (*) located in the box. The asterisk (*) indicates the presence of a logical stack of multiple programs of Nova appearing on competing channels, such as occurs on Wednesday night at 8:00 p.m. To move or navigate through a stack of programs (or stack of episodes of programs with the same name, for example) on a particular day at a particular time slot, the viewer uses the double up arrows button 60 and the double down arrows button 62 for this third degree of freedom. Because the display 2300 may require greater visual discrimination than program title as a matter of course, the frame information window 1904 is larger than usual for display 2300. Further, frame 2304 is annotated with arrows indicating the existence of program episodes above or below the active areas' position in the stack. If the cable 16 has access to 300 plus `channels` of programming, it is conceivable that some programs, such as Nova will be offered by more than one channel at the same time. As described previously, once the viewer has moved the active area to a particular entry in two or three dimensions and actuates the select (.sqroot.) button 64, a selection is made. In this case, the selection sets an alarm to record a specific channel at a specific time at some day in the near future.

Referring back to FIGS. 1 and 2, overall operation of the apparatus of the invention is described. Program schedule data is supplied via the cable 16. The program schedule data is either transmitted periodically and the STB 12 receives this program schedule data and stores it in RAM 40. Alternatively, all or part of the program schedule data could be dynamically requested and received by STB 12, which stores it in RAM 40. Program data such as this is commercially available from TVData, Inc. and other similar concerns. The data or records of the program schedule data are in a pre-arranged format, such as Microsoft Access or some other similar database format, to facilitate rapid storage, sorting and retrieval by CPU 34. Each record of a TV program has its date of appearance, its time of appearance, its title, its channel and/or network, its categorizations, and a textual or visual preview (if any). A listing of a prototype program that sorts, displays and interactively responds to a viewer's input is shown in the CPU program listing given below. This listing is in Visual Basic programming language of Microsoft Corporation.

The Visual Basic prototype program consists of a collection of forms, each form having its own set of event handlers. In this case, the only significant external events are button actuations because of the remote control interface. A frame form provides the background and information and status bars used by most of the individual displays. A rolodex form provides the menus. The other forms are mostly schedule or list displays of various kinds, including specialized varieties such as the alphanumeric selection list form.

The control part of the program begins with a procedure which loads all forms and activates the frame and rolodex, i.e. the top display, to begin. Forms hand off control by setting a return code and hiding themselves, thereby activating the form directly beneath (usually the frame). Both the frame form and the rolodex form perform different actions depending on the value of the return code. The frame form's most common action is to activate another form, and much of the control flow of the application is handled by the frame form code. The rolodex form is used to display several different menu hierarchies, most importantly view selection and filter choice.

Thus, it will now be understood that there has been disclosed a method and apparatus of finding and selecting a program to view from a large schedule of TV programs. While the invention has been particularly illustrated and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form, details, and applications may be made therein. For example, color coding of the individual items of the reduced representations and of the various entries in the various grid displays could be used to assist the viewer in making rapid program selections. Another example is that it is easily within the capabilities of this art to modify a TV set by integrating the set top box according to the present invention into it. It is accordingly intended that the appended claims shall cover all such changes in form, details and applications which do not depart from the true spirit and scope of the invention. ##SPC1##

## Claims

1. Apparatus for selecting an item from a group thereof in a system having display means and interactive movable pointing means for specifying a location in the display means and making a selection at a specified location, the apparatus comprising: responsive to selection of a subgroup specifier by the pointing means for filtering the group to produce the subgroup specified by the selected subgroup specifier; portion of the subgroup in the display means; representation thereof in the display in response to the pointing means; indication in the reduced representation of the portion of the group being presently displayed by the display means; a three dimensional representation, the third dimension being location within a logical stack of items having at least one common property; and property.

2. The apparatus set forth in claim 1, wherein said interactive movable pointing means includes a remote control having: first direction; second direction; and stack.

3. Apparatus for selecting an item from a group thereof in a system having display means and interactive movable pointing means for specifying a location in the display means and making a selection at a specified location, the apparatus comprising: responsive to selection of a subgroup specifier by the pointing means for filtering the group to produce the subgroup specified by the selected subgroup specifier; subgroup in the display means; representation thereof in the display in response to the pointing means; and indication in the reduced representation of the portion of the group being presently displayed by the display means; representation of a three dimensional representation, a third dimension being represented as a logical stack of items having at least one common property and; first direction; and second direction; and stack.