U.S. patent application number 10/266780 was filed with the patent office on 2003-03-06 for navigational user interface for interactive television.
Invention is credited to McDonald, Thomas, Montgomery, Robert A., Rao, Praveen, Spencer, Deborah A., Wilcox, Scott.
Application Number | 20030046700 10/266780 |
Document ID | / |
Family ID | 22720293 |
Filed Date | 2003-03-06 |
United States Patent
Application |
20030046700 |
Kind Code |
A1 |
Wilcox, Scott ; et
al. |
March 6, 2003 |
Navigational user interface for interactive television
Abstract
The present invention is a navigational user interface for
interactive television and, more specifically, for purchasing food
products via the navigational user interface and a television. The
invention uses an intuitive interactive interface for navigating
through service options preferably offered by a cable television
service. Services offered such as video on demand, purchasing
delivery foods, restaurant selection, banking and community events
is all navigated using the present invention.
Inventors: |
Wilcox, Scott; (Longwood,
FL) ; Montgomery, Robert A.; (Longwood, FL) ;
McDonald, Thomas; (Winter Park, FL) ; Rao,
Praveen; (Longwood, FL) ; Spencer, Deborah A.;
(Apopka, FL) |
Correspondence
Address: |
SCIENTIFIC-ATLANTA, INC.
INTELLECTUAL PROPERTY DEPARTMENT
5030 SUGARLOAF PARKWAY
LAWRENCEVILLE
GA
30044
US
|
Family ID: |
22720293 |
Appl. No.: |
10/266780 |
Filed: |
October 8, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10266780 |
Oct 8, 2002 |
|
|
|
09195167 |
Nov 19, 1998 |
|
|
|
Current U.S.
Class: |
725/60 ;
348/E5.105; 705/26.1; 725/1; 725/135; 725/136; 725/51 |
Current CPC
Class: |
H04N 21/812 20130101;
H04N 21/478 20130101; H04N 5/44543 20130101; G06Q 30/0601 20130101;
H04N 21/47815 20130101; H04N 21/47 20130101; H04N 21/84 20130101;
H04N 21/4312 20130101 |
Class at
Publication: |
725/60 ; 705/26;
705/27; 725/135; 725/136; 725/1; 725/51 |
International
Class: |
H04N 007/16; G06F
017/60; G06F 003/00; H04N 005/445; G06F 013/00 |
Claims
What is claimed is:
1. A method for providing a viewer capability of purchasing food
items via a client terminal and a television screen comprising the
steps of: displaying a food application on the television screen in
response to the viewer tuning the client terminal to a
predetermined television channel, wherein the food application
includes at least one food product category item; selecting a food
product category item in response to the viewer navigating the at
least one food product category item into a stationary category
focus box and pressing a select button on a remote control; and
ordering at least one selected food product category item in
response to the viewer pressing an order button via the remote
control, wherein an order signal including the at least one
selected food product category item is provided from the client
terminal to a data center via a distribution network for further
processing.
2. The method of claim 1, further comprising the steps of: in the
data center, providing the order signal including the at least one
ordered food product category item via the distribution network to
a food provider along with a delivery address associated with the
ordering client terminal.
3. The method of claim 1, further comprising the steps of: focusing
on a food product category item in response to the viewer
navigating the food product category item into the stationary
category focus box via the remote control; subsequently, displaying
at least one food product menu item associated with the focused
food product category item; focusing on a food product menu item in
response to the viewer navigating the food product menu item into a
stationary menu focus box via the remote control; selecting the
focused food product menu item in response to the viewer pressing
the select button on the remote control; and ordering the selected
food product menu item in response to the viewer pressing the order
button on the remote control.
4. The method of claim 3, further comprising the steps of:
displaying a drawable in response to the focused food product menu
item, wherein the drawable contains information associated with the
focused food product menu item.
5. The method of claim 3, further comprising the steps of:
returning to the at least one food product category item display in
response to the viewer pressing a return button on the remote
control.
6. The method of claim 3, wherein the selected food product menu
item further comprises the steps of: displaying a plurality of
pruning screens associated with the selected food product menu
item.
7. The method of claim 6, further comprising the steps of:
returning to the at least one food product menu item display
associated with the focused food product category item in response
to the viewer pressing a return button on the remote control.
8. The method of claim 1, further comprising the steps of:
displaying a total price screen in response to the viewer pressing
a complete order button on the remote control, wherein the client
terminal stores a price associated with each of the at least one
ordered food product category item.
9. The method of claim 2, further comprising the steps of:
displaying a payment option screen including a plurality of payment
options in response to the viewer pressing a complete order button
on the remote control; and selecting a payment option in response
to the viewer focusing on a desired payment option and pressing a
select button on the remote control.
10. The method of claim 9, further comprising the steps of:
entering numeric information associated with the desired payment
option via numeric buttons on the remote control; and sending the
numeric information along with the order signal, wherein the data
center provides the numeric information to the food provider
indicating payment terms.
11. A distribution network for transmitting and receiving a
plurality of signals among a data center, a plurality of client
terminals, and at least one food provider, the plurality of client
terminals each connected to a television screen, the television
screen for displaying the plurality of signals including video and
audio signals, the plurality of client terminals each including a
navigational interface, the navigational interface for purchasing
food products via a client terminal and a television, the client
terminal comprising: a tuner for tuning to a predetermined
television channel displaying a navigational interface screen on
the television screen, the navigational interface comprising: a
food application screen for displaying on the television screen,
wherein the food application screen includes at least one food
product category cell; a stationary focus box for focusing on one
food product category cell; navigational cues for indicating a
plurality of buttons on a remote control, wherein when a viewer
presses a navigational button, the at least one food product
category cell rotates into the stationary focus box in accordance
with the navigational button pressed; a select cue for indicating a
select button on the remote control for selecting the focused food
product category cell; and an order cue for indicating an order
button on the remote control, wherein when the viewer presses the
order button on the remote control, the client terminal sends an
order signal associated with the selected food product category
cell to the data center for further processing.
12. The client terminal of claim 11, wherein in response to the
client terminal sending the order signal, the data center provides
the order signal associated with the selected food product category
cell including information associated with the ordering client
terminal to a responsible food provider.
13. The client terminal of claim 11, wherein the navigational
interface further comprises: at least one menu item cell associated
with the focused food product category cell; a stationary menu
focus box for focusing on one menu item cell, wherein the
navigational buttons on the remote control rotate the at least one
menu item cell into and out of the stationary menu focus box, and
wherein the select button on the remote control selects the focused
menu item cell, and wherein the order button on the remote control
sends an order signal associated with the selected menu item cell
to the data center for further processing.
14. The client terminal of claim 13, the navigational interface
further comprising: a complete order cue for indicating a complete
order on the remote control, wherein in response to the viewer
pressing the complete order button, a complete order signal
includes a plurality of order signals associated with at least one
focused menu item cell.
15. The client terminal of claim 13, wherein the navigational
interface further comprises: a displayed drawable in response to
the focused menu item cell, wherein the drawable contains
information associated with the focused menu item cell.
16. The client terminal of claim 12, the navigational interface
further comprising: a total price screen displayed on the
television screen, wherein a total price associated with the
completed order is displayed in response to the viewer pressing a
complete order button on the remote control.
17. The client terminal of claim 16, the navigational interface
further comprising: a payment method screen including a plurality
of payment options in response to the pressed complete order
button, wherein a payment method is selected in response to the
viewer navigating a desired payment method into a stationary
payment focus box and selecting the focused payment method.
18. The client terminal of claim 17, the navigational interface
further comprising: a numeric information screen associated with
the desired payment method, wherein the viewer enters numeric
information onto the numeric information screen via the remote
control.
19. The client terminal of claim 18, wherein the information
associated with the ordering client terminal is a delivery address,
the desired payment method, and any entered numeric
information.
20. The client terminal of claim 11, the navigational interface
further comprising: a time-out program for timing out the food
application screen and returning to the previously displayed
television channel after a predetermined amount of time of viewer
inactivity.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of application Ser. No.
09/195,167 entitled "Navigational User Interface for Interactive
Television", filed Nov. 19, 1998 in the names of Wilcox et al.,
commonly assigned with the present application, the teachings of
which are hereby incorporated by reference.
FIELD OF THE INVENTION
[0002] This invention relates generally to broadband communications
systems, such as cable television networks, and more specifically
to broadband communications equipment including interactive and
navigational tools for purchasing food items via a television
screen and a client terminal.
BACKGROUND OF THE INVENTION
[0003] Over the past twenty years, computers and telecommunications
have radically improved. Hardware costs continue to decline while
functionality and performance has multiplied. Cable television
providers and the telecommunications industry have taken advantage
of computer and communication advancements by providing an
ever-increasing array of services to their customers. Primarily,
recent advancements in technology have enabled the cable service
industry to increase channel capacity and provide some degree of
interactive television service. This advancement is due in large
part by the industry combining the processing power of a computer
in the form of a cable box and cable's large capacity to carry
information. Such cable boxes have successfully been used by the
industry to provide both a greater selection of channels and some
degree of interactivity.
[0004] Among such boxes are advanced analog cable boxes. Unlike
older analog cable boxes, which simply tuned television channels,
advanced boxes are capable of overlaying the current time and
channel number on top of a television program being viewed.
Advanced analog cable boxes also provide an on-screen interface for
examining a list of television programs being broadcast at the
current time or some time in the near future. The on-screen
interface is referred to as an "Interactive Program Guide" (IPG).
Additionally, some advanced analog cable boxes enable the ordering
of pay-per-view movies using only the cable box and its remote
controller.
[0005] Digital cable boxes are personal computing devices designed
to connect to a television set. Digital cable boxes utilize the
high quality of digitized audio and video television signals to
access a large number of broadcast television channels. They also
provide an IPG and allow a cable subscriber to order a pay-per-view
movie directly using the cable box and its remote controller.
Digital broadcast satellite systems also utilize digital video
technology to provide hundreds of channels to a subscriber via a
relatively small (eighteen-inch) satellite dish. These systems
typically include an IPG.
[0006] Internet and web access boxes also connect to a television
set. Web access boxes enable the television owner to attach the
device to the television, and through the device's modem, to a
service provider to access the Internet and the World Wide Web
services. The television then serves as a display monitor for
viewing various web sites.
[0007] All of these devices, with varying levels of sophistication,
have memory, a central processing unit (CPU) and video graphics
capabilities similar to those of a personal computer. That is,
while a personal computer can execute a computer program generating
a display to a computer monitor, any of these devices can run a
computer program that generates a display to a television, often
allowing a consumer to interact with the program via, for example,
a remote controller. An example of a computer program running on an
advanced analog or digital cable box would be one that displays a
list of television programs currently being broadcast and allows
the consumer to scroll through the listing.
[0008] All of these devices use their memory, CPU, and
video-graphics capabilities to provide on-screen television
interfaces to the consumer that the consumer can use to manipulate
the manner in which the device is functioning. Typically, each
device is designed and built independently by the device's
manufacturer, of which there are hundreds, each of whom operates
independently. The result of this independent product development
is that each device has its own unique on-screen television
interface that the consumer must learn to operate. Additionally,
the on-screen interfaces themselves are often non-intuitive,
clumsy, or difficult to operate.
[0009] A well-known example of a non-intuitive, inconsistent
on-screen interface is the interface for setting the time on a VCR.
Many consumers never discover their particular VCR-manufacturer's
preferred method for setting the time, and if they do determine how
to operate the interface, it is often difficult and frustrating to
repeatedly use the interface. In addition, if the consumer uses a
different VCR, typically the method for setting the time is
significantly different than in the previous VCR. The present
invention overcomes such interface problems by providing a
consistent, intuitive interface for accessing, setting, and
ordering information and services on a television.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a functional block diagram illustrating the
preferred network including a network provider data center and
coupled client terminals that are suitable for executing the
present invention.
[0011] FIG. 2 is a functional block diagram illustrating the major
components of the client terminal on which the present invention
may run.
[0012] FIG. 3 is an artist's rendering of one possible
configuration of a viewer input device, in this case, an infrared
remote control for interacting with the client terminal.
[0013] FIG. 4 is an artist's rendering of another possible
configuration of a viewer input device, in this case, an infrared
remote control for interacting with the client terminal.
[0014] FIG. 5 illustrates, in wire frame format, three of the basic
interface components of the present invention, which are the
screen, category item, and menu item.
[0015] FIG. 6 illustrates, in wire frame format, the same three
basic interface components illustrated in FIG. 5, and in this
illustration, the category item and menu item components are
arranged in a different fashion on the screen.
[0016] FIG. 7 illustrates, in wire frame format, both the menu item
and category item components with the category item being in the
same configuration as they were in FIG. 6 and the menu item in a
somewhat different configuration.
[0017] FIG. 8 illustrates both the menu item and category item
components, with the category items represented as both image-based
icons and textual strings and the menu item represented as textual
strings only.
[0018] FIG. 9 illustrates both the menu item and category item
components, with the category items represented as image-based
icons only and the menu items represented as textual strings
only.
[0019] FIG. 10 illustrates both the menu item and category item
components, with the category items represented as both image-based
icons and textual strings and the menu items represented as both
image-based icons and textual strings.
[0020] FIG. 11 illustrates both the menu item and category item
components, with the menu items represented as textual strings, and
having additional related mages ("drawables") that show in another
location on the display when the menu item with each image is
associated comes into focus.
[0021] FIG. 12 illustrates the first frame in a scroll of the menu
item originally presented in FIG. 11.
[0022] FIG. 13 illustrates the second frame in the scroll presented
in FIG. 12.
[0023] FIG. 14 illustrates the third frame in the scroll, the first
frame of which is presented in FIG. 12.
[0024] FIG. 15 illustrates the completion of the scroll, the first
frame of which is presented in FIG. 12.
[0025] FIG. 16 illustrates the first frame in a scroll of the
category items on the screen presented in FIG. 15.
[0026] FIG. 17 illustrates the second frame in the scroll
originally presented in FIG. 16.
[0027] FIG. 18 illustrates the third frame in the scroll originally
presented in FIG. 16.
[0028] FIG. 19 illustrates the completion of the scroll originally
presented in FIG. 16.
[0029] FIG. 20 illustrates a change in focus from "Fir Trees in
Danger" to "Wild Domain Series," with "Wild Domain Series" having
an associated text phrase (drawable), which is displayed on the
right.
[0030] FIG. 21 illustrates a change in screens, with the original
screen, containing the category items "Action," "Comedy," "Nature,"
"Drama," and "Sports" and each category item's associated menu item
have been replaced with a screen containing a background image
("--20 Years of--" and the "Wild Domain" logo) and a new list of
category items with associated menu items.
[0031] FIG. 22 illustrates another change in screens with the
original screen, presented in FIG. 21 replaced with a new screen
containing a background image ("--20 Years of--" and the "Wild
Domain" logo) and a list of menu items without contain category
items.
[0032] FIG. 23 illustrates a variation of the screen originally
presented in FIG. 19, with the category items being wider (limiting
the number of category items that may be viewed at a single time)
and represented as textual strings of varying typefaces rather than
a combination of textual strings and images.
[0033] FIG. 24 illustrates a variation of the screen presented in
FIG. 23 in which the category items are represented with textual
strings of consistent typefaces, not varying typefaces.
[0034] FIG. 25 illustrates a variation on the screen presented in
FIG. 19; here the focus-box for the category items has been moved
from the upper center of the display to the upper left of the
display.
[0035] FIG. 26 illustrates a new screen containing category items
and menu items that have associated images and/or textual
strings.
[0036] FIG. 27 illustrates the screen originally presented in FIG.
26 after the viewer used the client terminal's input device to
"scroll" the menu items from "Appetizers" to "Beverages."
[0037] FIG. 28 illustrates the screen activated by the viewer
having pressed "select" while the "Beverages" menu item had focus
on the screen illustrated in FIG. 27.
[0038] FIG. 29 illustrates the screen activated after the viewer
pressed "A" while viewing the screen illustrated in FIG. 28.
[0039] FIG. 30 illustrates the same screen after the viewer
scrolled from the "Check" to the "Menu," giving focus to the
"Create Your Own" menu item.
[0040] FIG. 31 illustrates the screen activated after the viewer
"selects" the "Create Your Own" menu item from the previously
active screen, and containing only a list of menu items and a blank
textual string area on the right.
[0041] FIG. 32 illustrates the screen activated after the viewer
"selects" the menu item "Large (13-inch)" from the previously
active screen with the screen containing only a list of menu items
and a textual string area that now contains text indicating the
selection made by the viewer on the previously active screen.
[0042] FIG. 33 illustrates the screen activated after the viewer
"selects" the thin crust menu item from the previously active
screen.
[0043] FIG. 34 illustrates the display after the viewer "scrolls"
the menu items list from "Glazed Ham (Ham)" to "Mushrooms (Mush)"
on the screen illustrated in FIG. 33.
[0044] FIG. 35 illustrates the screen activated after the viewer
"selects" the mushroom (Mush) menu items from the previously active
screen.
[0045] FIG. 36 illustrates the previously active and now
re-activated screen, the menu item list of pizza toppings, with the
contents of the textual string on the right of the screen
reflecting the viewer's selection from the previously active
screen.
[0046] FIG. 37 illustrates the newly activated screen, again
prompting the viewer to select a half on which the topping selected
on the previously active screen, in this case "Pepperoni (Pep)",
should be placed.
[0047] FIG. 38 illustrates the previously active and now
re-activated screen with the menu item list of toppings.
[0048] FIG. 39 illustrates the newly activated screen, again
prompting the viewer to select a half on which the topping selected
on the previously active screen, in this case "Olives (Oliv)",
should be placed.
[0049] FIG. 40 illustrates the previously active and now
re-activated screen with the menu item list of toppings. Again, the
contents of the textual string on the right of the screen have been
modified to reflect the viewer's selection of "2.sup.nd Half
(2.sup.nd)" on the previously active screen.
[0050] FIG. 41 illustrates the screen after the viewer has scrolled
the menu item list from "Olives (Oliv)" that had focus to
"Mushrooms (Mush)" now having focus.
[0051] FIG. 42 illustrates the screen after the viewer has pressed
"select" on the menu item "Mushrooms (Mush)".
[0052] FIG. 43 illustrates the previously active and now
reactivated screen last illustrated in FIG. 30 with the "check"
being displayed to the viewer.
[0053] FIG. 44 illustrates the screen activated as a result of the
viewer having pressed the "B" button, indicating a desire to
"Complete the Order", as conveyed to the viewer on the previously
active screen illustrated in FIG. 43.
[0054] FIG. 45 illustrates another screen that may be activated
directly as a result of the viewer pressing "B" while the screen
illustrated in FIG. 43 was active.
[0055] FIG. 46 illustrates the screen activated as a result of the
viewer making a selection on one of the screens illustrated in FIG.
44 or 45 or by pressing "B" on the screen illustrated in FIG.
43.
[0056] FIG. 47 illustrates the screen activated as a result of the
viewer making a selection on the screen illustrated in FIG. 46.
[0057] FIG. 48 illustrates the screen activated as a result of the
viewer making a selection on the screen illustrated in FIG. 47. In
this screen, the viewer is prompted to enter a pin number and the
first illustration of a screen that does not contain either a list
of menu items or category items, but does contain a numeric field
component.
[0058] FIG. 49 illustrates the screen illustrated in FIG. 48 after
the viewer has entered 3 of the 4 digits in the "pin" numeric
field.
[0059] FIG. 50 illustrates the screen activated as a result of the
viewer pressing "B" on the screen illustrated in FIG. 43, the first
illustration of a screen that contains more than one numeric field
component.
[0060] FIG. 51 illustrates the screen initially presented in FIG.
50 with the viewer having partially entered a card number.
[0061] FIG. 52 illustrates the screen presented in FIG. 51 with
additional data having been entered by the viewer.
[0062] FIG. 53 illustrates the screen presented in FIG. 52 with
additional data having been entered by the viewer.
[0063] FIG. 54 illustrates the screen presented in FIG. 53 with
additional data having been entered by the viewer; the additional
data is the pin, the digits of which are hidden from view.
[0064] FIG. 55 illustrates the screen presented in FIG. 54 with the
viewer having completed entry of the pin, the current digit
indicator has moved back to the first digit field, letting the
viewer know the entry process is complete, if after processing the
entered data, some of the data is found to be incorrect or invalid,
the viewer would be returned to the screen presented in FIG. 50 to
reenter the data.
[0065] FIG. 56 illustrates the screen activated as a result of the
viewer completing entry of the data on FIG. 50 or after FIG. 49 or
after FIG. 47 or after FIG. 45, the screen indicates the viewer has
selected "Pick up" and summarizes the total giving the viewer the
address of where to pick up the order.
[0066] FIG. 57 illustrates the screen activated as a result of the
viewer confirming the order presented in FIG. 56.
[0067] FIG. 58 illustrates the screen activated as an alternative
to the screen in FIG. 56, in this case [the viewer has
selected].
[0068] FIG. 59 illustrates the screen activated as a result of the
viewer having confirmed the order presented in FIG. 58.
[0069] FIG. 60 illustrates the basic interface component, the cell,
in this example, the cells are arranged in a grid measuring 2
columns by 2 rows.
[0070] FIG. 61 illustrates the grid of cells originally presented
in FIG. 60; here the viewer has moved the focus from the "Tasty
Specials" cell to the "Pizza" cell.
[0071] FIG. 62 illustrates the grid of cell originally presented in
FIG. 60; here the viewer has moved the focus from the "Pizza" cell
to the "Beverages" cell.
[0072] FIG. 63 illustrates another grid of cell, configured a
little differently from the grid of cells illustrated in FIGS.
60-62, in this example, each cell is defined as being smaller.
[0073] FIG. 64 illustrates the grid of cells originally presented
in FIG. 63; here the viewer has moved the focus from the "Tasty
Specials" cell to the "Pizza" cell.
[0074] FIG. 65 illustrates the grid of cells originally presented
in FIG. 63, here; the viewer has moved the focus from the "Pizza"
cell to the "Beverages" cell.
[0075] FIG. 66 illustrates another grid of cells, again configured
differently, in this example, the focus-box is a smaller
dashed-line box with a "select" icon attached, the individual cells
are constructed in a different fashion and the viewer is give
instructions on how to navigate.
[0076] FIG. 67 illustrates the grid of cell originally presented in
FIG. 66. Here, the viewer has moved the focus from the "Tasty
Specials" cell to the "Pizza" cell.
[0077] FIG. 68 illustrates the grid of cells originally presented
in FIG. 66; here the viewer has moved the focus from the "Pizza"
cell to the "Appetizers" cell.
[0078] FIG. 69 illustrates another example of a grid of cells; in
this case, the grid measures 1 column by 3 rows.
[0079] FIG. 70 illustrates the grid of cells originally presented
in FIG. 69, here; the viewer has moved the focus from the "Tasty
Specials" cell to the "Beverages" cell.
[0080] FIG. 71 illustrates another example of a grid of cells, in
this case, the grid measures 2 columns by 3 rows, however, there
are only 5 actual cells, this is the first example of a grid of
cells that does not have a cell in every row/column pair, i.e., an
empty cell.
[0081] FIG. 72 illustrates the same grid presented in FIG. 71,
here, the cell in the lower right is drawn empty, as it actually
would be on a television display.
[0082] FIG. 73 illustrates another basic interface component, the
page; here any amount of information may be displayed, arranged in
any fashion.
[0083] FIG. 74 illustrates another page in the list of pages
originally presented in the screen from FIG. 73, here having
previously been on page 1, the viewer has pressed the
"page-forward" button and the second page, page 2, is now being
displayed.
[0084] FIG. 75 illustrates the last page in the list of pages
originally presented in FIG. 74.
[0085] FIG. 76 illustrates another example of a grid of cells, the
grid measures 2 columns by 2 rows, the viewer is prompted with
instructions to Press <select> to choose and Use
<arrows> to navigate.
[0086] FIG. 77 illustrates the grid of cells originally presented
in FIG. 76 with the focus having moved from "Duller Image" to
"Top-Buys".
[0087] FIG. 78 illustrates a combination of the cells interface
component and the page interface component, here the viewer has
several options, the viewer may change the cell that has focus,
"Order" the item depicted in the cell that has focus or change
page, bring up another grid of cells.
[0088] FIG. 79 illustrates page 2 in the sequence of pages
initially presented in FIG. 78, here the viewer has pressed page
forward while on page 1, bringing the viewer to page 2. Like the
page in FIG. 78, this page also includes a grid. In this example,
the grid is a 2 wide by 2 tall grid.
[0089] FIG. 80 illustrates the pages from FIG. 79; here the viewer
has moved focus from the "Thunder Sunglasses" cell to "Clock with
LCD Date" cell.
[0090] FIG. 81 illustrates a new screen displayed as a result of
the viewer pressing "B" for "Buy" on the page illustrated in FIG.
80.
[0091] FIG. 82 illustrates a new screen displayed as a result of
the viewer pressing "B" for "Complete Order" on the page
illustrated in FIG. 81.
[0092] FIG. 83 illustrates a screen configured to operate as an
instant pruning search interface.
[0093] FIG. 84 illustrates the instant pruning search interface
originally presented in FIG. 83 after the viewer has scrolled to
"Cuisine".
[0094] FIG. 85 illustrates the instant pruning search interface
from FIG. 84 after the viewer has scrolled to "Price Range".
[0095] FIG. 86 illustrates the instant pruning search interface
from FIG. 85 after the viewer has scrolled to "Region".
[0096] FIG. 87 illustrates the instant pruning search interface
from FIG. 86 after the viewer has scrolled to the menu item
"Brockway", as soon as the viewer scrolls to "Brockway", the
Current Search Criteria text area is updated to indicate the viewer
wants to cull the list of results to include only those restaurants
located in "Brockway".
[0097] FIG. 88 illustrates the instant pruning search interface
from FIG. 87 after the viewer has scrolled back to
"Atmosphere".
[0098] FIG. 89 illustrates the instant pruning search interface
from FIG. 88 after the viewer has scrolled back to "Cuisine".
[0099] FIG. 90 illustrates the instant pruning search interface
from FIG. 89 after the viewer has scrolled to the "Italian" menu
item, now the viewer has two search key values in the search for a
restaurant: "Region: Brockway" and "Cuisine: Italian".
[0100] FIG. 91 illustrates the instant pruning search interface
from FIG. 90 after the viewer has scrolled back to the "Atmosphere"
category item, once again, the list of search key values has been
reduced even more.
[0101] FIG. 92 illustrates the instant pruning search interface
from FIG. 91 after the viewer has scrolled to the "Region"
category.
[0102] FIG. 93 illustrates the instant pruning search interface
from FIG. 92 after the viewer has scrolled to the "Price Range"
category; note the list only contains two options.
[0103] FIG. 94 illustrates the instant pruning search interface
from FIG. 93 after the viewer has scrolled through the options to
"$$", the "Current Search Criteria" text area is immediately
updated to indicate the viewer wishes to further limit the list of
matching restaurants to the "Italian" restaurants in "Brockway"
with a price range of "$$".
[0104] FIG. 95 illustrates the instant pruning search interface of
FIG. 94 after the viewer has scrolled back to the "Region"
category, now, only the "Regions" with "Italian" restaurants with a
price range of "$$" are displayed as options.
[0105] FIG. 96 illustrates the instant pruning search interface
from FIG. 95 after the viewer has scrolled to the "Atmosphere"
category item, this list is short, including only those atmospheres
of restaurants in the "Brockway" area serving "Italian" cuisine
having a price range of "$$".
[0106] FIG. 97 illustrates the instant pruning search interface
from FIG. 96 after the viewer has scrolled to the "Cuisine"
category item, here the list only includes cuisine of restaurants
in the "Brockway" area with a price range of "$$".
[0107] FIG. 98 illustrates a new screen activated as a result of
the viewer pressing the "A" button on the screen illustrated in
FIG. 97, the FIG. 98 screen contains the list of matches resulting
from the search requested in the instant pruning search interface
illustrated in FIG. 97.
[0108] FIG. 99 illustrates the screen originally presented in FIG.
98 after the viewer has scrolled down once; here the viewer is
prompted to press "select" for this particular restaurant to see
more information.
[0109] FIG. 100 illustrates the screen from FIG. 99 after the
viewer has scrolled down once; here the text area on the right
includes an image/logo associated with the currently "focused"
restaurant.
[0110] FIG. 101 illustrates the screen from FIG. 100 after the
viewer has scrolled down once more, here the text area on the right
includes an image associated with the currently "focused"
restaurant, also, the viewer is told that there is more than one
location for this restaurant and that to see the list of locations,
the "select" button should be pressed.
[0111] FIG. 102 illustrates a new screen activated as a result of
the viewer having pressed "select" on the screen illustrated in
FIG. 101, here the viewer is shown a list of all the locations for
the "Checkerboard Pasta House".
[0112] FIG. 103 illustrates the screen originally presented in FIG.
102 after the viewer has scrolled once in the list of locations for
the restaurant.
[0113] FIG. 104 illustrates the screen last presented in FIG. 97
after the viewer has returned from the list of locations for
"Checkerboard Pasta House" and then again from the list of matches
to the originally submitted search.
[0114] FIG. 105 illustrates the screen from FIG. 104 after the
viewer has changed the "Cuisine" search criteria from "Italian" to
"Chinese".
[0115] FIG. 106 illustrates the screen from FIG. 105 after the
viewer has scrolled to the "Atmosphere" category.
[0116] FIG. 107 illustrates the screen from FIG. 106 after the
viewer has scrolled to the "Region" category.
[0117] FIG. 108 illustrates the screen from FIG. 107 after the
viewer has changed the "Region" search criteria from "Brockway" to
"Any".
[0118] FIG. 109 illustrates a new screen activated as a result of
the viewer having pressed "A" and using the search criteria
(Chinese, $$), the database was searched and the restaurants listed
on the screen in this figure are the matches from that search.
[0119] FIG. 110 is a flow chart detailing the major functions and
procedures performed and used by the present invention.
[0120] FIG. 111 is a flow chart of the render code used with the
active screen.
[0121] FIG. 112 is a flow chart of the render code for the page
node.
[0122] FIG. 113 is a flow chart of the render code for the cell
node.
[0123] FIG. 114 is a flow chart of the render code for the category
item.
[0124] FIG. 115 is a flow chart of the render code for the menu
item.
[0125] FIG. 116 is a flow chart of the render code for the numeric
entry node.
[0126] FIG. 117 is a flow chart detailing how viewer input is
handled.
[0127] FIG. 118 is a flow chart of the input handler code for the
menu item.
[0128] FIG. 119 is a flow chart of the input handler code for the
category item.
[0129] FIG. 120 is a flow chart of the input handler code for the
cell.
[0130] FIG. 121 is a flow chart of the input handler code for the
page.
[0131] FIG. 122 is a flow chart of the input handler code for the
numeric entry.
[0132] FIG. 123 is a flow chart of the input handler code for the
screen.
[0133] FIG. 124 is a flow chart of the timeout event handler.
[0134] FIG. 125 is a flow chart of the "push-screen" procedure.
[0135] FIG. 126 is a flow chart of the "pop-screen" procedure.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0136] The invention summarized above and defined by the enumerated
claims may be better understood by referring to the following
detailed description, which should be read in conjunction with the
accompanying figures. This detailed description of a particular
preferred embodiment, set out below to enable one to build and use
one particular implementation of the invention, is not intended to
limit the enumerated claims, but to serve as a particular example
thereof. The particular example set out below is the preferred
specific implementation of the navigational TV interface.
[0137] In accordance with the preferred implementation of the
present invention, the navigational interface is a software library
that executes on a client terminal to generate TV displays to a
consumer or viewer. The navigational interface provides an
on-screen interface for the viewer to access, set, and order
information, goods, and services (such as banking, ordering food
items or merchandise, and selecting a restaurant) through a TV. The
viewer interacts with the TV display through an input device such
as a remote control device. Based on the viewer's interaction, the
navigational interface modifies the TV displays and may communicate
across a distribution network to provide the information, goods,
and services to the viewer.
[0138] The details of the present invention are presented in
several sections. The first section describes a typical environment
in which the navigational interface may operate. The remaining
sections describe the components of the navigational interface,
each section including a general definition of the component and
examples of how the component may be used.
[0139] The following terms are defined to more clearly define and
describe the present invention. In addition to the following
defined terms' common meanings, the following terms will also have
all the characteristics set forth in the following definitions.
[0140] Application: shall mean a computer program for performing a
specific task, or an executable program that provides a specific
set of functions to the viewer. The application may make use of
various libraries that are part of the application itself or
contained elsewhere in the computer executing the application.
[0141] Display: shall mean the video-graphics the viewer sees on
the TV attached to the client device.
[0142] Electronic Commerce (e-commerce): shall mean commercial
activity, such as purchasing merchandise that occurs between a user
or viewer and a vendor through the viewer's TV and the client
device.
[0143] Hardware Server: shall mean a computer system having one or
more central processing units, system memory, persistent data
storage capabilities (for example, hard drives and nonvolatile
random access memory (RAM)), and a particular operating system (for
example, Windows 98, Windows NT, UNIX, and VMS).
[0144] Input Device: shall mean the hardware the viewer uses to
control the client device, such as a remote control.
[0145] Network Provider: shall mean a company or organization, or
multiple companies or organizations, responsible for the
maintenance, upgrading, and general administration of the equipment
in the data center, the distribution network, and, in some cases,
the client terminals. The network provider may be a cable company,
a local telephone company, a long-distance telephone company, a
direct broadcast satellite company, or any company or organization
owning or building the type of distribution network described
herein.
[0146] Pop: shall mean retrieving and removing the top or most
recently added element of a stack.
[0147] Push: shall mean adding a new element to a stack.
[0148] Render: shall mean the process of placing pixels from image,
text, or both into the video output buffer. Once placed in the
video output buffer, the image and text appear on the TV
display.
[0149] Stack: shall mean a last-in first-out data structure for
holding a list of elements (such as records) in which the elements
are added to the stack by being "pushed" onto the stack and removed
from the stack by being "popped" from the stack. The most recently
added element to the stack, the top element, is the element popped
from the stack. Stacks are commonly used in the data processing and
computing industries.
[0150] Typical Execution Environment
[0151] In accordance with one aspect of the present invention, the
environment in which the navigational interface may operate is
comprised of a network provider data center 1, a distribution
network 8, a client terminal 9, a TV connection cable 10, a TV
display device 11, a viewer 12, and a viewer input device 13 as
illustrated in FIG. 1. The distribution network interfaces between
the data center and the client terminal. The navigational interface
executes on the client terminal.
[0152] The data center 1 is comprised of an internal network 2, a
network administration server 3, an application server 4, a
database server 5, and a viewer interface development workstation
6. The data center shown in FIG. 1 represents a typical data center
configured by the network provider that owns and operates the data
center. The elements within the data center may be contained at a
single site or distributed to multiple sites. In the latter case,
the internal network includes industry-standard wide-area-network
communications equipment to facilitate communications between the
remotely located elements of the data center.
[0153] The network administration server 3, application server 4,
database server 5, and development workstation 6 each provide
specific functions in the typical data center 1. Although
represented as separate elements, the specific functions of more
than one element may be performed by a single hardware server. The
primary function of the network administration server is to allow
personnel in the data center to manage and control the distribution
network 8. This functionality typically includes management and
configuration of all components in the distribution network,
including client terminals 9, as well as components in the data
center.
[0154] The primary function of the application server 4 is to
execute software modules related to any specific viewer oriented
service. For example, if an e-mail service is provided to viewers
12 via the client terminal 9, the client terminal uses the
distribution network 8 to communicate with the application server,
which runs a specific software module whose primary responsibility
is to provide the client terminal with the viewer's current e-mail.
The application server can run multiple, unrelated software modules
or programs for facilitating any service the network provider
wishes to provide.
[0155] The primary function of the database server 5 is to execute
software implementing a data storage and retrieval system. Many
standard software packages for data storage and retrieval are
available, including Oracle, Sybase, Interbase, Ingres, Informix,
SQL Server, and the like. The services provided by the database
server may be used by the network administration server 3, the
application server 4, the development workstation 6, or by any of
the client terminals 9 attached to the distribution network 8.
[0156] The primary function of the development workstation 6 is to
provide a computer at which a viewer interface developer 7 may
manually configure and control the specific behaviors of the
applications developed using the navigational interface. The
development workstation is optional and thus may or may not be used
by the network provider. The software executing on the development
workstation, which is used by the viewer interface developer, has
the capability to update the configuration files used by the
navigational interface.
[0157] The network administration server 3, the application server
4, and the database server 5 may directly communicate with each
other via the internal network 2. In addition, the client terminal
9, through the distribution network 8, may directly communicate
with these servers. The development workstation 6 may directly
communicate with the servers as needed to relay changes or
modifications in any application-specific configurations.
[0158] The network provider provides the distribution network 8 to
the viewer 12. This network may be implemented over, for example, a
standard telephone system, advanced versions of a telephone system
(such as the Integrated Services Digital Network (ISDN) and
asymmetric digital subscriber line (ADSL)), a cable television
network, a direct broadcast satellite network, or any other network
technology that is capable of, minimally, providing one-way
communication, or preferably two-way communication, from the data
center 1 to the client terminal 9. The navigational interface is
not dependent on a specific network technology, except that the
network technology must be sufficient to provide the navigational
interface with its configuration parameters through one-way
communication.
[0159] The client terminal 9 is connected to the distribution
network 8, allowing the client terminal to, minimally, receive data
from the elements of the data center 1 or, preferably, send and
receive data to and from the elements of the data center.
Specification of the types of hardware and operating systems that
are to be used on the client terminals, which may vary for
different client terminals, is typically the responsibility of the
network provider. The distribution network may include,
potentially, millions of client terminals.
[0160] A standard TV connection cable 10 connects the client
terminal 9 to a TV display device 11, which is a standard, consumer
television set. The viewer 12 communicates with the client terminal
through a viewer input device 13, such as a remote control, that
may be either wireless (such as an infrared remote control) or
wired to the client terminal by a cable or by direct physical
attachment (see FIG. 2). Additionally, the input device can be a
wired or wireless computer keyboard or similar device possessing
comparable functions.
[0161] The major hardware components in the client terminal 9 that
are relevant to the navigational interface are shown in FIG. 2. The
client terminal may contain other hardware components, depending on
the specific configuration of the client terminal, including
persistent storage devices (such as hard drives, nonvolatile RAM,
and the like), other output devices (such as printers), and other
input devices (such as card readers and microphones).
[0162] In accordance with one aspect of the present invention, the
client terminal 9 is attached to the distribution network 8 at a
network terminal connection 40. A network communications data
receive module 32 (including a demodulator and a tuner), receives
data from the distribution network, decodes it, and feeds the
decoded data to a system bus 58 in the client terminal. From the
system bus, the data is typically written into main RAM 54. The
central processing unit (CPU) 56 interprets the data and handles it
accordingly. For example, if the data is an executable version (or
application) of the navigational interface, then the CPU may
execute the application.
[0163] The pixels for generating a particular display of text and
graphics to the viewer 12 are stored in a video output buffer
within video RAM 34. One example of what the viewer might see based
on the contents of the video output buffer is illustrated in FIG.
8. Typically, an application currently running in main RAM 54
writes image data across the system bus 58 into the video RAM,
which makes the pixel data available to an audio/video (A/V) encode
module 36. The A/V encode module produces a standard television
signal accessible from a TV output connection 42 of the client
terminal 9 to the TV display device 11 through the TV connection
cable 10.
[0164] A network communications data transmit module (including a
modulator) 38 sends data onto the distribution network 8. The data
transmit module receives the data to send from the system bus 58
and sends the data back out onto the distribution network through
the network terminal connection 40. Alternatively, the client
terminal 9 may only be capable of receiving data.
[0165] A wireless controller input handler 44 decodes viewer input
received from the wireless input device 13. The wireless input
device transmits data via infrared light emitting diodes (LEDs) or
aerial radio frequency (RF) into the client terminal 9 at a
wireless port 46. The wireless port forwards the input data to the
wireless controller input handler, where the data is prepared for
transmission across the system bus 58 and into main RAM 54, where
it may be interpreted by any currently running applications or by
the operating system. A wired controller input handler 48 functions
similarly to the wireless controller input handler, except that it
decodes viewer input received from the wired input device connected
directly to the client terminal at a wired port 50.
[0166] The navigational interface executes on the client terminal 9
as an application capable of receiving and handling viewer input
from the input device 13. As the input is received, the
navigational interface interprets the input, modifies the contents
of the video RAM 34 when necessary, and transmits data from the
client terminal through the data transmit module 38 to the data
center 1. Also, interpretation of the viewer input might result in
receipt of data through the data receive module 32 from the
distribution network 8.
[0167] One possible configuration of the viewer input device 13 is
shown in FIG. 3. The exact appearance of the input device 13 is not
critical to the present invention. Because the components
responsible for the internal operation of the input device 13 are
conventional, details of the internal components, including power
source and hardware for communicating with the client terminal 9
(such as an infrared transmitter or a physically connecting cable),
which may be used, herein have been omitted.
[0168] The viewer 12 pushes particular keys on the input device 13
and the information associated with the pressed keys is transmitted
to the client terminal 9. Typically, input devices used in
conjunction with the present invention have directional or
navigational indicators for moving to various areas of the TV
display device 11. The directional indicators include an up key 60,
a down key 62, a right key 64, and a left key 66. The input devices
also typically include a selection key 68 for permitting the viewer
to make a choice among possible alternatives (for example, a key
marked with text such as "select," "enter," "choose," and "this
one"), and an information key 70 for permitting the viewer to ask
for more information or help (for example, a key marked with text
such as "?," "info," "more info," "help").
[0169] In addition, a plurality of optional function keys may be
included on the input device 13 for providing the viewer 12 with
additional features. In one embodiment of the present invention,
shown in FIG. 3, the input device includes an "A" function key 72,
a "B" function key 74, and a "C" function key 76. For example, the
"A" function key may add a food item to an order, the "B" function
key may complete the order, and the "C" function key may remove a
previously selected item from the order. The functionality of these
keys does not have to be indicated on the key itself. Rather,
functionality may vary depending on what the viewer is attempting
to accomplish, with the navigational interface communicating to the
viewer through the TV display device 11 the exact functionality of
each function key.
[0170] The input device 13 may also include a numeric keypad 78 for
entering numbers of channels or other numbers as required by the
current display on the TV display device 11. For example, the
viewer 12 may be prompted to enter an account number. In addition,
the input device typically includes standard TV oriented controls
such as a channel selector 80 and a volume control 82. Also, the
input device may include keys similar to those found on a video
cassette recorder (VCR) control panel or remote control, such as a
rewind key 84, a pause key 86, a stop key 88, a play key 90, and a
fast forward key 92, and these keys may be identified by well
known, consumer oriented icons. Finally, the input device may
include keys typically found on a compact disc player or laser disc
player, such as a jump forward key 94 and a jump backward key 96,
and these keys may also be identified by industry standard
icons.
[0171] An alternative configuration for the input device 13 is
shown in FIG. 4. The selection key 68 and the information key 70
are in different locations from those of FIG. 3. Also, the
directional indicator keys (the up key 60, the down key 62, the
right key 64, and the left key 66) of FIG. 3 are replaced with a
single, larger rocker type directional button 98. The directional
button provides the same navigational capabilities as those of the
indicator keys, but it also has the capability of moving at angles,
that is, up and to the left 100, up and to the right 102, down and
to the left 104, and down and to the right 106, as indicated by the
dots positioned between the ordinary up, down, left, and right
arrows on the directional button.
[0172] The Software Library
[0173] The navigational interface is a software library executing
on the client terminal 9 that generates displays to the viewer 12,
communicates various information and functionality available to the
viewer, enables the viewer to interact with the displays through
the input device 13, modifies the displays based on the viewer's
input, and, when necessary, communicates across the distribution
network 8. The software library containing the navigational
interface may be preloaded on the client terminal by being stored
in a persistent memory device inside the client terminal.
Alternatively, the software library may be downloaded from the
distribution network by the operating system or another application
running on the client terminal. The software library is used by an
application, such as an application that allows a viewer to order a
pizza, to perform the functions contained within the software
library. The software library provides a set of highly configurable
elements that are displayed to the viewer on the TV display device
11. A particular application using the software library may not
need to use all of the elements contained within the software
library, and the application displays the elements it does need to
use in a way specific to that application. A configuration file
indicates to the software library that elements should be used and
how they should operate and interact with each other. The
configuration file is originally written as a plain text, readable
file that is converted into a highly compressed, binary file called
the Viewer Interface Configuration File (VICF). Once compressed,
the software library reads the VICF and constructs the display
shown to the viewer on the TV display device. Thus, the software
library contains the source code for presenting an interface whose
definition is contained in the VICF.
[0174] A resident application is a software module executing on the
client terminal 9 responsible for providing consistent, predictable
behavior for the viewer 12 regardless of the state of the set-top.
For example, when the viewer presses a "channel up" button on the
input device 13, the resident application is responsible for taking
the viewer from the current channel to the next channel. Other
basic features, such as displaying the time and/or channel number
on the client terminal's top front panel LEDs, reacting to power
on/off requests, volume control, mute enable/disable, direct
channel tuning using the numeric keypad, channel up/down support
and rendering of the channel number on top of the analog or digital
video coming out of the set-top to the TV are also provided by the
resident application.
[0175] The resident application is also responsible for executing
various applications such as the present invention. The manner in
which the viewer requests the application varies depending upon the
implementation of the resident application. Some resident
applications assign a channel number to each individual
application. For example, an application that allows a viewer to
order a pizza could be assigned to channel 105. When the viewer
enters "105" on the remote control or accesses channel "105" by
pressing channel up/down, the resident application loads the code
to the pizza application (if the code was not already present on
the set-top) and executes it. Once executed, both the resident
application and the pizza application run concurrently on the
client terminal 9. If the viewer presses a key assigned to the
resident application, the resident application would handle such an
event. If the pressed key is not assigned to the resident
application, the resident application forwards the key press event
to the pizza application giving it the opportunity to react. For
example, if the viewer pressed the "channel up" key, the resident
application would react by messaging the pizza application that it
must exit. Then the resident application would change the channel
from the current channel to the next channel, which might be
another application or could be a broadcast TV channel.
Additionally, the viewer may press the "select" key, which would
require the resident application to look at the key press even and
decide it is unable to handle it. The key press event would then be
forwarded to the pizza application, which, depending on the state
of the application, would make a selection of a specific pizza
topping.
[0176] The present invention currently supports the model described
above wherein a specific channel number is assigned to each
application of the present invention. Alternatively, the present
invention also supports a model in which applications are requested
through a series of on-screen displays not related to channel
numbers. For example, a display prompts the viewer to choose a
specific application from a list of many applications. How the
viewer accesses this list of available applications is dependent
upon the implementation of the resident application. Typically,
resident applications have achieved this by providing this list on
a specific, well-known channel like "0". When the viewer turns to
channel 0, the list of applications is presented. When the viewer
selects an application, the channel number remains 0.
[0177] The resident application may be provided by the manufacturer
of the set-top, by the developer of the operating system executing
on the set-top or by a third party. In some cases, the
functionality of the resident application as described herein will
actually be implemented in the operating system itself; in these
cases, the resident application may or may not be identified as a
separate element by the operating system developer.
[0178] The Node
[0179] A node is any element, such as a menu item or screen that
may be displayed on the TV display device 11. The general or
overarching node has a basic set of properties. All types of the
general node have this common set of properties, plus any special
properties unique to a specific type of node. For example, a screen
110 (e.g., see FIG. 8) is a type of node, or node element, that has
all of the properties of the general node plus properties unique to
screens. Other types of node include a "category item" 112
comprising a list of "category item icon nodes" 120 (e.g., see FIG.
8), a "menu item" 114 comprising a list of "menu item icon nodes"
122 that all types of the general node inherit (e.g., see FIG. 8),
a "cell" 160 (e.g., see FIG. 60), a "page" 170 (e.g., see FIG. 73),
and a "numeric field" 150 (e.g., see FIG. 48).
[0180] The general node has several properties. First, nodes may
"have focus." The node having focus is one the viewer 12 is
currently able to manipulate using the input device 13. The node
that does not have focus cannot be manipulated or selected by the
viewer using the input device until it does have focus. Second,
nodes may store a list of particular input device keys needed and
what actions to perform when the viewer presses a specific input
device key. Additionally, nodes may include device keys that
trigger a custom action defined by the program. Third, only the
general node that has been enhanced to become a specialized node,
such as the screen 110, is displayed to the viewer on the TV
display device 11.
[0181] The fourth property is that all nodes, except the screen
110, are children of another node. The screen is always owned by a
component of the software library called a hierarchy manager.
Fifth, nodes may contain lists of "drawables." The "drawable" 134
(see FIG. 11) is an image, text, or both that may be shown to the
viewer 12 at a specific location on the TV display device 11 when
the node element has focus. Finally, nodes have the capability of
responding to viewer input. If the node has focus, a key pressed on
the input device 13 is inspected and the list of input device keys
is searched. If a match is found, the node performs the action
associated with the input device key.
[0182] Actions Supported by Nodes
[0183] "Custom" actions are supported by all types of nodes. This
special action is used when the behaviors of a particular node are
insufficient to handle a particular function. For example, the code
required to transmit a food service order may be specialized and
thus unnecessary to include in the software library because not all
applications using the navigational interface are likely to use
this specific functionality. Therefore, a special segment of code
is included in the navigational interface application that executes
when the viewer requests this action. For example, as illustrated
in FIG. 43, the viewer is informed that pressing the "B" function
key 74 on the input device 13 completes the order. The action
associated with the "B" function key can be established as a custom
action that executes the order transmit code.
[0184] Movement is accomplished by various move actions, which are
supported by cells 160 and numeric fields 150. "Move-down" actions
are supported by cells and numeric fields, and focus is moved from
the current node to the node directly beneath the current node
element. "Move-left" actions are supported by cells and focus is
moved from the current cell to the cell directly to the left of the
current cell. "Move-right" actions are supported by cells and focus
is moved from the current cell to the cell directly to the right of
the current cell. "Move-up" actions are supported by cells and
numeric fields and focus is moved from the current node to the node
directly above the current node.
[0185] "Page-back" and "page-forward" actions are supported by page
170. "Page-back" actions move focus from the current page to the
previous page, when a previous page exists. "Page-forward" actions
move focus from the current page to the next page, when a next page
exists.
[0186] "Pop-screen" and "play-media," and "push-screen" actions are
supported by all node types. Focus is moved from the current screen
110 to the screen below it on the screen stack when a "pop-screen"
action is initiated. "Play-media" actions indicate that the viewer
has requested a video clip with audio, a video clip without audio,
or an audio clip is to be played. If the clip has a video
component, the video may be displayed full screen or in a limited
portion of the screen. Focus is moved from the current screen to
the specified new screen, pushing the new screen onto the screen
stack when a "push-screen" action is initiated.
[0187] "Append-digit" and "remove-digit" actions are each supported
by the numeric fields 150. "Append-digit" actions indicate that the
viewer has pressed a number button on the input device.
"Remove-digit" actions indicate the most recently entered digit in
the numeric field be removed.
[0188] "Scroll-down" and "scroll-up" actions are supported by the
menu item 114. Focus is moved from the current menu item icon node
122 to the next menu item icon node on the list when a
"scroll-down" action is initiated. Focus is moved from the current
menu item icon node to the previous menu item icon node in the list
when a "scroll-up" action is initiated.
[0189] "Scroll-left" and "scroll-right" actions are supported by
the category item 112. Focus is moved from the current category
item icon node 120 to the previous category item icon node in the
list when a "scroll-left" action is initiated. Focus is moved from
the current category item icon node to the next category item icon
node in the list when a "scroll-right" action is initiated.
[0190] The Hierarchy Manager
[0191] The hierarchy manager keeps track of the screen 110 and
other nodes having focus. The hierarchy manager owns all screens,
and the screen may contain all other node types. One screen is
active at all times during the execution of any application using
the navigational interface. The currently active screen is the only
screen that is presented to the viewer 12 via the TV display device
11. If the active screen changes, the information presented to the
viewer is updated to show only the contents of the newly activated
screen.
[0192] The hierarchy manager also keeps track of the node having
focus. At least one node will have focus at any time. Only nodes
having focus may display any associated drawables 134. If the node
has focus, then its parent node also has focus. If the node loses
focus, then all of the node's child nodes lose focus. The screen
that has focus is always the active screen.
[0193] In addition, the hierarchy manager maintains a "screen
stack." The screen stack is a list of the screens 110 through which
the viewer 12 has navigated using the input device 13. When an
application using the navigational interface begins to execute, an
initial screen, specified in the VICF, is pushed onto the screen
stack, becoming the first or top record on the screen stack. If the
viewer, via the input device, wishes to view another screen, the
second screen is pushed onto the screen stack. If the viewer then
wishes to return to the initial screen, which is the record next to
the top of the stack, the current screen is popped from the screen
stack and the screen now at the top of the screen stack (the
initial screen) becomes the currently displayed screen.
[0194] The Screen
[0195] The screen 110 is the most fundamental type of node provided
by the software library. All other types of node are contained by
the screen. Pixels displayed on the TV display device 11 by the
software library are drawn by the active screen or one of its child
nodes. The screen inherits all the properties of the general node,
plus additional properties specific to screen nodes. First, the
screen may contain a background image. The background image may be
specified independently of the drawables 134 associated with the
screen to facilitate displaying the background image beneath all
other nodes, images, and textual strings on the screen. Second, the
screen may contain a list of child nodes, including the category
item 112, the menu item 114, the cell 160, the page 170, and the
numeric field 150. Third, when the screen has focus, its background
image, list of child nodes, and drawables are displayed. Finally,
the screen has the capability of responding to "custom,"
"push-screen," "pop-screen," and "play-media" actions.
[0196] Various combinations of nodes may be displayed on the screen
110. For example, the screen may contain a list of category item
icon nodes 120 with associated menu item icon nodes 122, or menu
item nodes without category item nodes. In addition, the screen
could contain just numeric fields 150, or pages 170, or cells 160.
Furthermore, the screen could contain a list of pages with related
cells on various pages. Finally, the screen could contain only
drawables 134 with no nodes being displayed at all. Drawables may
be displayed with any type of node to provide additional
information to the viewer 12.
[0197] Overview of Navigational Interface Application Execution
[0198] In accordance with one aspect of the present invention, the
major functions performed when an application uses the navigational
interface are depicted in FIG. 110. When the viewer 12 triggers
operation of the navigational interface application, the operating
system running on the client terminal 9 loads the binary code to
enable the application to start executing 400. The software library
obtains the VICF 402, for example, by receiving it from the
distribution network 8 or extracting it from another part of the
binary code, or by other methods dependent on the technologies
implemented in the data center 1.
[0199] The activation of the initial screen 110 is determined by
inspecting the VICF 404. Before making this screen active, the
entire video output buffer is marked as "dirty" 406. In the
preferred execution of the present invention, the video output
buffer is inspected after each remote event and after each timer
event to determine if any portions of the buffer are "dirty." Those
portions marked as "dirty" are completely redrawn to guarantee the
viewer is presented with the freshest state of all visible nodes.
Initially, the entire TV display device 11 is redrawn to contain
the text and images specified by the VICF. Subsequently, only the
parts of the video output buffer that are marked as "dirty" are
redrawn, facilitating code and run-time optimization. The hierarchy
manager then makes the initial screen active and gives the screen
focus 408, and directs the active screen to display or "render"
itself 410 on the TV display device (see FIG. 111).
[0200] As illustrated in FIG. 111, the render code procedure
options (430-438) for the active screen 110 are shown. The render
code provides the background of the current screen and other
drawables 134 in addition to other nodes that may be present on the
active screen. The render logic for each individual node is
illustrated in FIGS. 112-116. The page's render code, FIG. 112, is
performed in 430. The cell's render code, FIG. 114, is 434. The
menu item's render code, FIG. 115, is performed in 436. After the
screen's render code procedure options (430-438) have been
performed, the video output buffer is marked as "clean" 439 and the
procedure ends.
[0201] The render code procedures for the various node options are
illustrated in FIGS. 112-116. The page 170 node render code is
illustrated in FIG. 112, which also makes use of the cell's render
code if the page contains any cells. The render code for the
category item 112 contains the logic for implementing the scrolling
effect for category items (FIG. 114). The render code for the
category item also makes use of the menu item's render code or
procedures if the category item has an associated list of menu item
icon nodes. The render code for the menu item contains the logic
for implementing the scrolling effect for menu item icon nodes
(FIG. 115). The numeric field's render code is illustrated in FIG.
116.
[0202] The detailed functions of the handle viewer-input 418, which
handles viewer 12 inputs for the present invention, are illustrated
in FIG. 117. Preferably, the handle viewer-input procedure examines
the screen 110 currently active to see if it contains a list of
nodes. If a list of nodes is found, a designated method for
handling the viewer input for each particular node (440-450) is
called. If a viewer input can be fully handled by any single
handler for a particular node, then the viewer input is considered
handled and will no longer be considered by any node for
handling.
[0203] The methods for handling the viewer input handling
procedures for menu items 114, category items 112, cell grids 160,
pages 170, numeric fields 150, and screens 110 for each particular
node are illustrated in FIGS. 118-123. The input handler codes for
the menu items, category items, grids of cells, pages, numeric
fields, and screens make use of the "push-screen" procedure 452,
which is illustrated in FIG. 125, and the "pop-screen" procedure
454, which is detailed in FIG. 126. The timeout event handler also
makes use of the "push-screen" procedure and "pop-screen" procedure
(see FIG. 124).
[0204] The operating system informs the navigational interface
application 412 whether or not the viewer 12 pressed a key on the
input device 13 (see FIG. 110). If the viewer did press a key, the
hierarchy manager inspects the viewer input and determines whether
the viewer wishes to exit the navigational interface application
414. If the viewer wants to exit, then the application ends 416. If
the viewer wants to continue, then the viewer input is handled by
the software library 418 (see FIG. 117). If the viewer input
changes the video output buffer, then the modified portions of the
video output buffer are marked as "dirty," prompting the active
screen's render methods to execute again 410, followed by another
check for viewer-input 412. Thus, the main loop of the navigational
interface application comprises displaying the active screen by
rendering the video output buffer, getting input from the viewer,
reacting to the viewer input, and rendering the video output
buffer, getting input from the viewer, reacting to the viewer
input, and rendering the video output buffer if it is changed by
the viewer input. If no viewer input is received and a viewer input
timeout occurs 420, a particular action may occur depending on the
amount of time that passes with no viewer interaction 422 (see FIG.
124). After handling the timeout even, the main loop of the
application re-executes 410.
[0205] The Category Item
[0206] The category item 112 type of node contains a list of
category item icon nodes 120 (see FIG. 5) representing categories
of items for the viewer 12 to choose from, such as drama or sports
(e.g., see FIG. 8). The list of category item nodes is rendered as
a series of choices in a list that the viewer may scroll to the
left or right using the input device 13.
[0207] The list of category item icon nodes 120 may be rendered
within any specified region on the TV display device 11. The region
is referred to as a category "extent-box" 116 (see FIG. 5). The
category extent-box is defined in the VICF. An area inside the
category extent-box, referred to as a category "focus-box" 118,
lets the viewer 12 know which of the category item nodes has focus.
The category focus-box is also defined in the VICF. The category
item nodes not having focus are rendered to the left and right of
the category focus-box, fitting as many as possible within the
category extent-box while maintaining even spacing between the
category item nodes. The number of category item nodes may vary
depending on the particular navigational interface application. If
not enough space is available to render all of the category item
nodes, then the ones that do not fit within the category extent-box
are not rendered. If there are fewer category item nodes in the
list than the maximum number (dependent on factors such as the size
of the category extent-box and the sizes of the category item
nodes) that will fit in the category extent-box, then all of the
category item nodes are rendered, leaving blank the portions of the
category extent-box not containing category item nodes.
[0208] The category item 112 inherits the basic properties of the
general node, plus properties specific to the category item type of
node. First, as described above, the list of category item icon
nodes 120 is displayed to the viewer 12 within the category
extent-box 116, with the category item node having focus displayed
within the category focus-box 118. Second, the category item nodes
may be represented by an image (e.g., see FIG. 9), by text only, or
by a combination of image and text (e.g., see FIG. 8). The image
and text are specified independently of the drawables 134
associated with the category item nodes. Third, the category item
nodes may contain the menu item 114 with a list of specific menu
item icon nodes 122 for the viewer to choose from, such as a
particular movie (e.g., see FIG. 8). The menu item nodes contained
by a category item node are visible only if that particular
category item node has focus. Fourth, when a category item node has
focus, its image and text are rendered inside the category
focus-box, and any associated drawables and menu item nodes are
displayed. Fifth, the category item is capable of handling
"scroll-left," "scroll-right," "play-media," "push-screen," and
"pop-screen" actions.
[0209] Finally, the list of category item icon nodes 120 may be
defined as "circular" (the default) or "non-circular." If the list
of category item nodes is circular, then a category item node that
scrolls to the left or right edge of the category extent-box 116 is
rendered on the opposite side of the category extent-box if the
viewer 12 continues scrolling in the same direction. If the list of
category item nodes is non-circular, then the viewer may scroll to
the left or right only until the last category item node in the
list of category item nodes is rendered inside the category
focus-box 118.
[0210] In one embodiment of the present invention, as illustrated
in FIG. 5, five category item icon nodes 120 are currently visible.
Although the category item nodes shown are square in shape, the
nodes may be any shape depending on the contents of the images and
text rendered to represent the category item nodes. If the list of
category item nodes contains more than five category item nodes,
then the additional nodes are not visible because of the size of
the nodes and the category extent-box 116. Stationary visual cues
124 inform the viewer 12 that the viewer may scroll the list of
category item nodes to the left and right. The menu item nodes 122
displayed are associated with the category item node currently
having focus within the category focus-box 118. The category
focus-box 118 remains stationary during scrolling. Thus, as the
viewer scrolls left or right, the category item nodes all move in
the same direction until another category item node is centered
within the category focus-box. While the category item nodes are
scrolling, if a particular category item node reaches the edge of
the category extent-box, the entire category item node is marked as
non-visible and will not be rendered to the viewer until it scrolls
back inside the category extent-box.
[0211] If there are fewer category item icon nodes 120 than are
required to fill the category extent-box 116, then the category
item nodes are rendered as evenly as possible (or balanced) around
the category focus-box 118. For example, if three or five category
item nodes are displayed, then the category focus-box will be
located in the center of the category extent-box with an even
number of category item nodes displayed on either side of the
category focus-box (e.g., see FIGS. 8 and 23). However, if four
category item nodes are displayed, then in one embodiment, the
category focus-box may be centered on the second category item node
with one of the remaining nodes being located to the left and two
nodes to the right of the category focus-box (e.g., see FIG.
83).
[0212] If the list of category item icon nodes 120 is circular and
there are fewer category item nodes than are required to fill the
category extent-box 116, then, during scrolling, the category item
node reaching one extreme side of the category extent-box is moved
to the other side as the viewer 12 continues to scroll. For
example, when scrolling left, the leftmost category item node would
move to the rightmost side of the category extent-box. In circular
mode, the list of category item nodes is seen from the viewer's
perspective as having no beginning or end. The list continuously
loops through all choices from beginning to end and then back to
the beginning again.
[0213] If the list of category item icon nodes 120 is non-circular,
then the category item nodes are initially rendered with the first
category item node inside the category focus-box 118 and all other
category item nodes to the right of the category focus-box. The
viewer 12 cannot scroll left because there are no category item
nodes to the left of the first category item node in the list. The
viewer may scroll right and continue scrolling right until the last
category item node in the list is rendered inside the category
focus-box. At this point, the viewer may no longer scroll right. In
non-circular mode, the viewer perceives the list of category item
nodes as having a distinct beginning and end.
[0214] The Menu Item
[0215] The menu item 114 type of node may present any number of
services to the viewer 12, including playing an audio/video clip,
transferring focus from the current screen 110 to a different
screen, ordering a product, and changing a viewer preference. This
list of menu item icon nodes 122 is rendered as a series of choices
in a list that the viewer may scroll up or down using the input
device 13.
[0216] The list of menu item icon nodes 122 may be rendered within
any specified region on the TV display device 11. The region is
referred to as a menu extent-box 126 (see FIG. 5). The menu
extent-box is defined in the VICF. An area inside the menu
extent-box, referred to as a menu focus-box 128, lets the viewer 12
know which of the menu item nodes has focus. The menu focus-box is
also defined in the VICF. The menu item nodes not having focus are
rendered above and below the menu focus-box, fitting as many as
possible within the menu extent-box. If not enough space is
available to render all of the menu item nodes, then the ones that
do not fit within the menu extent-box are not rendered. If there
are fewer menu item nodes in the list than the maximum number that
will fit in the menu extent-box, then all of the menu item nodes
are rendered, leaving blank the portions of the menu extent-box
that do not contain menu item nodes.
[0217] The menu item 114 type of node inherits basic properties of
the general node, plus properties specific to the menu item type of
node. First, as described above, the list of menu item icon nodes
122 is displayed to the viewer 12 within the menu extent-box 126,
with the menu item node having focus displayed within the menu
focus-box 128. Second, the menu item nodes may be represented by an
image, by text (e.g., see FIG. 8), or by a combination of image and
text (e.g., see FIG. 10). The image and text are specified
independently of drawables 134 associated with the menu item nodes.
Third, when a menu item node has focus, its image and text are
rendered inside the menu focus-box, and any associated drawables
are displayed. Fourth, the menu item is capable of handling actions
to "scroll-up," "scroll-down," "push-screen," and "play media."
Finally, the list of menu item nodes may be defined as circular
(the default) or non-circular. Circular and non-circular nodes for
the menu item function similarly to those for the category item
112, the difference being scrolling up and down as opposed to left
and right.
[0218] In one embodiment of the present invention, illustrated in
FIG. 5, five menu item icon nodes 122 are currently visible.
Although the menu item nodes shown are rectangular in shape, the
nodes may be any shape depending on the contents of the images and
text rendered to represent the menu item nodes. If the list of menu
item nodes contains more than five menu item nodes, then the
additional nodes are not visible because of the size of the nodes
and the menu extent-box 126. Stationary visual cues 130 inform the
viewer 12 that the list of menu item nodes may be scrolled up and
down. The menu item nodes displayed are associated with the
category item icon node 120 currently having focus within the
category focus-box 118. The category item node having focus is the
parent or owner of the list of menu item nodes. The screen 110 may
contain a list of menu item nodes directly without containing the
list of category item nodes (e.g., see FIG. 22).
[0219] The menu focus-box 128 remains stationary during scrolling.
Thus, as the viewer scrolls up or down, the menu item icon nodes
122 all move in the same direction until another menu item node is
centered within the menu focus-box. While the menu item nodes are
scrolling, if a particular menu item node reaches the edge of the
menu extent-box, the entire menu item node is marked as non-visible
and is not rendered to the viewer 12 until it scrolls back inside
the menu extent-box.
[0220] The Numeric Field
[0221] The numeric field 150 is a type of node for allowing the
viewer 12 to enter a number that may be interpreted by the
navigational interface application. The screen 110 may contain a
list of numeric fields, enabling the viewer to enter multiple
numbers on a single screen. Only one numeric field has focus at a
time, and the numeric field having focus is the one the viewer is
currently editing.
[0222] The numeric field 150 inherits the basic properties of the
general node, plus properties specific to numeric fields. First,
the numeric field may contain a certain number of digits as
specified in the VICF. Second, the numeric field may be positioned
anywhere on the screen 110. Third, the numeric field is displayed
as a series of boxes, each box corresponding to one digit. Items
such as spacing between the boxes, the color of the boxes, and the
size of the boxes are configurable in the VICF. Preferably, the box
of the digit currently being entered is displayed in a different
color to indicate to the viewer 12 that this box is for holding the
current digit.
[0223] Fourth, the numeric field 150 allows digits to be entered
from left to right or from the right. When entered from the left to
right, the new digits are appended to the end of the already
entered digits and the current digit indicator moves to the right
one digit at a time. When entered from the right, all the digits
move one digit to the left each time an additional digit is entered
and the current digit indicator always stays over the right-most
digit. Entering digits from the right is useful, for example, when
entering numeric dollar values that include cents.
[0224] Fifth, the numeric field 150 has a "pin" mode in which the
digits the viewer enters are not displayed on the TV display device
11. Instead, the digits entered are represented by symbols such as
an asterisk (*) or a circle to maintain security of the number
entered. Sixth, if the numeric field does not have focus, then all
the digit boxes are displayed in the same color. If the numeric
field has focus, thereby allowing the entering of digits, the box
for the current digit is displayed in a different color as
specified in the VICF for highlighting the box. Seventh, the
numeric field is capable of handling the "append-digit,"
"play-media," "pop-screen," "remove-digit," "push-screen,"
"move-up," and "move-down" actions.
[0225] Finally, if the screen 110 contains a list of numeric fields
150, focus may change between each numeric field by automatically
transferring to the next numeric field when the viewer 12 finishes
entering the last digit in the current numeric field. Focus is
automatically transferred back to the first numeric field in the
list or a "custom" action is performed when the viewer enters the
last digit of the last numeric field. If a "custom" action is
defined, the present invention executes specific code stored in the
software library when the last digit is entered. Another way focus
may change is by the viewer pressing the up key 60 and down key 62
on the input device 13 to manually move focus from one numeric
field to another without completely filling in all digits in a
particular numeric field.
[0226] Example Configuration of Category Items and Menu Items
[0227] The category item icon nodes 120 and menu item icon nodes
122 may be placed in various locations on the TV display device 11
(see FIGS. 5 and 6). Also, the sizes of the category item and menu
item nodes may vary (see FIGS. 6 and 7). In addition, the category
item and menu item node having focus may be indicated in various
ways. For example, in FIG. 7, the menu focus-box 118 is represented
as a darkened rectangle beneath and larger than the menu item node
it contains, and the category focus-box 118 is represented as a
pair of half-ovals above and below the category tem node having
focus.
[0228] In one embodiment of the present invention, the display on
the TV display device 11 might appear to the viewer 12 as shown in
FIG. 8. In this representation, the category item icon nodes 120
represent various television show types or genres the viewer may
wish to view, such as movies, situation comedies, sporting event,
documentaries, and the like. The menu item icon nodes 122 represent
shows corresponding to the various show genres of the category item
nodes. In FIG. 8, the category item node labeled "Drama" currently
has focus. Menu item nodes associated with the "drama" category
item node are displayed, and of these, the menu item node labeled
"Grapes for Wrath" currently has focus. Also, in the figure is an
image representing a selection button 132 labeled "select" that is
similar in appearance to the selection key 68 on the input device
13 (see FIGS. 3 and 4). The selection button informs the viewer
that pressing the selection key 68 on the input device will cause
the menu item node currently having focus to be selected. The
category item nodes in this figure are represented as combinations
of images and text, while the menu item nodes are represented with
just text. The category item nodes may also be represented with
images and no text (see FIG. 9), and the menu item nodes may be
represented as combinations of images and text (see FIG. 10).
[0229] Drawables 134 are illustrated in FIG. 11. In this figure,
the menu extent-box is narrow and positioned on the left half of
the TV display device 11 to make room for the drawable. The
drawable shown is associated with the menu item icon node 122
having focus, which is labeled "Grapes for Wrath." The drawable
provides additional information about the menu item icon node
currently having focus. In addition, the selection button 1332 is
in a different location than it was in FIG. 8, demonstrating that
the selection button can be located in various positions on the TV
display device.
[0230] The displays appearing when the viewer 12 wants to scroll up
in the list of menu item icon nodes 122 from the node labeled
"Grapes for Wrath" to "Mr. Holland's Requiem" are illustrated in
FIGS. 12-15. In one embodiment of the present invention, the viewer
presses the up key 60 on the input device 13 to scroll up. However,
the keys used for scrolling a list in a particular direction are
configurable and may be changed in the VICF. The menu focus-box 128
remains stationary. Thus, the list appears to move in a downward
direction as the menu item node above the node currently having
focus moves into the menu focus-box.
[0231] After the viewer 12 presses the up key 60, the menu item
icon nodes 122 begin to move down, as shown in FIG. 12. Because the
menu item node labeled "Grapes for Wrath" no longer has focus, its
drawable 134 disappears. In the preferred embodiment, the selection
button 132 disappears because during the scroll, there is no menu
item node having focus that can be selected. The selection button
reappears when the scroll completes. Also, in the preferred
embodiment, the visual cue 130 above the list of menu item nodes
appears in a different color to inform the viewer that an upward
scroll is occurring.
[0232] As the menu item icon nodes 122 move further down during the
scroll, the bottom menu item node labeled "Philip and the Glass"
disappears because it no longer fits within the menu extent-box
126, as shown in FIG. 13. Also, a previously non-visible menu item
node labeled "Cheese and Crackers" now appears at the top of the
list of the menu item nodes. As the menu item nodes continue to
move down, the menu item node labeled "Mr. Holland's Requiem" moves
further into the menu focus-box 128 (see FIG. 14), until scrolling
completes, at which point this menu item node becomes centered in
the menu focus-box, as shown in FIG. 15. This node's drawable 134
is then rendered to the display. Also, the selection button 132
reappears. Typically, the entire scroll lasts for less than
approximately three seconds depending on the performance of the
client terminal 9 and the distribution network 8.
[0233] The displays appearing when the viewer 12 wants to scroll
left in the list of category item icon nodes 120 from the node
labeled "Drama" to "Nature" are illustrated in FIGS. 16-19. In one
embodiment of the present invention, the viewer presses the left
key 66 on the input device 13 to scroll to the left. However, the
keys used for scrolling a list in a particular direction are
configurable and may be changed in the VICF. The category focus-box
118 remains stationary. Thus, the list appears to move to the right
as the category item node to the left of the node currently having
focus moves into the category focus-box.
[0234] After the viewer 12 presses the left key 66, the category
item icon nodes 120 begin to move to the right, as shown in FIG.
16. Because the category item node labeled "Drama" no longer has
focus, its associated list of menu item icon nodes 122, as well as
the drawable 134 that was associated with the menu item node that
had focus, have disappeared. In the preferred embodiment, the
selection button 132 disappears, but reappears when the scroll
completes.
[0235] As the category item icon nodes 120 move further to the
right during the scroll, the rightmost category item node labeled
"Action" disappears because it no longer fits within the category
extent-box 116 at either the left or right end, as shown in FIG.
17. As the category item nodes continue to move to the right, the
category item node labeled "Nature" moves further into the category
focus-box 118, as shown in FIG. 18. In this figure, the category
item node labeled "Action" reappears on the left side of the list
of category item nodes, demonstrating the circular scrolling
capabilities. After scrolling is complete, the category item node
labeled "Nature" has focus, as shown in FIG. 19. This node's
associated list of menu item icon nodes 122 is displayed, as well
as the drawable 134 associated with the menu item node having
focus, labeled "Fir Trees in Danger." Also, the selection button
132 reappears.
[0236] If the viewer 12 scrolls up in the list of menu item icon
nodes 122 to the node labeled "Wild Domain Series," the drawable
134 for that menu item node appears (see FIG. 20). The drawables
may have different sizes and contain images, text, or a combination
of images and text (see FIGS. 19 and 20).
[0237] The viewer 12, by pressing the selection key 68 on the input
device 13, may select the menu item icon node 122 having focus in
FIG. 20, which is the node labeled "Wild Domain Series." This node
is configured to map the selection action to the "push-screen"
action, causing the screen 110 in FIG. 20 to lose focus and the
screen in FIG. 21 to be pushed onto the screen stack, thereby
gaining focus. The screen in FIG. 21 contains a list of category
item icon nodes 120. The category item node labeled "Science" has
focus, and its associated list of menu item nodes is displayed with
the menu item node labeled "Computers & Technology" having
focus. The screen also contains its own drawable 134 at the top of
the display. If the viewer again selects the menu item node having
focus, labeled "Computers & Technology," the screen shown in
FIG. 22 gains focus. This figure illustrates that screens may
contain menu item nodes without category item nodes, the menu item
nodes may contain more than one line of text, and screens may
contain more than on drawable.
[0238] The category item nodes 120 may be represented as text
phrases in various fonts and sizes, or as text phrases with each
text phrase having the same font and size (see FIGS. 23 and 24).
Also, the size of the category focus-box 118 and the number of
category item nodes may vary (see FIG. 23), and the category
focus-box may be placed in various locations within the category
extent-box 116, rather than always being centered (see FIG.
25).
[0239] The displays the viewer 12 might see if the screen 110,
category item icon nodes 120, and menu item icon nodes 122 are
configured to enable the viewer to purchase food items are shown in
FIGS. 26-59. In the initial screen, shown in FIG. 26, the category
item node having focus is the "Menu" node and the menu item node
labeled "Appetizers" has focus. If the viewer scrolls up in the
list of menu item nodes, focus changes from the node labeled
"Appetizers" to "Beverages," and the drawable 134 associated with
the node "Beverages" displays (see FIG. 27).
[0240] If the viewer 12 selects the "Beverages" menu item icon node
122, the screen 110 shown in FIG. 28 gains focus. This screen
contains a list of menu item nodes for selecting various beverages
and a drawable 134 at the top of the screen. The menu item node
labeled "2 liter--Koka Kola Dekaf--$2.75" has focus. The screen
also contains an "A" image 136, informing the viewer that the
viewer may add the menu item node currently having focus to the
viewer's order by pressing the "A" function key 72 on the input
device 13. The selection button 132 image and the selection key 68
discussed previously may be used to select and add items, but,
preferably, the "A" function key is used to aid the viewer in
distinguishing between navigating between screens and ordering
items.
[0241] After the viewer 12 presses the "A" function key 72 to
select and add to the order the beverage represented by the menu
item icon node 122 having focus, the original screen shown in FIG.
26 reappears, as shown in FIG. 29, but the category item icon node
120 having focus is now the "Check" node rather than the "Menu"
node. The menu item node associated with the "Check" category item
node is the beverage the viewer selected, illustrating the
capability of the navigational interface to dynamically create and
modify nodes at run-time based on viewer input. Examples presented
above have demonstrated node element configuration based on the
VICF, which is typically how nodes are created and configured.
However, all node types may be dynamically configured in the
present invention. In addition, a "B" image 138 and a "C" image 140
inform the viewer that the viewer may complete the order by
pressing the "B" function key 74 on the input device 13 and remove
an item from the order by pressing the "C" function key 76.
[0242] If the viewer 12 scrolls from the "Check" category item icon
node 120 to the "Menu" category item node, the associated menu item
icon node 122 labeled "Create Your Own" gains focus (see FIG. 30).
If the viewer selects the "Create Your Own" menu item node, this
node has the selection key 68 mapped to the "push-screen" action,
thereby pushing the screen 110 shown in FIG. 31 onto the screen
stack for display to the viewer to select a pizza crust size.
[0243] Once the viewer 12 selects the crust size, a "crust type"
screen 110 is pushed, as shown in FIG. 32. The crust size the
viewer selected is dynamically displayed within the drawable 134
associated with the screen. The viewer is prompted to choose a
pizza crust type. Once the viewer chooses the crust type, a
"topping" screen is pushed, as shown in FIG. 33, with the selection
the viewer made for the crust type displayed in the drawable. The
viewer is prompted to choose a pizza topping, and the menu item
icon node 122 labeled "Glazed Ham (Ham)" has focus. The viewer may
choose a topping or, as indicated by the "A" image 136, press the
"A" function key 72 on the input device 13 when the viewer is ready
to add the pizza to the viewer's order.
[0244] If the viewer 12 scrolls down the list of menu item icon
nodes 122 and selects the "Mushrooms (Mush)" node (see FIG. 34), a
"which half" screen 110 displays, as shown in FIG. 35. The viewer
is prompted to choose the part of the pizza on which the selected
topping should be placed. The "A" image 136 for adding the pizza to
the viewer's order does not appear in this display because the
viewer has not yet provided all required information for adding a
topping.
[0245] After the viewer 12 chooses the menu item icon node 122
labeled "Whole (W)" for the placement of the topping, the
"pop-screen" action executes, returning the viewer to the previous
"topping" screen 110, as shown in FIG. 36. The "A" image 136,
giving the viewer the option of adding the pizza to the viewer's
order, reappears. After the viewer selects the "Pepperoni (Pep)"
menu item node, the "which half" screen displays again (see FIG.
37). If the viewer selects the "1.sup.st half (1.sup.st)" menu item
node, the "topping" screen displays (see FIG. 38). After the viewer
selects the "Olives (Oliv)" menu item node, the "which half" screen
appears again (see FIG. 39), followed by the topping screen (see
FIG. 40) after the viewer selects the "2.sup.nd Half (2.sup.nd)"
menu item node in FIG. 39.
[0246] If the viewer 12 scrolls back to the "Mushrooms (Mush)" menu
item icon node 122, which is a choice previously selected, the
screen 110 appears as in FIG. 41. When the viewer scrolls back to a
topping that the viewer has previously selected, a drawable 134
appears informing the viewer that pressing the selection key 68 on
the input device 13 removes the topping. This illustrates the dual
function of the selection key--the selection key will be add a
topping if it has not already been added, or the selection key will
remove a topping if it has already been chosen. After the viewer
presses the selection key, the information regarding mushrooms is
removed from the drawable containing the description of the pizza,
and the note to the viewer about pressing the selection key to
remove the topping disappears, as shown in FIG. 42.
[0247] The "A" image 136 in FIG. 42 informs the viewer 12 that the
viewer may press the "A" function key 72 on the input device 13 to
add the pizza to the order. After doing so, the screen 110 with
focus, the "topping" screen, is popped back to the initial screen
shown in FIG. 26, as illustrated in FIG. 43. The "Check" category
item icon node 120 has focus, and the list of menu item icon nodes
122 the viewer selected is updated to include the pizza. The "B"
image 138 and the "C" image 140 indicate that the viewer has the
option of pressing the "B" function key 74 to complete the order,
or the "C" function key 76 to remove from the viewer's order one of
the items from the list of food items.
[0248] The displays the viewer 12 might see when completing the
food order transaction via the client terminal 9 are shown in FIGS.
44-59. The process of completing an order is configurable and may
change depending on environmental and regulatory capabilities and
concerns. This configuration information is preferably contained in
the VICF and is interpreted at runtime by the present invention,
which uses this information to determine the screens and options
that should be presented to the viewer.
[0249] After the viewer 12 presses the "A" function key 74 on the
input device 13 to complete the order, an optional screen prompts
the viewer to indicate whether the viewer will use a coupon with
the order (see FIG. 44). The viewer is then prompted to choose
between having the pizza delivered or picking up the pizza (see
FIG. 45). Next, the viewer is prompted to choose a method of
payment from a list of payment options (see FIG. 46). The list of
payment options may vary depending on the environment.
[0250] If the viewer 12 selects the "Credit/Debit Card" menu item
icon node 122, the next screen 110 displays a list of card payment
options for the viewer (see FIG. 48). If the viewer chooses the
"GTR Credit Union Debit Card" menu item node, the following screen
shown in FIG. 48, prompts the viewer to enter a personal
identification number (PIN) in the numeric field 150. The single
numeric field contains four boxes for four digits, the first box
having focus. The numeric field is configured to operate in the
"pin" mode, substituting display of the digits with symbols for
security. After the viewer enters three of the four digits of the
pin, the fourth box has focus, indicating the fourth box may be
edited (see FIG. 49).
[0251] An alternative screen 110 for entering card information is
shown in FIG. 50. The screen contains a list of numeric fields 150
for card number, expiration date, and pin. When the viewer enters
the last digit in the card number numeric field, focus
automatically transfers to the expiration numeric field. Various
stages of filling in the numeric fields are shown in FIGS.
51-55.
[0252] If the viewer 12 chooses "Pickup" from the screen 110
presented in FIG. 45, a "pickup" screen, as shown in FIG. 56, may
appear immediately after the viewer selects "Pickup," or after the
viewer specifies the method of payment using, for example, any of
the screens shown in FIGS. 46-55. The viewer may select the "B"
image 138 in FIG. 56 to complete the order (by pressing the "B"
function key 74 on the input device 13), or the "C" image 140 to
return to the main menu (by pressing the "C" function key 76 on the
input device), which is the same screen as shown in FIG. 43. If the
viewer chooses to complete the order, then a "confirmation" screen
displays, containing a confirmation number that may be used to
cross-reference the viewer's order at various stages of fulfillment
(see FIG. 57).
[0253] If the viewer 12 chooses "Delivery" from the screen 110
presented in FIG. 45, a "Delivery" screen, as shown in FIG. 58, may
appear immediately after the viewer selects "Delivery," or after
the viewer specifies the method of payment using, for example, any
of the screens shown in FIGS. 46-55. The viewer 12 may enter the
address specified on the screen for delivery if the input device 13
has a keyboard, but, preferably, the address is obtained by the
navigational interface application from the database server 5 in
the data center 1, rather than being contained in the VICF or
manually entered by the viewer at runtime. If the viewer selects
the "B" image 138 to complete the order, then the "confirmation"
screen displays (see FIG. 59).
[0254] The Cell
[0255] The cell 160 (see FIG. 60) is a type of node for presenting
a single, specific choice to the viewer 12 by placing an image or
text or both on the screen 110 within a fixed location that
contains the cells. The screen or page 170 (see FIG. 73) may
contain a list of cells displayed in a grid or table-like
arrangement. The viewer navigates between the cells using the up
key 60, down key 62, right key 64, and left key 66 on the input
device 13. The cell having focus is displayed with a special
border, such as the one shown in FIG. 60, to communicate to the
viewer which cell is the current cell. The list of cells may be
rendered within a grid defined to contain a specific number of
columns and rows. Cells and pages may be used in conjunction with
or as an alternative to the category item 112 and the menu item
114.
[0256] The cell 160 inherits the basic properties of the general
node, as well as properties specific to cells. First, the cell may
be represented by image, text, or both, and the image and text are
specified independently of the drawables 134 associated with the
cell. Second, when the cell has focus, a special border appears
around the cell and any associated drawables are displayed.
Finally, the cell has the capability of handling "move-left,"
"move-right," "move-up," "move-down," "play-media," "pop-screen,"
and "push-screen" actions.
[0257] Various arrangements and configurations of cells 160 are
illustrated in FIGS. 60-72. One example of cell configuration,
shown in FIG. 60, is the screen 110 containing four cells arranged
in a two-column by two-row grid. The cell labeled "Tasty Specials"
has focus. If the viewer 12 presses the right key 64 on the input
device 13, focus moves to the cell labeled "Pizza" (see FIG. 61).
If the viewer presses the right key again, focus moves to the
"Beverages" cell (see FIG. 62).
[0258] An alternative way to convey to the viewer 12 which cell 160
has focus is shown in FIG. 63. In this figure, only a portion of
the "Tasty Specials" cell has a special border, indicating that
this cell has focus. Displays after the viewer moves focus to the
"Pizza" cell and then to the "Beverages" cell are shown in FIGS. 64
and 65. FIGS. 63 and 64 illustrate that the "Tasty Specials" cell
and the "Pizza" cell have related drawables that appear when either
cell gains focus.
[0259] An alternative way for arranging and displaying cells 160 on
the screen 110 is shown in FIG. 66. In this figure, the cells are
not displayed with distinct borders. The indicator for
communicating that a cell has focus is a rectangle surrounding the
text label with a selection button 132 in one corner that informs
the viewer 12 that the cell may be chosen by pressing the selection
key 68 on the input device 13. The screen also contains a
navigational cue 190in the lower right-hand corner that informs the
viewer that the viewer may navigate around the cells by pressing
the up key 60, down key 62, right key 64, and left key 66 on the
input device. A display after the viewer moves focus from the
"Tasty Specials" cell to the "Pizza" cell and then the "Appetizers"
cell are shown in FIGS. 67 and 68.
[0260] In another cell 160 arrangement shown in FIG. 69, the screen
110 contains a one-column by three-row grid of cells. In this
configuration, the viewer 12 may navigate the cells only by
pressing the up key 60 and down key 62 on the input device 13, as
indicated in the navigation cue 190 at the bottom of the screen.
The display in FIG. 70 results after the viewer presses the down
key to move focus from the "Tasty Specials" cell to the "Beverages"
cell.
[0261] Another configuration, shown in FIG. 71, shows a screen 110
containing a two-column by three-row grid of cells 160. The cell
located in row 3, column 2 is not defined and is shown in the
figure with an "empty cell" identifier for illustration purposes
only. The "empty cell" identifier would normally not be presented
to the viewer 12, as shown in FIG. 72.
[0262] The Page
[0263] The page 170 is a type of node for presenting a full display
of text and images. The screen 110 may contain multiple pages in
the form of a list of pages with one page having focus and being
displayed at any one time. The viewer 12 may navigate between the
pages using keys configured on the input device 13 for moving
forward (page forward) and backward (page back) by page. For
example, the rewind key 84 and fast forward key 92 on the input
device could also be configured to provide page forward and page
back capabilities.
[0264] The page 170 inherits the basic properties of the general
node, plus properties specific to pages. First, the page may be
represented by an image, text, or both, and the image and text are
specified independently of the drawables 134 associated with the
page. Second, when the page has focus, the page's associated
images, text, and drawables are displayed. Third, the page may
contain a list of cells 160 that are displayed when the page has
focus. Finally, the page has the capability to handle "page
forward," "page back," "play media," "push screen," and "pop
screen" actions.
[0265] Various arrangements and configurations of screens 110,
pages 170, and cells 160 are demonstrated in FIGS. 73-82. One
sample configuration, shown in FIG. 73, is the screen containing a
list of pages. Four pages are associated with the current screen,
and this information is conveyed to the viewer 12 by the "Page 1 of
4" text in the lower right hand corner of the display. Also, a page
forward image 172 in the lower right hand corner indicates the
viewer may use the page forward or fast forward key 92 on the input
device 13 to move focus from the current page (page 1) to the next
page (page 2).
[0266] If the viewer 12 presses the page forward key on the input
device 13, the second page 170 appears, as shown in FIG. 74. The
viewer is informed that the current page is page 2, and the page
forward image 172 and a page back image 174 in the lower right hand
corner indicate the viewer may ether page forward to page 3 or page
back to page 1. After the viewer presses the page forward key two
more time to move focus to the last page (page 4) in the list of
pages, the page forward image disappears, leaving only the page
back image to indicate to the viewer that the viewer has reached
the end of the list of pages (see FIG. 75).
[0267] A sample configuration for ordering merchandise through
e-commerce is illustrated in FIGS. 76-82. A two-column by two-row
grid of cells 160 for individual retailers is shown in FIG. 76. The
navigation cue 190 reminds the viewer 12 how to move between the
cells, and the selection button 132 indicates how to choose a
particular retailer. For example, if the viewer presses the down
key 62 on the input device 13, focus moves from the "Duller Image"
cell to the "Top Buys" cell (see FIG. 77).
[0268] The screen 110 "pushed" after the viewer 12 selects the "Top
Buys" cell 160 is shown in FIG. 78. The screen contains four pages
170. The first page, as shown in FIG. 78, contains a two-column by
two-row grid of cells. The navigation cue 190 reminds the viewer
how to move between the cells. The page forward image 172 informs
the viewer that the viewer may move to the next page, and the "B"
image 138 informs the viewer that the viewer may order the item in
the cell having focus, which, in this figure, is the "Philip and
the Glass" cell. The "A" image 136 informs the viewer that the
viewer may listen to sample audio from the compact disc shown in
the cell having focus.
[0269] If the viewer 12 presses the page forward key 92 on the
input device 13, focus moves to page 2, as shown in FIG. 79. Page 2
also contains a two-column by two-row grid of cells 160. The page
back image 174, as well as the page forward image 172, display to
inform the viewer that the viewer may either move backward to page
1 or forward to page 3. If the viewer presses the down key 62 on
the input device, focus moves from the "Thunder Sunglasses" cell to
the "Clock with LCD Date" cell (see FIG. 80).
[0270] If the viewer 12 presses the "B" function key 74 to order
the item in the cell 160 having focus, a larger image of the item
the viewer wants to order is displayed, as shown in FIG. 81, along
with a textual description, the "B" image 138 to indicate the
viewer may complete the order, and the "C" image 140 to indicate
the viewer may cancel the purchase. The screen 110 contains
drawables 134 and the background image, but this particular screen
does not contain any nodes. If the viewer decides to complete the
order by pressing the "B" function key 74 on the input device 13,
then the viewer may see a confirmation screen, such as the one
shown in FIG. 82.
[0271] The Instant Pruning Search Interface
[0272] The instant pruning search interface searches for data
meeting multiple search key criteria. The pruning search interface
uses the screen 110, category item icon nodes 120, and menu item
icon nodes 122 to provide the viewer 12 with search keys and
specific search values for each search key. Each search key is
associated with a specific category item node. The specific search
values for each search key are contained in the list of menu item
nodes associated with the category item nodes.
[0273] When a particular search key is given a specific value to
search for, the range of specific values for all other search keys
is pruned so that the viewer 12 does not choose a particular
combination of values for the search keys that produces an empty
list of matches. Based on the search value set for the first search
key, the list of possible values for the second search key may be
pruned to yield matches. For example, the viewer might want to find
a restaurant in a particular area. The viewer may have two search
keys available, such as atmosphere and cuisine. If the viewer sets
a search value of "casual" for the atmosphere search key, then a
search value such as "steak" may not appear as a choice for the
cuisine search key if no restaurants are available in the area
having a casual atmosphere and also serving steak. The default
value for the search keys is "Any" or "All." If the viewer does not
change the default value for a particular search key, then that
search key will not limit the list of matches. In addition, the
screen 110 configured as a search interface typically contains
dynamic text within a current search criteria text box 180 (e.g.,
see FIG. 83) showing the viewer the current values set for each
search key.
[0274] In one embodiment of the present invention, the pruning
search interface is demonstrated in the context of selecting a
restaurant, as shown in FIGS. 83-109. The screen 110, configured as
a pruning search interface, may contain, for example, four search
keys, which are the same as the category item nodes 120, as shown
in FIG. 83. The "Atmosphere" search key has focus, and its
associated search values are the menu item icon nodes 122. All
search keys initially have the default search value of "Any." The
"A" image 136 indicates that the viewer 12 may see the list of all
matches based on the current search criteria by pressing the "A"
function key 72 on the input device 13. The viewer may scroll the
search keys in the same way the category item nodes may be scrolled
(see FIGS. 84-86).
[0275] If the viewer 12 scrolls to the "Region" search key 120 and
selects the "Brockway" search value 122, the current search
criteria text box 180 is modified to show selection of the new
search value (see FIG. 87). If the viewer then scrolls from the
"Region" search key to the "Atmosphere" search key, the list of
search values is reduced or pruned from the original list shown in
FIG. 83 to display only types of atmospheres available for the
region of "Brockway" (see FIG. 88).
[0276] After the viewer 12 further scrolls from the "Atmosphere"
search key 120 to the "Cuisine" search key, the list of search
values 122 is pruned from the original list shown in FIG. 84 to
display only types of cuisine available for the region of
"Brockway" (see FIG. 89). If the viewer scrolls from the "Any"
search value to the "Italian" search value and selects the
"Italian" search value, the current search criteria text box 180 is
updated to reflect setting the new search value (see FIG. 90).
[0277] The viewer 12 may then scroll from the "Cuisine" search key
120 to the "Atmosphere" search key, resulting in the list of search
values 122 being further pruned to reflect types of atmospheres
available for Italian restaurants in the region of "Brockway" (see
FIG. 91). Scrolling from the "Atmosphere" search key to the
"Region" search key, results in the search values being pruned to
display only regions having Italian restaurants (see FIG. 92).
[0278] If the viewer 12 scrolls from the "Region" search key 120 to
the "Price Range" search key, the list of search values 122 is
pruned to display only price ranges for Italian restaurants in the
region of "Brockway" (see FIG. 93). If the viewer selects the "$$"
search value for the "Price Range" search key, this selection is
indicated in the current search criteria text box 180 (see FIG.
94).
[0279] After the viewer 12 scrolls from the "Price Range" search
key 120 to the "Region" search key, the list of search values 122
for the "Region" search key is further pruned to contain only
regions having Italian restaurants with a price range of "$$" (see
FIG. 95). Similarly, scrolling from the "Region" search key to the
"Atmosphere" search key results in the list of search values for
the "Atmosphere" search key including only those types of
atmospheres for Italian restaurants with a price range of "$$" in
the region of "Brockway" (see FIG. 96). After the viewer scrolls
from the "Atmosphere" search key to the "Cuisine" search key, the
list of search values for the "Cuisine" search key is pruned to
include only types of cuisine for restaurants in the region of
"Brockway" having a price range of "$$" (see FIG. 97).
[0280] The "A" image 136 indicates that the viewer 12 may view the
results of a search using the search values specified in the
current search criteria text box 180 by pressing the "A" function
key 72 on the input device 13. If the viewer does view the search
results, the screen 110 displayed contains a list of menu item icon
nodes 122 for matching restaurants, as shown in FIG. 98. The menu
item node labeled "Gianni's Pub and Eatery" has focus, and it also
has a drawable 134 containing additional information about the
restaurant. The "C" image 140 indicates that the viewer may return
to the pruning search interface screen to modify search criteria
selected by pressing the "C" function key 76 on the input
device.
[0281] If the viewer 12 scrolls down from the menu item icon node
122 for "Gianni's Pub and Eatery" to the node for "Luigi's Pizza,"
the selection button 132 appears to indicate that additional
information is available for "Luigi's Pizza" by pressing the
selection key 68 on the input device 13 (see FIG. 99). If the
viewer chooses instead to scroll down from the menu item node for
"Luigi's Pizza" to the node for "Enzo's of Brockway," the
associated drawable 134 appears and contains both text and an image
of the restaurant's logo (see FIG. 100). If the viewer continues to
scroll down from the menu item node for "Enzo's of Brockway" to the
node for "Checkerboard Pasta House" (see FIG. 101), and then
selects the "Checkerboard Pasta House" menu item node, the screen
110 shown in FIG. 102 provides more information about the
restaurant selected, including a list of each of the restaurant's
locations, hours, and phone numbers. The "C" image 140 indicates
that the viewer may return to the list of matching restaurants by
pressing the "C" function key 76 on the input device.
[0282] The viewer 12 may want to see information for the "Brockway"
location (see FIG. 103), and then return to the pruning search
interface screen 110. To return, the viewer "pops" screens back by
pressing the "C" function key 76 on the input device 13 to return
to the list of matching restaurants (as shown in FIG. 101), and
then pressing the "C" function key again to return to the pruning
search interface screen, as shown in FIG. 104. The current search
values are still specified in the current search criteria text box
180. If the viewer scrolls up from the "Italian" search value 122
to the "Chinese" search value and selects the "Chinese" search
value, the change in type of cuisine is reflected in the current
search criteria text box (see FIG. 105).
[0283] After the viewer 12 scrolls from the "Cuisine" search key
120 to the "Atmosphere" search key, the list of search values 122
for "Atmosphere" search key is pruned to display only types of
atmosphere for Chinese restaurants having a price range of "$$" in
the region of "Brockway" (see FIG. 106). Scrolling from the
"Atmosphere" search key to the "Region" search key causes the list
of search values for the "Region" search key to be pruned to
display only regions having Chinese restaurants with a price range
of "$$" (see FIG. 107).
[0284] If the viewer 12 scrolls up from the "Brockway" search value
122 to the "Any" search value and selects the "Any" search value
for the "Region" search key 120, the change in search value
selected is reflected in the current search criteria text box 180,
as shown in FIG. 108. The viewer may see search results by pressing
the "A" function key 72 on the input device 13 (see FIG. 109).
[0285] The present invention may, of course, be carried out in ways
other than those set forth without parting from the spirit and
essential characteristics of the invention. The present embodiments
are to be considered in all respects as illustrative and not
restrictive, and all changes coming within the meaning and
equivalency range of the following claims are intended to be
embraced.
* * * * *