US 20030204846A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2003/0204846A1 Breen et al. (43) Pub. Date: Oct. 30, 2003

(54) ACCESSING TELEVISION SERVICES Publication Classification (76) Inventors: George Edward Breen, Wyncote, PA (51) Int. Cl...... H04N 5/445 (US); Stephen Jay Kraiman, Warrington, PA (US) (52) U.S. Cl...... 725/39 Correspondence Address: FISH & RICHARDSON PC 225 FRANKLIN ST (57) ABSTRACT BOSTON, MA 02110 (US) A television System allows viewers to acceSS a number of (21) Appl. No.: 10/137,995 different groups of television content, or “Service aggre (22) Filed: May 3, 2002 gates.” A portal interface for each group provides a direct means for the viewer to navigate between members of a Related U.S. Application Data Service aggregate, without necessarily having to accesses a global program guide for the television System. The groups (60) Provisional application No. 60/376,192, filed on Apr. of television content can be formed from various criteria 29, 2002. including forming the groups based on busineSS rules.

30 10

Discovery Network Logo Other Discovery Networks - Previous Episodes

Other Discovery Shows Patent Application Publication Oct. 30, 2003 Sheet 1 of 47 US 2003/0204846A1

30 10

Discovery Network Logo Other Discovery Networks

Previous Episodes

Other Discovery Shows

FIG 1. Patent Application Publication Oct. 30, 2003 Sheet 2 of 47 US 2003/0204846A1

Logo or brand rate 40a

20 ategory, program or channel 50a

ategory, program or channel 50b

ategory, program or channel 50c

60

Logo or brand rate 40b

FIG 2 Patent Application Publication Oct. 30, 2003 Sheet 3 of 47 US 2003/0204846A1

70a Discovery Networks logo

Discovery leath Tune Discovery Health Discovery

School > --

Tune Discovery School Travel Channel > -- 20 discovery Networks Discovery logo Networks logo

other discovery Discovery Networks logo - Deadly Bugs Previous episodes Aggregate 2 Natures on-ther PrimatesBabies: Match on-demand 50c Discovery N Cheetahs Natch on-demand-e-

60 Discovery Networks Watch on-demand logo 40b Discovery Y logo Would You Believe it?

Aggregate 1 - E. Aggregate 3

on he inside ogo

cues for the Giant Squid Watch on-demand - Allosaurus: A

Walking. Watch on-demandu

H Dwarf Standing Tall Watch on-demandu Sci-Trek logo

Aggregate 4

Sci-Trek logo

Aggregate 5

FIG. 3 Patent Application Publication Oct. 30, 2003 Sheet 4 of 47 US 2003/0204846A1

39 M

1. O 3O iss BSA.de/no RA SW fre

loS

s C . R - Patent Application Publication Oct. 30, 2003 Sheet 5 of 47 US 2003/0204846 A1 130N / 140 On Screen 150

Video Display

Decoder & Opt. Video Scaler

ally Programa 170

100 - is

60 R Receiver & Font Panel Buttons 180

Cable Television Set Top Box

110 a To Remote Control

FIG. 5 Patent Application Publication Oct. 30, 2003 Sheet 6 of 47 US 2003/0204846A1

200

Activation button pressed

230

menu for this progra

no, do

nothing 250 menu for this channel Present menu for this program

Present men for this channel

F.G. 6 Patent Application Publication Oct. 30, 2003 Sheet 7 of 47 US 2003/0204846A1

310 start 300

Button Was a yes Category

330 no

Display menu for the category

Button Was a yes

O

Present Service yes Button Was exit

370 360 no, do nothing Remove menu

380

340

FIG. 7 Patent Application Publication Oct. 30, 2003 Sheet 8 of 47 US 2003/0204846A1

FIG. 8 Patent Application Publication Oct. 30, 2003 Sheet 9 of 47 US 2003/0204846A1

FIG. 9 Patent Application Publication Oct. 30, 2003 Sheet 10 of 47 US 2003/0204846A1

FIG. O. Patent Application Publication Oct. 30, 2003 Sheet 11 of 47 US 2003/0204846A1

FIG 11 Patent Application Publication Oct. 30, 2003 Sheet 12 of 47 US 2003/0204846A1

FIG. 2 Patent Application Publication Oct. 30, 2003 Sheet 13 of 47 US 2003/0204846A1

MAINMENU SELECTION SCRIPT - HOMEXS

This function presents the appropriate menu based upon the currently tunes channel.

VH1 MENUS - DEMO1XS function main ()

var it; CHANNEL 1 = 250;

START CHANNEL = tune () ;

if (START CHANNEL == CHANNEL 1) { it = fetchScript ("demol"); it () ;

else { fetchScript ("demo2") ; it ()

FIG 13(a) - Patent Application Publication Oct. 30, 2003 Sheet 14 of 47 US 2003/0204846A1

VH1 MENUS - DEMOXS XScript for VH1 Menus function SetArrows (parent) { var it; var i ; // hide/show arrows for scrolling // up arrow if (parent. page == 0) it = parent. uparrow; it. x = (704); it. visible = 0;

= parent. uparrow; ... x = (68) ; . Visible = 1;

//down arrow if (parent. num items - parent. page parent. num buttons <= parent. num buttons) = parent. downarrow; ... x = (704) ; ... visible = 0;

= parent. Clownarrow; ... x = (68) ; . Visible = 1;

function ShowSubMenu (y) var i ; var it;

FIG 13(b) - I Patent Application Publication Oct. 30, 2003 Sheet 15 of 47 US 2003/0204846A1

submenu. y = y;

submenu. num buttons) = submenu. . child (i) ; ... x = 6; //decorative lines it = it. child () ; it.y O; it. X

it. next () ; = submenu. height - 2;

= i + 1 ;

hide menu arrows = menu . child (O) ; ... x = (704) ; . Visible = 0; = menu. child ( (4) ... x = (7 O4); . Visible = 0; = submenu. child (O) ; ... focus () ;

function SubMenuBlur ( ) war it; if (this. parent () == submenu) { submenu. y = (480); it of menu. linky; it. y = (480); FIG 13(b) - Z. Patent Application Publication Oct. 30, 2003 Sheet 16 of 47 US 2003/0204846A1

it = menu. child (cur menu.); while (submenu. nuIn items > 0) { deque. pop bottom (); submenu.num items = submenu. num items

submenu. page = 0;

SetArrows (menu) ; it. focus ();

function SubMenu (which) { var i ; var it; if ( (4) > which & & which >= 0 ) { cur menu = which; // set left arrow to point to sub-menu 1 arrow. y = (144) + (which - 1) * (40); it = menu. child (which); it = it. child (4) ; alert (it. value) ; if (it. value == "Storytellers") { deque. push bottom ("Joel, Billy"); deque. push bottom ("Jewel"); deque. push bottom ("Idol, Billy"); deque. push bottom ("Henley, Don"); - deque. push bottom ("Fogerty, John") ; deque. push bottom ("Eurythmics") ; deque. push bottom ("ELO"); deque. push bottom ("Duran Duran"); deque. push bottom ("Doors, The") ; deque. push bottom ("") ; FIG 13(b)-3 Patent Application Publication Oct. 30, 2003 Sheet 17 of 47 US 2003/0204846A1

deque. push bottom ("CSNY"); deque. push bottom ("Costello, Elvis") ; deque. push bottom ("Brooks, Garth"); deque. push bottom ("Bowie, David"); deque. push bottom ("") ; deque. push bottom ("Best of..."); deque. push bottom ("Bee Gees"); deque. push bottom ("Amos, Tori"); submenu. num items = 18; } else if (it. value == "Behind The Music") { deque. push bottom ("Diamond, Neil") ; deque. push bottom ("Depeche Mode") ; deque. push bottom ("Denver, John"); deque. push bottom ("Def Leppard") ; deque. push bottom ("Cult, The") ; deque. push bottom ("Crow, Cheryl"); deque. push bottom ("Crosby, David") ; deque. push bottom ("Creed"); deque. push bottom ("Chicago"); deque. push bottom ("Cher"); deque. push bottom ("Carpenters"); deque. push bottom ("Bon Jovi"); deque. push bottom ("Blues Traveler"); deque. push bottom ("Blind Melon"); deque. push bottom ("Black Crowes") ; deque. push bottom ("Barenaked Ladies"); deque. push bottom ("Bad Company") ; deque. push bottom ("Anthrax"); deque. push bottom ("AC/DC"); submenu. num items = 19; } else if (it. value == "Pop-Up Video") { de gue. push bottom ("Women of Rock") ; FIG 13(b) - 4/ Patent Application Publication Oct. 30, 2003 Sheet 18 of 47 US 2003/0204846A1

deque. push bottom ("Teenage Wasteland") ; deque. push bottom ("Star Power") ; deque. push bottom ("Madonna"); deque. push bottom ("Jailhouse Rock") ; deque. push bottom ("Boy Bands"); deque. push bottom ("80's Hair Bands");

submenu. nun items 7;

else // if (it. value == "Video Packages") { deque. push bottom ("Women of Rock") ; deque. push bottom ("Rap"); deque. push bottom ("R & B"); deque. push bottom ("Modern Pop") ; deque. push bottom ("Hard Rock") ; deque. push bottom ("Guitar Greats"); deque. push bottom ("Dance") ; deque. push bottom ("Country Hits"); deque. push bottom ("Classic Rock") ; deque. push bottom ("Boy Bands") ; deque. push bottom ("90's Metal"); deque. push bottom ("90's Grunge") ; deque. push bottom ("80's Pop Rock") ; deque. push bottom ("80's Hair Bands"); deque. push bottom ("80's Alternative"); submenu. num items = 15;

i = 0; // update text for sub menu buttons while ( i < submenu. num buttons)

it = submenu. child (i) ; if (i < submenu. num items)

show button ... visible = 1; ... x = (16); draw appropriate text - it. child (4) ; value = deque. peek bottom (i) ;

FIG 13(b) - a Patent Application Publication Oct. 30, 2003 Sheet 19 of 47 US 2003/0204846A1

else // hide button it. Visible = 0; it. x = (704) ;

// move submenu region into View it = menu. child (which); ShowSubMenu (it. y-85); Set Arrows (submenu) ;

function MoveHillite (left, top, width, height) { var it; hillite. x = left - (3) ; hillite. y = top - (3) ; hillite. width = width + 6; hillite. height = height + 6; // top it = hillite. child () ; it. width = hillite. Width; A/left it s it. next () ; it. height = hillite. height - 6; //bottom it - it. next () ; it. y = hillite. height - (3) ; it. width = hillite. width; //right it = it. next () ; it. x = hillite. width - (3) ; it. height = hillite. height - 6;

function Arrow Blur () FIG 13(b) - (2 Patent Application Publication Oct. 30, 2003 Sheet 20 of 47 US 2003/0204846A1

if (this parent () == menu)

this. Clut = fetchClut ("arrow") ; } else if (this parent () == submenu) { this. clut = fetchClut ("arrow 2");

function Arrow Focus ( ) { Move Hillite ( (704), (480), O, O);

if (this. parent () == menu)

this. clut = fetchClut ("arrow focus") ;

else if (this. parent () == submenu) { this. Clut = fetchClut ("arrow focus 2");

function. Button Click ( )

war it;

if (this. parent () == menu) { it = menu. linky; it. y = this. y + 13;

// show next level of categories SubMenu (this. index () ) ;

else if (this. parent () == submenu) { document. update () ; // it = fetch Script ("video");

it = fetchScript ("vicr"); it () ;

function. InitHillite ( )

var it; FIG 13(b) - 7 Patent Application Publication Oct. 30, 2003 Sheet 21 of 47 US 2003/0204846A1

hillite = new region (document); hillite. x hillite. y hiite. Width = l; hillite . height = 1 ; // top it = new rectangle (hillite); it. x = 0; it. y = 0; it. width = hillite. width; it. height = (3) ; it. color = defineColor (Oxd3b6 Ocff) ; A /left it = new rectangle (hillite); it. x = 0; it. y = (3) ; it. width = (3) ; it. height = hillite. height - 6; it. Color = define Color (OxC3b6OCff) ; // bottom it = new rectangle (hillite); it. x = 0; it. y = hillite. height - (3) ; it. Width = hillite. Width; it. height = (3) ; it. color = defineColor (Oxod3b6Ocff) ; A/right it = new rectangle (hillite); it. x - hillite. Width - (3) ; it. y = (3) ; it. width (3) ; it. height hillite. height - 6; it. Color defineColor (Oxc3b6 Ocff);

function MoveHillite (left, top, width, height) war it; hillite. X left - (3) ; hillite. y top - (3) ; hillite. width = width + 6; hillite. height = height + 6; // top it = hillite. child () ; it. width hillite. width; FIG 13(b) - Patent Application Publication Oct. 30, 2003 Sheet 22 of 47 US 2003/0204846A1

A /left it it. next () ; it. height = hillite. height - 6; //bottom it = it. next () ; it. y = hillite, height - (3) ; it. width so hillite. width; //right it - it. next () ; it. x = hillite width - (3) ; it. height = hillite. height - 6;

function. Button Focus () war parent; var it; it = this, child (4) ; it. color = defineColor (Oxff ffffff) ; parent = this. parent (); MoveHillite (parent. x + this. x, parent. y + this y, this. width, this. height);

function Button Blur ( ) var it; it this. Child (4) ; it. color defineColor (OxOOOOOOff) ;

function Button Down ( )

War. i t; War. O ar; War Il

par this. parent () ; l par. num buttons; alert (num); if (this. index () + 1 < num ) { it - this. next ( ) ; FIG 13(b)-4 Patent Application Publication Oct. 30, 2003 Sheet 23 of 47 US 2003/0204846A1

it. focus () ;

if (this. parent () == menu) Cancel bittn. focus () ;

function ButtonUp () { var it; if (this. index () > 0) { it = this. prev (); it. focus () ;

function CancelOnUp () { var it; var i ; War next; i = 0; next = menu. child () ; while (i < menu. num buttons) { it = menu. child (i) ; if (it. visible == 1) next = it;

next. focus () ;

function. On Exit () { exit () ;

function Page Up () { FIG 13(b) -/0 Patent Application Publication Oct. 30, 2003 Sheet 24 of 47 US 2003/0204846A1

war parent; war i: var it;

parent = this. parent () ; it = parent. Uparrow ; if (it. Visible == 1) if (parent == menu) { menu. page = menu.page - 1; i = menu. page *menu. nuIn buttons; while (i < menu.page *menu. num, buttons + menu. num buttons)

it a parent. child (i - menu.page *menu. nuIn buttons) ;

if (i < menu. num items) it. x = (16); it. visible = 1; it = it. child (4) ; it. Value = deque. peek top (i) ;

else { // hide button it. x = (704); it. Visible = 0;

i = i + 1 ; }

else if (parent == submenu) submenu. page = submenu. page - 1 ; i = Submenu. page * submenu. num buttons ; while (i < submenu. page * submenu. num buttons + submenu. num buttons) it = parent. child (i - submenu. page * submenu, num buttons); if (i < submenu. nun items) FIG 13(b) - Patent Application Publication Oct. 30, 2003 Sheet 25 of 47 US 2003/0204846A1

it. x = 6; it, visible = 1; it = it. child (4) ; it, value of deque. peek bottom (i) ; } else

it, x = (704); it. Visible = 0; } i = i + 1 ;

SetArrows (parent) ; it = parent. child (parent. num buttons - 1); it. focus () ;

function Page Down ( ) war i ; var parent; war it; parent F this parent () ; it = parent downarrow ; if (it. visible == 1) parent. page = parent. page + 1 ;

if (parent == menu)

i = Inenu.page *menu. nuII buttons; while (i < menu. pagemenu. num buttons + menu. num buttons) { it = parent. child (i - menu.pagemenu. num buttons) ; if (i < menu. num items) it. x = (16); FIG 13(b) - 12. Patent Application Publication Oct. 30, 2003 Sheet 26 of 47 US 2003/0204846A1

it. Visible = 1; it = it. child (4) ; it. value = deque. peek top (i) ;

it. x = (704); it. visible = 0;

-

else if (parent =s submenu) { i = Submenu.page * Submenu.num buttons; while (i < submenu.page submenu.num buttons + submenu. num buttons) { it = parent . child (i - submenu. page submenu. num, buttons) ; if (i < submenu. num items) ... x = 6; ... visible = 1; = it. child (4) ; . Value = deque. peek bottom (i) ;

... x = (704); visible = 0;

SetArrows (parent); it = parent . child (O) ; it. focus () ;

FIG 13(b) - / 3 Patent Application Publication Oct. 30, 2003 Sheet 27 of 47 US 2003/0204846A1

function SetButtons () var it; var i ; var num items;

num items = 0;

deque. push top ("Ultimate Albums") ; num items = num items + 1 ; deque. push top ("100 Greatest"); num items = num items + 1 ; deque. push top ("Fan Club") ; num items = num items + 1 ; deque. push top ("Video Packages"); num items = num items + 1 ; deque. push top ("Pop-Up Video"); num items = num items + 1 ; deque. push top ("Storytellers"); num items = num items + 1 ; deque. push top ("Behind The Music") ; num items = num items + 1 ; menu. num items = nun items; i = 0; while (i < menu. num buttons)

it = menu. child (i) ; if (i < menu. num items) { // show button it. Visible = 1; it. x = 0; // add text it = it. child (4) ; it. value = deque. peek top (i) ;

hide button ... visible = ... x = (704);

FIG 13(b) - // Patent Application Publication Oct. 30, 2003 Sheet 28 of 47 US 2003/0204846A1

SetArrows (menu) ;

function DrawButtons (parent, num buttons, left, top, height, width, Spc) { war index; war text; war it; War textx;

war h1; war h2; war h; War h4; parent. num buttons = num buttons; //set stripe heights if (parent == menu) { h1 =

h2 = w h3 = h4 = 5; textx = 20; else if (parent == submenu) h1 = 1; h2 = 2; h3 = 2; h4 = 2; textx = (4) ;

index = 0; while (index < num buttons)

it = new rectangle (parent); it. x = left; it. y = top + index* (height + spc) ; it. width = width; it. height height; it. Color = definecolor (Ox92C2efff) ; it. onfocus = Button Focus; it. Onblur Button Blur; FIG 13(b) - /6 Patent Application Publication Oct. 30, 2003 Sheet 29 of 47 US 2003/0204846A1

. Ondown - Button DOWn; . Onup = Button Up; ... on click = Button Click; ... onpageup = Page Up; ... onpagedown = PageDOwn; ... on right = SubMenuBlur; top lines it = new rectangle (parent. child (index)); it. x = 0; it. y = 0; it. Width = width; it. height = hl; it. Color = define Color (Oxffff:ffff) ;

it = new rectangle (parent. Child (index)); it. X = 0; it. y = hl; it. Width = width; it. height = h2; it. Color = define Color (OxOOOOOOff) ;

it = new rectangle (parent. Child (index)); it. x = 0; it. y = hl + h2; it. width = width; it. height = h3; it. Color = defineColor (0x31659cff) ;

// bottom line it = new rectangle (parent. child (index)); it. x = 0; it. y = height - h4; ... width = width; ... height = h 4; ... color = define Color (Ox31659cff) ; text = new text (parent. child (index)); text. x = textx; text. y = (10); text. font = fetch Font ( "arial11" ); text. color = define(Color (OxOOOOOOff); text. value = FF index = index + 1,

FIG 13(b) -/ Patent Application Publication Oct. 30, 2003 Sheet 30 of 47 US 2003/0204846A1

function main () { var it; war index;

menu = new rectangle (document); menu. color = defineColor (OxOOOOOOff); menu. y = 0; Imenu. x = 524; menu. height = (480) ; menu.. width = 224; menu. page = 0; // menu buttons

DrawButtons (menu, (4), O, (144), (28) , menu.. width, (12) ) ; // VH1 logo it = new rectangle (document); it. X F menu. X; it. y = 24; it. width = 224; it. height = 87; it. color = define Color (Ox31639cff); it = new image (it); it. bitmap = fetch Image ("whil"); it. clut = fetchClut ("Vh1") ; it. x = 48; it. y = 7; A/ sea change logo it = new image (document); it. bitmap = fetchImage ("sc logo"); it. clut = fetchClut ("sc logo"); it. x = menu. x + 16; it. y = 410;

A / up arrow it = new image (menu) ; it. x = (68) ; it. y = 125; it. bitmap = fetchlmage ("arrow u"); it. ciut -s fetchClut ("arrow") ; it. visible = 1; menu. uparrow = it; A / down arrow it = new image (menu) ; FIG 13(b) - 17 Patent Application Publication Oct. 30, 2003 Sheet 31 of 47 US 2003/0204846A1

lit. x = (68) ; it ... y = 300; it ... bitmap = fetchlmage ("arrow d"); t ... clut = fetchClut ("arrow") ;

it ... visible = 1; menu. downarrow = it;

A/ menu left borders = new rectangle (menu) ; ... x = 0; ... y = 0; ... height = (480); ... width = 3; . Color defineColor (Ox31659cff); = new rectangle (document); ... x = menu. x - 2; ... y = 0; ... height = (480) ; ... width = 2; . Color defineColor (Oxffff:ffff) ;

linky to submenu from menu element (offscreen for now) = new rectangle (document); it. y = (480) ; it. x = menu. X - 8; it ... width = 12; it ... height = 5; it color = define Color (Ox92c2efff) ; menu. linky as it; A / Exit button cancel bittn = new rectangle (document); cancel bittin. x = menu. x; cancel bittn. y = 367; cancel bttin. width = menu. Width; cancel bittin. height = 1.8; cancel bittn. color = define Color (Ox31659cff) ; cancel bittn. onfocus = Button Focus; cancel bittin. Onup = CancelOn Up; cancell ottn. on Click = On FXit; cancel bttn. visible = 1;

// text it = new text (cancel bittn); it. x = 40; FIG 13(b) - is Patent Application Publication Oct. 30, 2003 Sheet 32 of 47 US 2003/0204846A1

it. y = 3; it. font = fetch Font ( "arial 11" ) ; it. Value = "Exit Menu"; it. Color = define Color (Oxffff:ffff) ;

// define region for sub-menu, Offscreen submenu = new rectangle (document); submenu. X = 356; submenu. y = (480); // Offscreen submenu. color = define Color (0x00 OOOOff) ; submenu. Width = 160; submenu. height = 201; submenu. page = 0;

DrawButtons (submenu 5, 6, 23, 26, (148),

// up ar. Ow it = new image (submenu) ; it. x = (68); it. y = 5; it. bitmap = fetchlmage ("arrow u"); it. Clut as fetchClut ("arrow") ;

submenu. uparrow = it; // submenu border it = new rectangle (Submenu) ; it. x = 0; it. y = 0; it. width = submenu. Width; it. height = (3) ; it. color = defineColor (OX92C2efff) ; it = new rectangle (submenu) ; it. x = 0; it. y = (3) ; it. width = (3) ; it. height = submenu. height - 6; it. Color = definecolor (OX92c2efff) ; it = new rectangie (Submenu) ; it. x = 0; it. y is submenu. height - (3) ; it. width = submenu. Width; FIG 13(b) - 4 Patent Application Publication Oct. 30, 2003 Sheet 33 of 47 US 2003/0204846A1

... height (3) ; . Color = define Color (Ox92c2efff) ; = new rectangle (submenu) ; X F submenu.. width - (3) ; ... y = (3) ; ... width = (3) ; ... height = submenu. height - 6; ... color = defineColor (Ox92C2efff) ;

down arrow = new image (submenu); ... x = (68) ; ... y = 182; ... bitmap = fetchlmage ("arrow d"); ... clut fetchClut ("arrow") ;

submenu. downarrow = it; InitHillite () ; SetButtons (); it = menu. Child (0); it. focus () ;

FIG 13(b) - 20 Patent Application Publication Oct. 30, 2003 Sheet 34 of 47 US 2003/0204846A1

GAMESHOWNETWORK MENUS-DEMO2XS XScript for Game Show Network Menus function PlayVideo () fetchScript ("vcr");

function TextEocus () { this. color = defineColor (OxOOOOOOff); hillite. x = this . x - 5; } function TextBlur () { this. color = define Color (Ox4 a? do 6ff);

function Button Focus () var it; this. color = define Color (Oxffde 4 fff) ; = this. Child ( ) ; ... color = define Color (Oxffff:ffff) ; = it. next () ; ... color = define Color (Oxf7b 6OOff); = it. next () ; ... color = defineColor (Oxbod83 OOff); = it. next () ; ... color = defineColor (Oxffff:ffff) ; = it. next () ; ... color = defineColor (Oxffff:ffff) ; = it. next () ; ... color = definecolor (Oxf7b 6 OOff) ; = it. next () ; ... color = defineColor (Oxbo8a0 Off) ;

function Button Blur ( ) war it; FIG 13(c) - Patent Application Publication Oct. 30, 2003 Sheet 35 of 47 US 2003/0204846A1

this. color = definecolor (Oxa3a3a3ff) ;

it = this. child ( ) ; it. color = define Color ( 0xffff:ffff) ;

it. next () ; it. color = defineColor (Ox858585ff);

it = it. next () ; it. Color = define Color (OxOOOOOOff);

i t e it. next ( ) ; it. color = define Color (Oxa3a3a3ff) ;

// it = it. next () ; // it. color = defineColor (Oxffff:ffff) ;

it = it. next ( ); it. Color = defineColor (0x858585ff);

it = it. next () ; it. color = define Color (OxOOOOOOff) ;

function Button Up () { var it; it = this. prev () ; it. focus () ;

function Button Down ()

var it; it = this. next () ; it. focus () ;

function SetArrows ( )

war it;

if (submenu. page == 0)

{ it = submenu. left arrow; it. Visible = 0;

it. y = (480);

it = submenu. leftarrow; it. y = (22) ; it. Visible = 1; FIG 13(c) - 2 Patent Application Publication Oct. 30, 2003 Sheet 36 of 47 US 2003/0204846A1

if ( (submenu. page + 1) *3 < submenu. num items) { it. submenu. rightarrow; it. y = (22) ; it ... visible 1;

submenu. rightarrow; ... y = (480) W ... visible

function ButtonClick () { var it; var i ;

last this. index () ; // show submenu it this. child (6) ; if (it. value == "Game Show Cassics") { deque. push top ("$25,000 Pyramid") ; decue. push top ("$100,000 Pyramid"); decue. push top ("Body Language") ; deque. push top ("Card Sharks"); deque. push top ("Family Feud"); deque. push top ("Greed"); deque. push top ("Hollywood Squares") ; deque. push top ("I've Got A Secret"); deque. push top ("Jeopardy"); deque. push top ("Joker's Wild"); deque. push top ("Let's Make A deque. push top ("Match Game"); deque. push top ("Newlywed Game") ; deque. push top ("Password"); deque. push top ("Press Your Luck") ; deque. push top ("Rock & Roll Jeopardy"); FIG 13(c)-3 Patent Application Publication Oct. 30, 2003 Sheet 37 of 47 US 2003/0204846A1

Submenu. nuIn items = 16;

else if (it. value == "Game Show Network Originals") { deque . push top ("Three's A Crowd") ; deque. push top ("Black & White"); deque. push top ("Hollywood Showdown"); degue. push top ("Poker Face"); deque ... push top ("Interactive Greed") ; submenu.num items = 5; } else if (it. value == "European Game

degue ... push top ("Big Brother") ; deque. push top ("Countdown"); deque ... push top ("Crystal Maze") ; decue. push top ("15 to One") ; deque ... push top ("Knightmare") ; deque ... push top ("Mastermind"); deque. push top ("Number One"); deque. push top ("Robot Wars"); deque. push top ("Shooting Stars") ; deque ... push top ("Survivor"); deque. push top ("University Challenge") ; deque. push top ("Weakest Link") ; submenu. num items = 12;

else if (it. value == "Interactive { deque. push top ("Greed") ; deque. push top ("Number One") ; deque. push top ("Hollywood Showdown"); deque ... push top ("Poker Face") ; submenu. num items = 4;

Submenu. page i = 0; FIG 13(c)-4/ Patent Application Publication Oct. 30, 2003 Sheet 38 of 47 US 2003/0204846 A1

while i < 3) { it submenu. child (6 - i) ; if (i < submenu. num items) { it. Value deque. peek bottom (i) ; } else

it. value } i = i + 1 ;

} it = submenu. child (6) ; it. focus () ; SetArrows () ; submenu. y = 390;

function MenuBlur ( ) var it;

function Scroll Right ( ) { Var it; var i ; it = submenu. rightarrow; if it. visible == 1) { submenu.page = submenu.page + 1 ; i = 0; while (i < 3)

it = submenu. child (6 + i) ; if ( (submenu. page 3 + i) < submenu.num items)

it. value = deque. peek bottom (submenu. page * 3 + i) ; FIG 13(c) as Patent Application Publication Oct. 30, 2003 Sheet 39 of 47 US 2003/0204846A1

} i = i + 1 ; SetArrows (); it = submenu. child (6) ; it. focus ();

function ScrollLeft ( ) { var it; var i ; it = submenu. leftarrow; if (it. Visible == 1) { submenu. page = submenu.page - 1; i = 0; while (i < 3) { it = submenu. child (6 + i) ; if (submenu.page * 3 + 1 < Submenu. num items) { it. Value = deque. peek bottom (submenu.page 3 + i) ; else it. value = ""; } i = i + 1 ;

SetArrows () ; it = submenu. . child (7) ; it. focus () ;

function SubMenuBlur ( ) War it; war i ;

FIG 13(c) - A Patent Application Publication Oct. 30, 2003 Sheet 40 of 47 US 2003/0204846A1

while ( i < Submenu. num items) deque ..pop bottom (); i = i + 1 ;

submenu. y = (480) ; it = menu. child (last) ; it. focus ( ) ;

function SetButtons () { var it;

r Ile C hild (0); = it. chi ld (6) ; ... value = "Game Show Network Originals";

F Ice C hild (1) ; = it. chi ld (6) ; ... value = "Game Show Classics"; = menu. child (2) ; = it. chi ld (6) ; ... value = "European Game Shows"; = menu. child (3) ; = it. child (6); ... value F "Interactive Games";

function. On Exit () exit () ;

function IIlain ( ) { var it; Var i ;

// left menu bar el F new rectangle (document); Inenu. x = (3 2) ; menu. y = 0; menu. width = 192; IIlenu. height = (452) ; menu. color = define(Color (Ox4a/dd6ff) ; // right bo rder FIG 13(c) -7 Patent Application Publication Oct. 30, 2003 Sheet 41 of 47 US 2003/0204846A1

= new rectangle (document); ... x = (32) + menu. Width; ... y = 0; ... width = 4; ... height = (452) ; ... color = defineColor (Oxf7b 600ff) ;

game show logo = new image (document); ... x = 64; ... y = 24; ... bitmap = fetchImage ("gamesh icon"); it. clut = fetchClut ("gamesh icon");

// menu buttons i = 0;

= new rectangle (menu); ... x = 0; ... y = (120) + i* (54); ... width = menu.. width; ... height = (50); ... color = defineColor (Oxa3a3a3ff) ; ... onfocus = ButtonFocus; . Onblur = Button Blur; . Onclick = Button Click; . Ondown - ButtonDOWn; ... onup = Button Up; ... on right = ButtonClick; = new rectangle (menu. child (ii) ) ; ... x = 0; ... y = 0; ... width menu.. width; ... height = 2; ... color = defineColor (Oxffff:ffff) ; = new rectangle (menu. child (ii) ); X ty ... width = menu.. width; ... height = 3; ... color = defineColor (Ox858585ff) ; = new rectangle (menu. child (ii) ); ... x = 0; ... y = 5; ... width = menu.. width; ... height = 2; ... color = defineColor (OxOOOOOOff); FIG 13(c) - Patent Application Publication Oct. 30, 2003 Sheet 42 of 47 US 2003/0204846A1

new rectangle (menu. child (ii) ) ; = 0; = 7; ... width = menu. Width; ... height = 5; ... color = define Color (Oxa3a3a3ff); = new rectangle (menu. child (i)); ... x = 0; ... y = 41; ... width = menu. Width; ... height = 1; ... color = defineColor (Oxffff:ffff) ; = new rectangle (menu. child (ii) ) ; ... x = 0; ... y = 42; ... width = menu.. width; ... height = 5; ... color = definecolor (0x858585ff); = new rectangle (menu. child (ii) ); ... x = 0; ... y = 47; ... width = menu . width; ... height = 3; ... color = define Color (OxOOOOOOff) ;

text = new text (Imenu. child (ii) ) ; ... x = (16); ... y = (11); ... font = fetch Font ( "arial11" ); ... color = defineColor (OxOOOOOOff); ... value = ""; ... width = 152;

i + 1 ;

//exit button ilt = new rectangle (menu) ; ... x = 0; ... y = 35.1; ... width = menu. width; ... height = (50) - 20; ... color = definecolor (Oxa3a3a3ff); . On focus = Button Focus; ... onblur = Button Blur; . On click = On Exit; ... on up = Button Up; ... on right = Button Right; FIG 13(c) - Patent Application Publication Oct. 30, 2003 Sheet 43 of 47 US 2003/0204846A1

new rectangle (menu. Child (4)); ... x = O, ... width - menu. Width ; ... height = 2; ... color = definecolor (Oxffff:ffff) ; = new rectangle (menu. Child (4)); ... x = 0; ... y = 2; ... width = menu.. width ; ... height = 2; ... color = definecolor ( 0x858585ff) ; = new rectangle (menu. child (4)); ... x = 0; ... y = 4; ... width = menu.. width; ... height = 1; ... color = define Color (OxOOOOOOff); = new rectangle (menu. child (4)); x as O; ... y is 5; ... width = menu. Width; ... height = 5; ... color = define Color (Oxa3a3a3ff); = new rectangle (menu. child (4)); ... x = 0; ... y = 24; height = 1; ... width = menu. Width; ... color = defineColor (Oxffff:ffff) ; = new rectangle (menu. Child (4)); ... x = 0; ... y = 25; ... Width = Inenu. Width; ... height = 3; ... color = defineColor (Ox858585ff); = new rectangle (menu... child (4)); ... x = 0; ... y is 28; ... width = menu.. width; ... height = 2; ... color = define Color (OxOOOOOOff);

text = new text (menu. child (4)); x as 56; ... y = 8; ... font = fetch Font ( "arial 11" ); it. color = define Color (OxOOOOOOff); FIG l3(c) - 10 Patent Application Publication Oct. 30, 2003 Sheet 44 of 47 US 2003/0204846A1

it. value = "Exit";

// Seachange l Og O it = ne w image (document) ; X et 64; ... y = 408; it. bitm ap = fetchlmage ("sc logo2"); it. clut = fetchClut ("sc logo2");

//bottom menu bar submenu = new rectangle (document); submenu. x = 36 it tenu. width; submenu. y = (480); submenu. height = 60; submenu. Width = (704) - submenu. x; submenu. color = definecolor (Oxffce 4fff) ;

it = new rectangle (submenu) ; it. x = 0; it. y = 0; it. width = submenu.. width ; it. height = 2; it. color = define(Color (Oxfff:fffff) ;

it = new rectangle (submenu) ; it. x = 0; it. y = 2; it. Width = submenu. width; it. height = 3; it. color = definecolor (Oxf7b 60 Off) ;

it = new rectangle (submenu) ; it. x = 0; it. y = 5; it. width = submenu.. width; it. height = 2; it. Color = defineColor (Oxbd8a0 Off);

it = new rectangle (submenu) ; it. x = 0; it. y = 7; it. width = submenu.. width; it. height = 5; it. color = defineColor (Oxffff:ffff) ;

// it = new rectangle (submenu); A / it. y = submenu. height - 9; ... widt h = submenu. Width; ... height = 1; FIG 13(c) - ) Patent Application Publication Oct. 30, 2003 Sheet 45 of 47 US 2003/0204846A1

it. color = defineColor (Oxffff:ffff) ; = new rectangle (submenu) ; ... x = 0; ... y = submenu. height - 8; ... width = submenu. width; ... height = 5; ... color = define Color (Oxf7b 600ff) ; = new rectangle (submenu) ; ... x = 0; ... y = submenu. height - 3; ... width = submenu . width; ... height = 3; ... color = defineColor (Oxbd8a00ff) ;

text buttons = new text (submenu) ; ... x = 44; ... y = 15; ... font = fetchFont ( "arial11" ); ... color = define Color (Ox4al do 6ff) ; value = ""; ... width = 104; ... on focus s- Text Focus; . Onblur = TextBlur; ... on right = Button Down; ... on left = Scrolleft; ... onup = SubMenuBlur; ... on click = PlayVideo; = new text (submenu) ; ... x = 164; ... y = 15; ... font = fetch Font ( "arial 11" ) ; ... color = define Color (Ox4 add 6ff); ... value = Tv TT w ... width = 104; . On focus = Text Focus; ... onblur = TextBlur; ... onright = Button Down; ... onleft = Button Up; ... onup = SubMenuBlur; ... on click = PlayVideo; = new text (submenu) ; ... x = 284; ... y = 15; ... font - fetch Font ( "arial11" ); ... color = define Color (Ox4a 7dd6ff); . Value c f ... width = 104; . On focus = Text Focus; ... onbur = TextBlur; ... onleft = Button Up; FIG 13(c) - 12. Patent Application Publication Oct. 30, 2003 Sheet 46 of 47 US 2003/0204846A1

it. Onup = SubMenuBlur; it. Onclick = PlayVideo; it. Onright = Scroll Right; A/ hillite box hillite = new region (submenu) ; hillite. x = 40; hillite. y = 7; hillite. width = 108; hillite. height = 44;

new rectangle (hillite) ; ... x = 0; ... y = 0; ... width = hillite width; ... height = (3) ; ... color = defineColor (Oxbd8a00ff) ; //left it = new rectangle (hillite); it. x = 0; it. y = (3) ; it. width = (3) ; it. height = hillite. height - 6; it. Color = defineColor (Oxbd8a0 Off) ; M/bottom it = new rectangle (hillite); it. x = 0; ... y = hillite. height - (3) ; ... width = hillite, width; it. height = (3) ; it. color define(Color (Oxbd8a0 Off) ; // right it = new rectangle (hillite) ; it. x = hillite. width - (3) ; ... y = (3) ; ... width s (3) ; ... height = hillite. height - 6; ... Color = defineColor (Oxbc8a00ff) ; arrows for scrolling = new image (submenu) ; bitmap = fetchlmage ("arrow l") ; ... clut = fetchClut ("arrow3") ; .., x = (3) ; ... y = (480) ; . Visible = 0; submenu. left arrow = it; it = new image (submenu) ; it. bitmap = fetchImage ("arrow r"); FIG 13(c) as Patent Application Publication Oct. 30, 2003 Sheet 47 of 47 US 2003/0204846 A1

it. Clut = fetchClut ("arrow3") ; it. x = 400; it. y = (480); it. visible = 0; Submenu. rightarrow = it; SetButtons () ; it =F menu child (O) ; it. focus () ;

FIG 13(e) -// US 2003/0204846 A1 Oct. 30, 2003

ACCESSING TELEVISION SERVICES tion of the group of associated multimedia content available to the viewer is formed. When presenting a first member of CROSS REFERENCE TO RELATED the group to the viewer, a graphical representation of one or APPLICATION more of the members of the group is displayed according to 0001) This application claims the benefit of U.S. Provi the data representation of the group. A Selection from the Sional Application No. filed Apr. 29, 2002, titled Viewer of one of the members of the group is accepted; and “Accessing Television Services”. the Selected member of the group is presented to the viewer. 0008. The approach can include one or more of the TECHNICAL FIELD following features: 0002 This application relates to accessing television ser 0009. The television content that forms a group can vices. include a television broadcast, a Video-on-demand program, a Subscription program, a Subscription-on-demand program, BACKGROUND an advertisement (including “info-mercials” and television 0.003 Television systems today provide viewers with based Sales), or another group of television content. The hundreds of channels for viewing. To provide access to the television content that forms a group can include forming programming of these channels, cable and Satellite televi the group according to a busineSS rule. Sion Systems typically provide an Electronic Program Guide 0010. The graphical representation displayed can include (EPG) that presents a menu-based Graphical User Interface a Selection menu. The graphical representation can be dis (GUI) for viewers to scan the broadcasting schedule for all played while concurrently presenting a first member of the of the available channels or to group all programs listed in group. The graphical representation can be displayed with broadcasting Schedule into categories. In Systems that pro out concurrently presenting a first member of the group. vide Video-on-Demand (VOD) programming the EPG typi cally also allows viewers to Select programs to watch on 0011 When presenting the member, a request can be demand. The EPG interface is typically arranged hierarchi accepted from the viewer and the graphical representation of cally, for example, allowing a viewer to Select menus of the members can be displayed in response to the viewer's groups of programming, Such as groups by genre (e.g., request. The request can be generated by the viewer pressing children's programming) or groups by type of programming a single button on a remote control. (e.g., VOD). 0012. The graphical interfaces for different groups can have different types of graphical representations for mem SUMMARY bers of the group. 0004. In a general aspect, the invention provides an 0013 The graphical representation of other group mem approach for viewers of a television System to access groups bers can vary based on time. The graphical representation of of television Services. A number of different groups, or other group members can vary based on viewer demograph “Service aggregates, can be available to a viewer at one ics. time. A portal interface for each group provides a direct means for the viewer to navigate between the member 0014. The first entity can be a television system operator. Services of an aggregate, without necessarily having to The first entity can be a third party. The first entity can be a accesses a global program guide for the television System. content provider. 0005. In one aspect, in general, the invention features a 0015 The associated multimedia content available to the method for providing access to television content. The Viewer can form a group. The group of associated multime method includes forming one or more groups of television dia content can include a television broadcast program, a content. For each of the groups, a graphical interface is Video-on-demand program, or an advertisement (including provided for navigating among items of television content of “info-mercials” and television-based sales). The advertise the group. When presenting any of multiple, but not neces ment can be based on viewer characteristics. The advertise Sarily all, members of a group to a viewer, a graphical ment can be based on viewer demographics. The group of representation of other members of the group is displayed to asSociated multimedia content can include an internet Site. the viewer. In response to a Selection of one of the other The group of associated multimedia content can include members by the viewer, the Selected member is presented. multi-user interactive content. 0006. In another aspect, in general, the invention features 0016 To display the graphical representation a script can a method for providing access to television content. A first be received and executed. entity forms a group of television content. Each of the 0017. The approach may have one or more of the fol members of the television content group correspond to a lowing advantages: content provider. Each content provider has a commercial relationship with the first entity. The method includes pro 0018 Viewers using an interactive interface for a service Viding a graphical interface to the viewer, including pre aggregate may be more likely to remain within the group of Senting a graphical representation of the group of television Services that form the aggregate. This has the advantage that content, and accepting a Selection of one of the group from Viewers remain focused on the programming content rather the viewer. than leaving the Service aggregate. 0007. In another aspect, in general, the invention features 0019. The Service aggregate can provide navigation inter a method for providing a viewer access to members of a faces for niche markets, without adding complexity to a group of associated multimedia content. A data representa global program guide. US 2003/0204846 A1 Oct. 30, 2003

0020. A television system operator can define service vides viewers with access to a number of Service aggregates, aggregates that provide a way for delivering local or cus also referred to as portals, each of which includes a group of tomized advertising to viewers without modifying the tele television Services. These groups of television Services can vision content that is selected by the viewer. include a number of broadcast television channels, prior (recorded) television programming, Video-on-demand pro 0021 Scripts may be downloaded from the cable head gramming, targeted advertisements, etc. ASSociated with end by the Set-top box to provide interfaces to the Service each Service aggregate is a user interface that allows a aggregate. These Scripts may also be created at the cable Viewer to navigate among the various members of the head-end or provided by other parties Such as content Service aggregate when Viewing an originally Selected pro providers. gram. Each interface for a Service aggregate may be unique 0022 Various types of services may be contained in a without necessarily sharing characteristics with interfaces Service aggregate. For example, a Service member can be a for other Service aggregates. broadcast channel, on-demand content, an advertisement, or 0040 A viewer enters a Service aggregate by tuning to a the Service may itself be another Service aggregate. particular channel that is a member of the Service aggregate. 0023 Business rules can be used to organize access to Alternatively, the viewer enters an aggregate by explicitly programming So that a viewers interest is driven to targeted “tuning to a Service aggregate for example, by tuning to a advertising or other types of Services or Service aggregates. predetermined channel or using an EPG or other similar Once a viewer has selected a program for viewing, the program guide. Viewer has implicitly identified themselves as a target for a 0041 After accessing the Service aggregate, the viewer particular Service (e.g., advertisement) related to the pro can choose to view that aggregate by entering a command on gram being viewed. Thus, busineSS rules, and not necessarily a remote control used for controlling the Set-top box. In one program genre, can govern which Services are accessible to example, a dedicated “MENU' key on the remote control is the viewer and control delivery of these appropriate Services. used to access the interface. The interface can optionally be displayed on the entire television Screen, on a portion of the DESCRIPTION OF DRAWINGS Screen overlaying the currently viewed program (e.g., pic 0024 FIG. 1 illustrates a television displaying a menu. ture-in-picture), or in a non-overlaying portion of the Screen while a Scaled version of the currently viewed program is 0.025 FIG. 2 illustrates an example of a television menu Viewable on the remaining portion of the Screen. layout. 0042 Referring to FIG. 1, a television 10 displays a 0.026 FIG. 3 illustrates an example of a television menu menu 20 as an interface for a Service aggregate entered by and Submenu layout. the viewer. AS described further below, a Service aggregate may be formed by any of a number of different parties, 0027 FIG. 4 illustrates a television system. including content provides, television System operators, 0028 FIG. 5 illustrates an example of a set-top box block and/or other third parties. The menu 20, along with the diagram. Service aggregate, may Vary dependent upon the channel, affiliation with the channel, or the program being viewed on 0029 FIG. 6 illustrates a flow chart of a menu activation the television. By tailoring the menu to the program cur proceSS. rently viewed on the television, a viewer is provided with a 0030 FIG. 7 illustrates a flow chart of a menu selection pre-Selected group of Services from which to choose. By proceSS. pre-Selecting the Services, the viewer may be predisposed to remain within the Service aggregate and navigate among the 0031 FIG. 8 illustrates a view of a video on a television. Services of that Service aggregate. Thus, the aggregate 0032 FIG. 9 illustrates a view of a video and a menu on provides a way for providers of television content to orga a television. nize Specific content as an aggregate and focus the viewers 0033 FIG. 10 illustrates a view of a video and a menu attention on the items contained in the aggregate. and Submenu on a television. 0043 Referring to FIG. 2 a schematic representation for a typical menu 20 displays the graphical layout of a Service 0034 FIG. 11 illustrates a view of a video and a menu aggregate. In this example, top and bottom regions 40a, 40b and Submenu on a television. of the menu 20 contain a company logo or other brand 0035 FIG. 12 illustrates a view of a video and a video information. Central regions 50a-c may contain buttons that on-demand control bar on a television. refer, for example, to an individual program, broadcast channel, or another Service aggregate related to the company 0036 FIGS. 13(a)-(c) illustrate menu scripts. of the displayed logo and/or brand name 40a, 40b. After 0037. Like reference symbols in the various drawings activating the menu 20, the viewer selects one of the buttons indicate like elements. 50a-c in order to view one of the labeled services 50a-c or the viewer may select an exit button 60 to deactivate the DESCRIPTION menu 20. Services 50a-c may include a broadcast channel related to the currently viewed program or channel, or an 0038) 1 System Overview on-demand program again related to the currently viewed 0039. A television system provides viewers with access program or channel, or a web site, a Video game, an to a variety of television Services. For example, a viewer can advertisement, or another Service aggregate. access particular television channels that are provided by the 0044) Referring to FIG. 3, by selecting among the vari television System. In addition, the television System pro ous Services 50a-c, the viewer can navigate into Sub-menus US 2003/0204846 A1 Oct. 30, 2003

70a-d. For example, if the viewer accesses a menu from a Travel Channel, Discovery Health, etc.) along with on how-to repair show, the viewer can drill down, and further demand video of particularly related shows (e.g., episode 15 qualify his interests, to a show on re-caulking a bathtub. of Kids Health Works). A Service aggregate can include After navigating through Sub-menus the viewer can Select episodes (e.g., all the episodes of “Wild Discovery”), or another channel to View a related Show or Select an on possibly a Subset of past episodes of a program. The demand Video for viewing. The viewer can also return to a aggregate may also be based on program characteristics, for parent menu by selecting the exit button 60 on the various example, the most popular shows, the least popular shows, CUS. or the newest network programs. Types of Services that can be included in the Service aggregates include broadcast 0.045 By tailoring the menu for a particular channel a channels, on-demands programming, targeted advertise Viewer will tend to navigate within the Service aggregate ments, Web sites, and other types of information, Such as, asSociated with the Selected channel. For example, referring Stock tickers, news, Sports Scores, interactive games, or Still to FIG. 3, an example is a Service aggregate created by aggregates containing other content. the content provider of various programming offered by the Discovery Network. If a viewer activates the menu 20, while 0051 Membership in a service aggregate can be based on viewing the “Wild Discovery' channel, which is one chan busineSS affiliations or relationships between parties that are nel in the Discovery Service aggregate, a group of Services related to the Services in the aggregate. These affiliations can relating to the “Wild Discovery' channel are displayed. As include ownership, common ownership, Strategic partner the viewer navigates throughout the Submenus, Services ship, advertising, or co-marketing. which may be accessed by the viewer are pre-Selected by the creator of the aggregate, here the content provider. Also, 0052 Services aggregates can include on-demand ver Since this Service aggregate, menu, and Sub-menus were Sions of programs that are broadcast on a particular channel, predetermined by the content provider, the Viewer is not or on-demand episodes of a broadcast program. The Services necessarily aware that his Service navigation has been of an aggregate that are accessible to a viewer may also be restricted to content provided by the Discovery Network. based on the time of day. For example, a content provider may restrict access to on-demand content at certain times of 0.046 While the menus and Sub-menus control the con the day or the content provider may want to restrict access tent through which the viewer may navigate, the viewer can to previous episodes of a television Series according to when optionally exit the Service aggregate. For example, if the the current episode is playing on a broadcast channel. viewer tunes to a different television channel, the viewer may exit one Service aggregate and may enter a completely 0053 Services within the service aggregate can be based different Service aggregate associated with the newly On other parameters, Such as, a content provider promoting selected channel. Referring briefly back to FIGS. 1-3, if a new program by placing an advertisement of the program, while viewing the Wild Discovery channel the viewer tunes a preview of the program, or the program itself within the the television to the Home Improvement channel, and acti Service aggregate. A Service aggregate can also be defined by Vates the menu button, the displayed menus and Submenus the genre of the current program or Some other attribute or are associated with a Service aggregate relating to the Home category associated with the current program. Network rather than the Discovery Network. Alternatively, 0054 Advertisement services within a service aggregate exiting an aggregate may not lead to another aggregate but can be targeted to a particular program. For example, if a may allow the user Simply to navigate through channels in particular product can be seen in a program, an advertise a more conventional way. ment targeted to the product may be entered into the Service 0047 2 Service Aggregates aggregate. In another example, advertisement Services can be targeted to a program, Such as a Video-on-demand, which 0.048. Within the framework described above, various is accessed from a Service aggregate. Also, if another chan grouping techniques can be used to form the Service aggre nel is logically related to the current program being viewed, gates. For example, a Service aggregate can be formed of the related channel may be included in the Service aggregate. programs associated with a particular television network. A In Still another example, if a program or channel is affiliated Service aggregate may be also be formed of programs within with the owner of the currently viewed channel or program, a particular genre, for example, game shows or children's the affiliated channel or program may be entered as a Service programs. in the aggregate. Again, by controlling the relationship between the currently viewed material and the services 0049 Another basis for grouping content to form a placed within the Service aggregate, a viewer's navigating Service aggregate is according to busineSS rules. For ability is controlled by the creator of the Service aggregate. example, the Service aggregate can include the broadcast By controlling navigation abilities of a viewer an aggregate channels owned by a particular business entity. For instance, all of the channels owned by Discovery Communications, creator can target brand name associations with Viewers. Inc (e.g., Discovery Health, Wild Discovery, etc.) may be 0055 3 System Implementation members of, and accessed as a Single Service aggregate with a unique portal interface. In addition to the broadcast con 0056 Referring to FIG. 4, television content as well as tent, Such a Service aggregate can include Video-on-demand, information related to the user interfaces for various Service Such as previous episodes of programs on the Discovery aggregates available to viewers of the television System is channels. delivered from a cable head end 80 to viewer premises 105 over a broadband RF network 100. At each of the viewer 0050 A service aggregate can include a combination of premises, a “set-top box” (STB) 110 communicates with different types of Services, Such as a group of related cable head end 80, and Supports functions Such as tuning to channels (e.g., the Discovery Channel, TLC, Animal Planet, particular broadcast channels or receiving on-demand pro US 2003/0204846 A1 Oct. 30, 2003 grams provided by cable head end 80. STB 110 generates 0062). The data for Service aggregates that is passed to a video signals that are displayed on a viewer's television 90, STB includes scripts that when executed in the STB display and receives viewer's commands from a remote control 120, corresponding portal menus. A Script that is Sent to the STB or optionally through controls on the STB itself. Television is interpreted by portal program 170 and results in informa 90 presents both programs as well as graphical interfaces tion being provided to OSD 140 for displaying the images of used by the viewer to navigate between different services of the user interface on the viewer's television. Under control the System. of the downloaded Script, a menu does not necessarily 0057 Information that defines the various service aggre obstruct the underlying video program. Portal program 170 gates as well as the user interfaces for navigating among the may control OSD 140 to scale the video into a portion of the members of those services is passed from cable head end 80 display area So that the menu does not overlay any portion to STB's 110. Each STB includes a programmable processor of the underlying program. that executes Software that enables the interaction with the 0063 Referring to FIG. 6, portal program 170 executes Viewer when the viewer is using the graphical interface to a procedure 200 that monitors inputs from the viewer. The View a Service aggregate. procedure first checks whether a command indicating that 0.058. The information that defines the service aggregates the viewer has pressed the activation button (step 220) on the and the user interfaces for those Service aggregates comes infrared remote control 120 (shown in FIG. 4) has been from a variety of Sources. Content providerS 82, Such as received. For example, the activation button is marked television networks, who may provide a number of different “MENU” on the remote control. When receiving the acti television channels to cable head end 80 can define service Vation command, the portal program determines if there is a aggregates and provide the information for those Services to menu Script for the program currently viewed (Step 230), and the cable head end along with their content. Each content if not, if there is a menu Script for the television channel provider can define a number of different Service aggregates, being viewed (step 240). If there is a menu script for the for example, catering to different types of viewers. Portal current program, or for the current channel, that Script is providers 84, who do not necessarily provide any of the executed by portal program 170 (steps 250, 260). If there is program content that is available to the viewers, can also no menu for either the program being viewed or the channel define Service aggregates and provide information to the being viewed then no menu for an Service aggregate is cable head end 80 for defining those Service aggregates and displayed. Optionally, if there is no menu for an appropriate their user interfaces. Some of the Services that are grouped Service aggregate, the command can initialize display of an to form Service aggregates are not necessarily provided by overall program guide to the viewer. content providers 82 or portal providers 84. For example, access to computer network Services, Such as access to 0064. Through execution of a menu script, a menu is Internet-based web content, and access to electronic com displayed by OSD 140 (shown in FIG. 5) concurrently with merce Systems can be provided by external Service providers the program being viewed on the television. The menu may 86 that are also linked to cable head end 80. not completely obstruct the underlying Video program. Also, the OSD 140 may scale the currently viewed video into a 0059 Referring to FIG. 5, set-top-box 110 includes com portion of the television screen so that it is not overlaid by ponents for processing programming for display on the the menu. Alternatively, referring to FIG. 9, a menu can viewer's television. A video decoder 130 receives digital or overlay a portion of the Video image displayed. Referring to analog television signals from cable head end 80 and gen FIG. 10, Sub-menus, described above, may be variously erates viewable television signals that are passed to televi positioned on the currently viewed images. FIG. 10a, in one sion 90. STB 110 includes an on screen display & optional example, positions the Sub-menu adjacent to the Selected video scaler (OSD) 140. Video decoder 130 and OSD 140 menu option. Referring to FIG. 10b, in another example, the work together So that programming can be displayed on the Sub-menu is placed at the bottom of the television Screen and user's television unaltered, or optionally, a graphical inter overlays a different portion of the currently viewed video face can be displayed on the television, possibly in conjunc program. Referring to FIG. 11, in another example, the tion with programming. For example, menus can be Super Sub-menus can be placed within the primary menu structure imposed on programming, or the programming can be which overlays a portion of the currently viewed video Scaled to occupy less than all of the television display and program. the remaining portion is used for the graphical interface. 0060 Information that defines operation of the user inter 0065. Through the control of the menuscript, the choices faces for various Service aggregates is passed as data from of Services presented to the user can vary depending on a a data subsystem 87 at cable head end 80 to a data com number of factors, as can the Visual presentation of the munication Subsystem 160 in STB 110. Alternative commu Services. The factors that affect the interface can include, but nication channels for transmitting the data are described are not limited to, a particular Scene or time interval within below. a program, time of day, channel or program being viewed, demographics, and busineSS rules. 0061 STB 110 includes a portal program 170 that man ages the presentation of user interfaces for the Service 0066 Referring to FIG. 7, execution of a menuscript can aggregates. Portal program 170 is initially downloaded from control a number of interactions with a user, in which the cable head end 80 when the STB is powered on. Portal user enters commands by pressing buttons Such as “up' and program 170 coexists with other programs that are down "down” or numeric buttons. For example, a menu Script can loaded to the STB, for example, with a traditional Electronic implement a procedure 300 that allows the viewer to use Program Guide. Alternatively, portal program 170 is not remote control 120 to select from the menu options. A downloaded initially, and is downloaded when the viewer Viewer's Selection can correspond to a category of Services first accesses a Service of a Service aggregate. (step 320). If a category is selected a category menu is US 2003/0204846 A1 Oct. 30, 2003 displayed (step 330) on the television screen. If a particular 0072 Referring to FIG. 13a-c, three examples of menu Service, Such as a broadcast TV channel, on-demand Video scripts are shown, which after down-loaded from the cable program, or other similar video content, is Selected (step head end 80 (FIG. 4) and executed allow a viewer to 350), the service is presented (step 360), for example, using navigate within a number of different Service aggregates. standard functions of the STB to access that service. For example, if the Selected content is a broadcast program, the 0073 4. Alternatives Script controls the STB to tune to the appropriate channel. 0074 Besides activating a Service aggregate menu by For VOD content, the script causes the STB to send com Selecting a television channel, the Service aggregate may be mands to the cable head end to provide the on-demand activated by a “menu' button on the user's remote control. content to the STB for display. In the case of pay-per-view By pressing one remote control button, a menu may overlay on-demand content, the Selection can automatically pur the currently viewed program. Similarly a remote control chase the content without further interaction with the viewer. button may remove the Service aggregate menu from the If “exit” is selected (step 370), the script is exited and the television Screen. A Service aggregate menu may also be menu is no longer displayed. Selected from a EPG or other similar program guide. 0067 Referring to FIG. 12, a control bar optionally 0075) A number of embodiments of the invention have overlays a Video when the viewer Selects a Video-on-demand been described. Nevertheless, it will be understood that service. The video viewing can be controlled by the viewer various modifications may be made without departing from using the control bar. For example, the viewer can terminate the Spirit and Scope of the invention. For example, a viewer Viewing the Video being displayed and return to the previous demographics may be used to relate a Service aggregate to video service or to the menu from which the video was a currently viewed program or channel. Accordingly, other Selected. In another example, a Service aggregate may be embodiments are within the Scope of the following claims. displayed while presenting the Video. 0068 The scripts are stored in a portal data storage 81 at the head-end 80 and retrieved as they are needed by portal What is claimed is: program 170. A variety of mechanisms are available to 1. A method for providing access to television content deliver data to the program running on a Set-top box. comprising: Two-way communication Systems can be used to retrieve forming one or more groups of television content; menu Scripts as they are needed. On-demand delivery of menu scripts can use DOCSIS cable modems, telephone for each of the groups, providing a graphical interface for modems, and Set-top box manufacturer proprietary two-way navigating between television content of the group, and RF communication systems. For Motorola DCT2000 series when presenting a member of any of the groups to a set-top boxes a two-way UDP/IP based transport can be used viewer, displaying a graphical representation of other by the Set-top box to request and accept delivery of the menu members of the group, and in response to a Selection of scripts. For the Scientific/Atlanta Explorer 3000 set-top one of the other members by the viewer, presenting the boxes a TCP/IP based transport can be used. Selected member. 0069. In alternative versions of the system, the menu 2. The method of claim 1 wherein forming the one or Scripts that are processed by the portal program are “broad more groups of television content includes forming a group cast out-of-band Separately from the program content from that includes a television broadcast. head end 80 to the STBs and stored in the STB until they are 3. The method of claim 1 wherein forming the one or accessed by portal program 170. Various broadcast channels more groups of television content includes forming a group are available in cable Systems, including proprietary RF that includes a video-on-demand program. communication Systems. Once the portal program has 4. The method of claim 1 wherein forming the one or received the menu data, it can cache the data for Subsequent more groups of television content includes forming a group Sc. that includes an advertisement. 0070 Broadcast alternatives also include in-band deliv 5. The method of claim 1 wherein forming the one or ery of menu information along with the program content. more groups of television content includes forming a group For example, in-band MPEG-2 transport stream can be used that includes a Subscription program. to deliver information for the Service aggregate. The trans 6. The method of claim 1 wherein forming the one or port Stream is used to deliver both a digital Video program more groups of television content includes forming a group and its associated menu information. The benefits of the that includes a Subscription-on-demand program. delivery mechanism include an implicit binding of Video 7. The method of claim 1 wherein forming the one or program and menu data, a high-bandwidth push data deliv more groups of television content includes forming a group ery mechanism, faster display of menus, and no upstream that includes another group of television content. communications traffic. Because the menu data is pushed to 8. The method of claim 1 wherein forming the one or the Set-top box, no upstream traffic is necessary to request more groups of television content includes forming a group the delivery of the menu data. With in-band data delivery, according to a busineSS rule. the STB application begins buffering the menu data as Soon 9. The method of claim 1 wherein displaying the graphical as the channel is tuned. representation includes displaying a Selection menu. 0071 In-band data can be added to transport streams at a 10. The method of claim 1 wherein displaying the graphi video subsystem 85 at head end 80, or can be provided by cal representation includes displaying the graphical repre content providers as part of the programming delivered to Sentation while concurrently presenting a first member of the head end 80. grOup. US 2003/0204846 A1 Oct. 30, 2003

11. The method of claim 1 wherein displaying the graphi 21. A method of providing a viewer access to members of cal representation includes displaying the graphical repre a group of associated multimedia content comprising: Sentation without concurrently presenting a first member of the group. forming a data representation of the group of associated 12. The method of claim 1 wherein when presenting the multimedia content available to the viewer; member, the method further includes accepting a request when presenting a first member of the group to the viewer, from the viewer and displaying the graphical representation displaying a graphical representation of one or more of of the members in response to the viewer's request. the members of the group according to the data repre 13. The method of claim 12 wherein the request is Sentation of the group; generated by the viewer pressing a Single button on a remote control. accepting a Selection from the viewer of the one of the 14. The method of claim 1 wherein the graphical inter members of the group; and faces for different ones of the groups have different types of presenting the Selected member of the group to the viewer. graphical representations for members of the group. 22. The method of claim 21 further comprising forming 15. The method of claim 1 wherein the graphical repre the group of associated multimedia content available to the Sentation of the other members of the group varies based on viewer. time. 23. The method of claim 22 wherein the group includes a 16. The method of claim 1 wherein the graphical repre television broadcast program. Sentation varies based on the viewer demographics. 24. The method of claim 22 wherein the group includes a 17. A method for providing access to television content Video-on-demand program. comprising: 25. The method of claim 22 wherein the group includes an forming a group of television content by a first entity, the advertisement. television content being provided by corresponding 26. The method of claim 25 wherein the advertisement is content providers, each content provider having a com based on viewer characteristics. mercial relationship with the first entity; and 27. The method of claim 25 wherein the advertisement is providing a graphical interface to a viewer, including based on viewer demographics. presenting a graphical representation of the group of 28. The method of claim 22 wherein the group includes an television content, and accepting a Selection of one of internet Site. the group from the viewer. 29. The method of claim 22 wherein the group includes 18. The method of claim 17 wherein the first entity multi-user interactive content. comprises a television System operator. 30. The method of claim 22 further comprising receiving 19. The method of claim 17 wherein the first entity a Script that when executed causes the displaying of the comprises a third party. graphical representation. 20. The method of claim 17 wherein the first entity comprises a content provider. k k k k k