text: fig1 through 4 , discussed below , and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention . those skilled in the art will understand that the principles of the present invention may be implemented in any suitably arranged set - top box ( stb ) and broadcast facility . fig1 illustrates exemplary television broadcast system 10 according to one embodiment of the present invention . television broadcast system 10 comprises local broadcast facility 11 , which receives one or more digital video transport streams from each of network video sources 21 – 23 . local broadcast facility 10 may receive these digital video transport streams from wireline communication links or from wireless communication links . for example , local broadcast facility 10 receives one or more digital video transport streams from network video source 21 via wireline communication link 31 and receives one or more digital video transport streams from network video source 22 via wireline communication link 32 . local broadcast facility 11 also comprises base transceiver stations 34 and 35 , which wirelessly transmit one or more digital video transport streams from network video source 23 to local broadcast facility 11 . in an exemplary embodiment , network video source 23 may transmit the digital video transport streams via communication line 33 to base transceiver station 34 , which is part of a local multipoint distribution system ( lmds ) network . in an lmds network , a microwave link is used to transmit the digital video transport stream from base transceiver station 34 to base transceiver station 35 . local broadcast facility 11 transmits the digital video transport streams to subscriber locations 41 - 43 , which may include both private residences and business locations . if local broadcast facility 11 is part of a cable television system , local broadcast facility 11 may transmit one or more outbound digital video transport streams to subscriber locations 41 and 42 via communication wireline 51 . communication wireline 52 carries one or more outbound digital video transport streams from local broadcast facility 11 to transmitter 43 , which wirelessly transmits the outbound digital video transport streams to subscriber location 43 . each of the digital video transport streams received by and transmitted by local broadcast facility are carried in a 6 mhz broadcast channel . a transport stream usually contains several virtual channels , with each virtual channel containing a program . the program carried in a virtual channel is what a viewer sees on a signal television channel , such as a movie , a newscast , and a weather channel . normally , each virtual channel is allocated a fixed bandwidth , such as 3 megabits per second ( mbps ). local broadcast facility 11 also comprises interactive digital television ( idtv ) control system 70 , which communicates bidirectionally with associated monitoring circuitry in set - top boxes in subscriber locations in order to , for example , display customized commercials during a television program . according to an advantageous embodiment of the present invention , idtv control system 70 may insert audio - video data packets for several commercials into the audio - video data packets of a single television program . in the subscriber location , the monitoring circuitry uses viewer profile information resident in the subscriber terminal device ( i . e ., set - top box , television set ) to select only one of the commercials for play during a commercial break in the television program . thus , idtv control system 70 can cause customized commercials to be displayed on the subscriber television based on demographic information stored in the viewer profile . in the descriptions of the present invention that follow , the associated subscriber monitoring circuitry that communicates bidirectionally with idtv control system 70 is implemented in a set - top box that functions as a disk - based video recorder . those skilled in the art will understand that this is by way of example only and should not be construed so as to limit the scope of the present invention . in alternate embodiments of the present invention , the subscriber monitoring circuitry may be implemented in a television set , in a conventional video cassette recorder ( vcr ), in a cable tv converter box , or in a satellite dish control box . fig2 illustrates exemplary set - top box ( stb ) 150 and television set 105 according to one embodiment of the present invention . set - top box 150 receives incoming television signals from local broadcast facility 11 , which may be a cable television service provider ( cable co .) or an internet service provider ( isp ) and transmits a viewer - selected channel to television set 105 . in record mode , set - top box 150 may demodulate an incoming radio frequency ( rf ) television signal to produce a baseband video signal that is recorded and stored on a storage medium within or connected to set - top box 150 . in play mode , set - top box 150 reads a stored baseband video signal ( i . e ., program ) selected by the user from the storage medium and transmits it to television set 105 . for example , if set - top box 150 is a disk drive - based device , such as a replaytv ™ recorder or a tivo ™ recorder , set - top box 150 stores and retrieves the incoming television signals to and from a computer magnetic hard disk ( rather than a magnetic cassette tape ). in still other embodiments , set - top box 150 may store and retrieve from a local read / write ( r / w ) digital versatile disk ( dvd ) or r / w cd - rom . thus , the local storage medium may be fixed ( i . e ., hard disk drive ) or removable ( i . e ., dvd , cd - rom ). set - top box 150 comprises infrared ( ir ) sensor 160 that receives commands ( such as channel up , channel down , volume up , volume down , record , play , fast forward ( ff ), reverse , and the like ) from a remote control device operated by the viewer . television set 105 is a conventional television comprising screen 110 , infrared ( ir ) sensor 115 , and one or more manual controls 120 ( indicated by a dotted line ). ir sensor 115 also receives commands ( such as volume up , volume down , power on / off ) from a remote control device operated by the viewer . it should be noted that set - top box 150 is not limited to receiving a particular type of incoming television signal from a particular type of source . as noted above , the external source may be a cable service provider , a conventional rf broadcast antenna , a satellite dish , or an internet connection . thus , the incoming signal may be a digital signal , an analog signal , or internet protocol ( ip ) packets . however , for the purposes of simplicity and clarity in explaining the principles of the present invention , the descriptions that follow shall generally be directed to an embodiment in which set - top box 150 receives incoming television signals ( analog and / or digital ) from a cable service provider . nonetheless , those skilled in the art will understand that the principles of the present invention may readily be adapted for use with wireless broadcast television signals , an incoming stream of ip packets containing mpeg data , and the like . fig3 illustrates exemplary set - top box 150 in greater detail according to one embodiment of the present invention . set - top box 150 comprises jr sensor 160 , video processor 210 , mpeg 2 encoder 220 , hard disk drive 230 , mpeg 2 decoder / atsc encoder 240 , controller 250 , video buffer 260 , interactive digital television ( idtv ) client controller 270 and memory 280 . in an advantageous embodiment of the present invention , idtv client controller 270 comprises a data processor and an associated memory that stores graphical user interface ( gui ) program 271 . memory 280 stores request file 281 and viewer profile 282 . controller 250 directs the overall operation of set - top box 150 , including view mode , record mode , play mode , fast forward ( ff ) mode , and reverse mode , among others . in view mode , controller 250 causes the incoming television signal from the cable service provider to be demodulated and processed by video processor 210 and transmitted to television set 105 , without storing or retrieving from hard disk drive 230 . video processor 210 , which may be , for example , a trimedia ( tm ) 1100 media processor , contains radio frequency ( rf ) front - end circuitry for receiving incoming television signals from the cable service provider , tuning to a user - selected channel , and converting the selected rf signal to a baseband television signal ( e . g ., super video signal ) suitable for display on television set 105 . video processor 210 also is capable of receiving a conventional atsc signal from mpeg 2 decoder / atsc encoder 240 ( after buffering in video buffer 260 ) during play mode and transmitting baseband television signal ( e . g ., super video signal ) to television set 105 . in record mode , controller 250 causes the incoming television signal to be stored on hard disk drive 230 . under the control of controller 250 , mpeg 2 encoder 220 receives the incoming television signal from the cable service provider and converts the received rf signal to mpeg - 2 format for storage on hard disk drive 230 . alternatively , if set - top box 150 is coupled to a source that is transmitting mpeg - 2 data , the incoming mpeg - 2 data may bypass mpeg 2 encoder 220 and be stored directly on hard disk drive 230 . in play mode , controller 250 directs hard disk drive 230 to stream the stored television signal ( i . e ., program ) to mpeg 2 decoder / atsc encoder 240 , which converts the mpeg 2 data from hard disk drive 230 to , for example , a super video ( s - video ) signal that is buffered in video buffer 260 before video processor 210 transmits it to television set 105 . it should be noted that the choice of the mpeg 2 standard for mpeg 2 encoder 220 and mpeg 2 decoder / atsc encoder 240 is by way of illustration only . in alternate embodiments of the present invention , the mpeg encoder and decoder may comply with one or more of the mpeg - 1 , mpeg - 2 , mpeg - 4 , and mpeg - 7 standards . for the purposes of this application and the claims that follow , hard disk drive 230 is defined to include any mass storage device that is both readable and writable , including conventional magnetic disk drives and optical disk drives for read / write digital versatile disks ( dvd - rw ), re - writable cd - roms , vcr tapes and the like . in fact , hard disk drive 230 need not be fixed in the conventional sense that is permanently embedded in set - top box 150 . rather , hard disk drive 230 includes any mass storage device that is dedicated to set - top box 150 for the purpose of storing recorded video programs . thus , hard disk drive 230 may include an attached peripheral drive or removable disk drives ( whether embedded or attached ), such as a juke box device that holds read / write dvds or re - writable cd - roms . furthermore , in an advantageous embodiment of the present invention , hard disk drive 230 may include external mass storage devices that set - top box 150 may access and control via a network connection ( e . g ., internet protocol ( ip ) connection ) including , for example , a disk drive in the user &# 39 ; s home personal computer ( pc ) or a disk drive on a server at the user &# 39 ; s internet service provider ( isp ). the present invention allows the personal data in viewer profile 282 to be built up over time without an explicit a priori standard . idtv control system 70 , in addition to transmitting audio - video data packets for a television program and audio - video data packets for numerous commercials to video processor 210 , also is capable of transmitting one or more java applications and database file ( s ) in the data packets that are interspersed with the audio - video data packets . the java application and the database files ( s ) are separated ( demultiplexed ) from the audio - video data packets by video processor 210 and are transferred to idtv client controller 270 . idtv client controller 270 can then execute the java application ( s ) in order to carry out some function requested by the content creator . according to an advantageous embodiment of the present invention , idtv client controller 270 may use conventional application program interfaces ( apis ) that provide data field flexibility . thus , the nature of viewer profile 282 data would grow over time according to the responses and actions of the viewer . the content creator would use a standard api to create an application in the audio - video data packets that could be used to get information from viewer profile 282 via idtv client controller 270 in order to better determine content to be displayed . by way of example , the application executed by idtv client controller 270 may analyze demographic information retrieved from viewer profile 282 and , in response , transmit control signals to video processor 210 causing it to display a selected one of several commercials received by video processor 210 . thus , the data in viewer profile 282 may be used to customize the commercials seen on television set 105 . the data in viewer profile 282 is initially set up by the viewer , who uses a remote control to interact with gui program 271 . gui program 271 causes video processor 210 to display overlay window 190 on screen 110 of television set 105 . window 190 may be a drop - down or pop - up window . the viewer enters data or selects options in window 190 in order to enter viewer data , such as age , gender , credit card number , address ( including zip code ). in an alternate embodiment in which an advanced two - way remote control is used , window 190 may be displayed on a screen on the two - way remote control . however , the application received by idtv client controller 270 may request information for data fields that do not exist . consider an example in which the audio - video stream display an advertisement for a ring . during the display , the corresponding java application looks into viewer profile 282 to see if there exists data fields called “ ring size ,” “ home address ,” and “ method of payment .” in the example , the viewer had previously entered his home address and his method of payment ( i . e ., credit card ) in viewer profile 282 . however , ring size has not been entered into viewer profile 282 by the viewer . the viewer has further set up viewer profile 282 to defer filling in requested data elements . all the viewer sees is the audio - video portion of the ring commercial . the java application executed by idtv client controller 270 starts and stops without interaction . at some later time , the viewer may enter the set - up mode via gui program 271 and ask idtv client controller 270 display in window 190 all requested data fields ( or elements ) that were not satisfied by idtv client controller 270 . if the viewer decides that he or she wants to receive offers for rings , the viewer may enter a value for “ ring size ”. the next time the ring commercial is transmitted to video processor 210 , idtv client controller 270 displays the full interactive dialog , wherein the content creator can offer the viewer the ring in the right size delivered to his address for a set price . if the viewer approves the transaction , the viewer may use the remote control to key in his credit card pin number . thereafter , idtv client controller 270 transmits the data for the complete transaction back to idtv control system 70 . this scenario could be expanded to any type of requested data . to control the amount of data requests displayed to the viewer , idtv client controller 270 may track the number of times particular data requests are made and store this information in memory 280 for example , requests for the data field “ ring size ” may be stored in the memory location req 1 in memory 280 , requests for the data field “ car type ” may be stored in the memory location req 2 , and so forth . the number of times “ ring size ” was requested is maintained in count 1 memory location , the number of times “ car type ” was requested is maintained in count 2 memory location , and so forth . until a particular data field ( element ) is requested more than a threshold number of times , idtv client controller 270 does not proceed with any interaction . likewise , viewer profile 282 and idtv client controller 270 could be configured so that full editing of the data fields is permitted and the level of protection assigned to each one . for instance , data elements could be tagged with “ provide to local application ,” “ provide to authorized application vendor ,” “ never provide ,” “ provide only with viewer confirmation ,” and the like . as noted above , idtv client controller 270 may use data elements in viewer profile 282 to determine a best - suited commercial that meets the viewer &# 39 ; s interest . the viewer may specify a car type and / or brand that they might consider or provide basic demographics to better tune commercials to their interests . these data elements ( such as “ number of children ,” “ number of cars ,” “ number of wage earners ,” “ annual salary ,” etc .) could be tagged to be used only within the terminal device for the purposes of local application information . alternatively , they could be provided on a limited and selected basis to certain vendors — all under the devices control . by using the above - described method , the data structures in viewer profile 282 may be incrementally augmented under viewer control . content creators could obtain feedback about popular data fields by noting those that are part of real purchases performed by idtv client controller 270 ( assuming a return channel for full purchase order information . fig4 depicts flow diagram 400 , which illustrates the operation of exemplary set - top box 150 according to an advantageous embodiment of the present invention . during set - up mode , the viewer initializes viewer profile 282 via gui program 271 ( process step 405 ). during normal television viewing idtv client controller 271 receives applications from a content creator containing requests for data fields in viewer profile 282 ( process step 405 ). requests are made via an agreed application program interface ( api ) to idtv client controller 270 . idtv client controller 271 compares the received data request with data in viewer profile 282 and , if found , responds with the requested data ( process step 405 ). if a requested data field is not found in viewer profile 282 , 1 dtv client controller 270 begins counting the number of instances of the missed requested data field ( process step 405 ). in response to a viewer prompt , idtv client controller 270 displays all missed requested data fields for which the missed count exceeds a pre - defined threshold ( process step 405 ). the viewer may later add selected requested data fields to viewer profile 282 ( process step 405 ). although the present invention has been described in detail , those skilled in the art should understand that they can make various changes , substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form .