CROSS-REFERENCE TO RELATED PATENT APPLICATIONS This application claims the right of priority under 35 U.S.C. § 119 based on Australian Patent Application No. 2004906288, filed 1 Nov. 2004 and Australian Patent Application No. 2004906289, filed 1 Nov. 2004, which are incorporated by reference herein in their entirety as if fully set forth herein.
FIELD OF THE INVENTION The present invention relates generally to the fields of multi-media, information technology and computing and, in particular, to a method and apparatus for displaying data associated with a program. The present invention also relates to a computer program product including a computer readable medium having recorded thereon a computer program for displaying data associated with a program.
BACKGROUND In recent times, particularly in the areas of multi-media, information technology and computing, people are being exposed to huge amounts of data every day. It is important that a particular person or user of such data is able to navigate through available data items efficiently, in order to determine a subset of data items that is more relevant to the particular user.
Conventionally, there have been two main methods of determining a subset of relevant data items from the available data items. These two main conventional methods may be broadly referred to as “searching” and “browsing”. Conventional searching methods require a considerable amount of data, such as keywords, search categories and other search conditions, to be input by a user in order to be effective. These conventional searching methods are inappropriate for certain types of user interfaces, such as television screens and remote controls, where detailed data input is often difficult and inefficient.
For user interfaces such as television screens and remote controls, conventional browsing methods can be more appropriate. In such browsing methods, data items of a collection of data items may be organised into some form of data structure, such as a hierarchy of categories. A user may be provided with mechanisms for browsing through the data structure.
However, conventional browsing methods have a number of disadvantages. For example, conventional browsing methods typically only work well when the number of data items in the collection of data items being browsed is less than a certain size beyond which browsing efficiency starts to decline. Further, conventional browsing methods, which organise data items into a fixed data structure, do not take into account differences in individual preferences between different users, and hence the organisation might not be optimal for the individual users.
Some conventional searching and browsing methods consider user preferences when retrieving a subset of data items from available data items. In such conventional methods, user preferences may be collected either explicitly (e.g., by asking the user directly) or implicitly (e.g., by interpreting user behaviour) or both. The collected user preferences may then be compiled into user profiles. User profiles may be used to determine what data items a particular user prefers. A user profile for a television system, for example, comprises viewing data about a television user, including watched television programs, unwatched television programs, user ratings for rated television programs and other data collected from the user.
Recommendation systems can use user profiles to generate a short list of data items that may be suggested to users. For example, a recommendation system for a television system may be used to rate television programs based on a given user profile. The recommendation system may then produce a list of television programs, sorted in order of likelihood that the user would be interested in the television program. As an example, FIG.9 shows arecommendation list905 comprisingtelevision program rankings900 and a list oftelevision programs901 for recommending to a user.
One major disadvantage of generating recommendations based simply on user profiles is that the intention of a particular user may change from occasion to occasion. A particular type of preferred data item selected by the particular user on one occasion may not necessarily be a preferred type of data item on a different occasion. For example, consider an online shopping catalogue that sells books. On one occasion the user may prefer children's books as gift for a child. On another occasion the same user may prefer documentary books as reference material for their work.
Some conventional searching and browsing methods use current context (e.g. a currently selected data item), to generate options that are related to the current context. However, these current context methods are also insufficient for large collections of data items, where the number of data items in a subset of available data items might be large. This problem may be addressed to some extent by sorting the data items in the subset into recommendation order based on user preferences.
However, again, there are disadvantages to these conventional current context and sorting methods. For example, presenting all related data items as options to the user is inappropriate for certain types of interfaces, such as television screens and remote controls, where navigating through a long list of options is inefficient.
Thus, a need clearly exists for a more efficient method of displaying data associated with a data item, which is suitable for use with interfaces such as televisions and hand held remote controls.
SUMMARY It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to a first aspect of the present disclosure, there is provided an assistance method for selecting a program, said method comprising the steps of:
selecting one or more attributes associated with a first program, the one or more attributes being selected dynamically by a processor according to one or more predetermined criteria;
searching for a second program associated with one or more of the selected attributes; and
displaying the second program and the one or more attributes associated therewith, on a display device, according to the search for the second program.
According to another aspect of the present disclosure, there is provided an assistance method for selecting a program, said method comprising the steps of:
determining a first search condition according to a predetermined logical process based on a first selected program, the predetermined logical process being executed by a processor associated with the display device;
searching for a second program based on the first search condition; and
displaying the second program and data associated therewith, on the display device, according to the search for the second program.
According to still another aspect of the present disclosure, there is provided an apparatus comprising:
selection means for selecting one or more attributes associated with a first program, the one or more attributes being selected dynamically by a processor according to one or more predetermined criteria;
search means for searching for a second program associated with one or more of the selected attributes; and
display means for displaying the second program and the one or more attributes associated therewith, on a display device associated with said processor, according to the search for the second program.
According to still another aspect of the present disclosure, there is provided a computer program for making a computer execute an assistance method for selecting a program, said method comprising the steps of:
selecting one or more attributes associated with a first program, the one or more attributes being selected dynamically according to one or more predetermined criteria;
searching for a second program associated with one or more of the selected attributes; and
displaying the second program and the one or more attributes associated therewith, according to the search for the second program.
According to still another aspect of the present disclosure, there is provided a computer readable storage medium having a computer program recorded thereon, said computer program being configured for making a computer execute an assistance method for selecting a program, said method comprising the steps of:
selecting one or more attributes associated with a first program, the one or more attributes being selected dynamically according to one or more predetermined criteria;
searching for a second program associated with one or more of the selected attributes; and
displaying the second program and the one or more attributes associated therewith, according to the search for the second program.
Other aspects of the invention are also disclosed.
BRIEF DESCRIPTION OF THE DRAWINGS Some aspects of the prior art and one or more embodiments of the present invention will now be described with reference to the drawings and appendices, in which:
FIG. 1 shows the hardware architecture of a television system;
FIG. 2 shows the user interface ofFIG. 1;
FIG. 3 shows the user interface ofFIG. 2 comprising an additional satellite region containing an additional television program name;
FIG. 4A shows the remote control unit ofFIG. 1 comprising directional buttons;
FIG. 4B shows the user interface ofFIG. 3 and the relationship between the satellite regions of the user interface and the directional buttons of the remote control unit;
FIG. 5A again shows the remote control unit ofFIG. 1;
FIG. 5B shows another user interface and the relationship between the satellite regions of this user interface and the remote control unit ofFIG. 5A;
FIG. 5C shows still another user interface and the relationship between linearly arranged satellite regions of this user interface and the remote control unit ofFIG. 5A;
FIG. 6 is a flow diagram showing a method of selecting a television program using the remote control unit ofFIG. 4A and the user interface ofFIG. 4B;
FIG. 7 shows the user interface ofFIG. 2, following update of the pivot program and the satellite regions;
FIG. 8 shows a distance matrix for use in determining the distance between any two data items stored in the memory of the set-top-box ofFIG. 1;
FIG. 9 shows a recommendation list comprising television program rankings and a list of television programs for recommending to a user;
FIG. 10 is a diagram showing logical components of software for implementing methods described herein;
FIG. 11 is a flow diagram showing a method of selecting a television program using the remote control unit ofFIG. 4A and the user interface ofFIG. 4B;
FIG. 12 is a flow diagram showing a method of displaying data attributes associated with a selected television program, using the user interface ofFIG. 2;
FIG. 13 is a schematic block diagram showing the internal configuration of the set-top-box ofFIG. 1; and
FIG. 14 is a flow diagram showing a method of selecting one or more data attributes associated with a current pivot program for use as candidate attributes, as executed during the method ofFIG. 11.
DETAILED DESCRIPTION INCLUDING BEST MODE Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
It is to be noted that the discussions contained in the “Background” section and that above relating to prior art arrangements relate to discussions of documents or devices which form public knowledge through their respective publication and/or use. Such should not be interpreted as a representation by the present inventor(s) or patent applicant that such documents or devices in any way form part of the common general knowledge in the art.
The principles of the methods described herein have general applicability to any environment comprising a collection of data items and a user interface for searching on and retrieving data related to selected ones of the data items. However, for ease of explanation, the steps of the methods are described with reference to selection of televisions programs for viewing on a television set and the displaying of data attributes associated with the television programs. It is not intended that the present invention be limited to the described methods. For example, the described methods may have application to an online shopping catalogue a digital photo album or the like.
FIG. 1 shows the hardware architecture of atelevision system100 upon which the methods described may be practiced. Thesystem100 comprises a set top-box101 coupled to a display device in the form of a television set112 (e.g., a digital television set). Thesystem100 also comprises a controller in the form ofremote control unit105, which may be configured for selecting a data item corresponding to a television program for display on thetelevision set112. As seen inFIG. 1, theremote control unit105 comprisesdirectional navigation buttons106 andspecial function buttons107,108 and111. Thebuttons106,107,108 and111 of theremote control unit104 may take any form. For example, one or more of thebuttons106,107,108 and111 may be in the form of a defined area printed or formed on a surface of theremote control unit105 and which is selectable by a user in a similar manner to thebuttons106,107,108 and111 shown inFIG. 1. Theremote control unit105 may also take the form of a smart card ( not shown) and smart card reader (not shown), where the smart card has a number of user selectable indicia (or areas) formed on a surface thereof. In this instance, the user selectable indicia may be arranged on the surface of the smartcard in a similar manner to thebuttons106,107,108 and111 of theremote control unit105.
The set-top-box101 may be used to interpretsignals109 received from theremote control unit105 according to a press or selection of one or more of thebuttons106,107,108 and111 of theremote control unit105, permitting control events to occur within thesystem100. These control events may result in changes to the state of thesystem100 and/or appropriate reproduction on thetelevision set112, as will be described below.
In thesystem100, theremote control unit105 may use a radio frequency or infra-red (IR) transceiver (not shown) to transmit thesignals109 to the set-top-box101. Alternatively, theremote control unit101 may be hard wired to the set-top-box101, via a communications cable (not shown). Similarly, the set-top-box101 is shown inFIG. 1 coupled to thetelevision screen112, via acommunications cable104. Alternatively, instead of being hardwired, a further radio frequency or IR transceiver1308 (seeFIG. 13) may be used for communication between the set-top-box101 and thetelevision set112.
FIG. 13 shows the settop box101 of thesystem100 in more detail. The settop box101 in some implementations is essentially a scaled version of a conventional computer system. Such computer systems may include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
The settop box101 typically comprises at least one Central Processing Unit (CPU)1305, amemory unit1306, for example, formed from semiconductor random access memory (RAM) and read only memory (ROM). TheCPU1305 may also be referred to as a ‘processor’. The settop box101 also comprises input/output (I/O) interfaces including at least an I/O interface1313 for transmitting data to and from thetelevision set112. The I/O interface1313 may also be used to transmits data to and from another device such as a portable floppy disk drive, CD-ROM drive or even to and from a communications network (e.g., the Internet). The input/output (I/O) interfaces of the settop box101 typically also includes an I/O interface1315 for theIR transceiver1308. TheIR transceiver1308 may be configured for receiving and transmitting thesignals109. Thecomponents1305,1306,1308,1313 and1315 of the settop box101 typically communicate via aninterconnected bus1304 and in a manner which results in a conventional mode of operation. Intermediate storage of any data received from theremote control unit105 may be accomplished using thesemiconductor memory1306. Alternatively, thecomponents1305,1306,1308,1313 and1315 of the settop box101 may be configured within thetelevision set112.
Software programs implementing the methods described herein may be resident inmemory1306 and be read and controlled in their execution by theCPU1305 of the settop box101. Intermediate storage of the software programs may be accomplished using thesemiconductor memory1306, possibly in concert with theCPU1305. In some instances, the software programs may be supplied encoded on a CD-ROM or floppy disk and downloaded tomemory1306 via the I/O interface1313. Still further, the software programs may also be loaded intomemory1306 from other computer readable storage mediums including magnetic tape, ROM or integrated circuits, a magneto-optical disk, a radio or infra-red transmission channel between the set-top-box101 and another device, a computer readable card such as a smart card, a computer PCMCIA card, the TV broadcast, and the Internet and Intranets including via email transmissions of information recorded on Websites and the like. The foregoing is merely exemplary of relevant computer readable media. Other computer readable storage media are able to be practised without departing from the scope of the invention defined by the appended claims.
The methods described herein may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the described methods. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
In thesystem100, thememory unit1306 contains a plurality of data items stored therein. Each of the data items corresponds to a television program that is currently being broadcast or which may be broadcast at some future time. Each data item may comprise a metadata set describing the name of a corresponding television program, broadcast details such as channel and time of broadcast of the corresponding television program, and/or data values corresponding to various data attributes (e.g., genre, cast, director, awards, producer, series, studio etc) associated with the corresponding television program.
Thetelevision set112 is shown inFIG. 1 displaying auser interface110. Theuser interface110 is rendered by theCPU1305 in accordance with the methods described herein and transmitted to thetelevision set112 via thecommunications cable104. Theuser interface110 may be overlaid on top of any live video stream being displayed on thetelevision set112. Thesignals109 transmitted by theremote control unit105 are received by theCPU1305, which may cause changes to theuser interface110 as described in more detail below, depending upon which of thebuttons105,106,107 and111 are selected.
FIG. 2 shows theuser interface110 in more detail. Theuser interface110 comprises acentral region200 surrounded by a plurality ofsatellite regions202,205,208 and211 in a predetermined spatial arrangement. Thecentral region200 contains atelevision program name201 corresponding to a particular television program stored inmemory1306. The television program corresponding to thetelevision program name201 shown in thecentral region200 may be referred to as the ‘pivot program’.
Each of thesatellite regions202,205,208 and211 also contain atelevision program name203,206,209 and212, respectively, in addition to anattribute name204,207,210 and213. Thetelevision program names203,206,209 and212 represent television programs, which are associated with thepivot program201 through sharing a similar value of one or more data attributes (e.g., genre, cast, director, awards, producer, series, studio etc). The data attributes through which the television programs represented by thetelevision program names203,206,209 and212 are associated with thepivot program201 may be shown as theattribute names204,207,210 and213, respectively, in each of thesatellite regions202,205,208 and211. Therefore, theattribute names204,207,210 and213 shown in eachsatellite region202,205,208 and211 indicate to a user of thesystem100 the association between the television program represented in each of thesatellite regions202,205,208 and211, respectively, and thepivot program201.
FIG. 12 is a flow diagram showing amethod1200 of displaying data attributes associated with a selected data item corresponding to a television program (e.g., Program B), using theuser interface110. Themethod1200 may be implemented as software resident inmemory1306 and being controlled in its execution by theCPU1305.
Themethod1200 begins at thefirst step1202, where theCPU1305 detects the selection of one of thesatellite regions202,205,208 and211 of theuser interface110, representing a first data item corresponding to a television program (e.g., Program B). Thesatellite regions202,205,208 and211 may be selected using thebuttons105,106,107,108 and111 of theremote control unit105. In response to one of thesatellite regions202,205,208 and211 being selected using theremote control unit105, at thenext step1203, theCPU1305 updates thepivot program201 displayed in thecentral region200 with the television program name (e.g.,203) corresponding to the first data item in the selected satellite region, as will be described in more detail below. Also atstep1203, theCPU1305 updates each of thesatellite regions202,205,208 and211 to display corresponding second data items based on a search of thememory unit1306. Each of the second data items represents a new television program which is associated with the updatedpivot program201. The attribute names204,207,210 and213 of each of thesatellite regions202,205,208 and211 are also updated when thepivot program201 is updated atstep1203. The updatedattribute names204,207,210 and213 are indicative of the association between the new television program (i.e., second data item) represented by an associated television program name (e.g.,203) in each of thesatellite regions202,205,208 and211 and the updatedpivot program201. Themethod1200 concludes followingstep1203.
Themethod1200 may be used to display data attributes associated with the television programs contained in thememory unit1306 until such time as a suitable television program is found for viewing, recording or other action.
The steps of themethod1200 may be repeated in response to one of thesatellite regions202,205,208 and211 again being selected using theremote control unit105. In this instance, theCPU1305 again updates thepivot program201 displayed in thecentral region200 with the television program name (e.g.,203) corresponding to the second data item in the selected satellite region, as will be described in more detail below. TheCPU1305 also updates each of thesatellite regions202,205,208 and211 to display corresponding third data items based on a search of thememory unit1306. Each of the third data items represents a new television program which is associated with the updatedpivot program201.
As seen inFIG. 2, avisual highlight indicator214 of thesatellite region202 may be used to represent that thetelevision program name203 shown in thesatellite region202 has been selected and is pending an action being applied to the television program represented by thetelevision program name203. The pending action may be that theprogram name203 is to be used to update the pivot program201 (i.e., theprogram name203 becomes the new pivot program201). A bold typeface may be used to distinguish the selectedtelevision program name203 from thenon-selected program names206,209 and212.
FIG. 3 shows theuser interface110 ofFIG. 2 comprising anadditional region301 containing an additionaltelevision program name302. Theadditional region301 enables the selection of anew pivot program201 other than through the sharing with another television program (i.e., represented by another television program name) of one or more similar data attributes. As an example, the additionaltelevision program name302 of theadditional region301 may represent a least related television program to thepivot program201, enabling a user of thesystem100 to make a ‘wildcard’ selection. The additionaltelevision program name302 of theuser interface110 ofFIG. 3 allows a quick search for a television program that is dissimilar to a current pivot program201 (i.e., the television program name currently being displayed in the central region200). Theadditional region301 may be used in the case that the selection of thesatellite regions202,205,208 and211 and the display of the television programs related to the selectedsatellite regions202,205,208 and211, as described above, is not leading the user in a direction of interest.
In another example, thetelevision program name302 of theadditional region301 may be a most highly recommended television program that is dissimilar to thepivot program201. Alternatively, thetelevision program name302 of theadditional region301 may be a randomly selected television program that is dissimilar to thepivot program201.
FIGS. 4A and 4B show theremote control unit105 together with theuser interface110 ofFIG. 3. As seen inFIG. 4A, theremote control unit105 hasspecial function buttons111 of which onebutton406 is configured for launching theuser interface110 ofFIG. 4B. Anicon407, as seen inFIG. 4A, indicates the function of thebutton406.
Thedirectional buttons106 comprise an ‘up’directional button401, a ‘right’directional button402, a ‘down’directional button403, a ‘left’directional button404 and acentral button405. The spatial arrangement of thesatellite regions202,205,208 and211 of theuser interface110 ofFIG. 4B corresponds to the spatial arrangement of thedirectional buttons401,402,403 and404, respectively. Similarly thecentral region200 of theuser interface110 corresponds to thecentral button405 of theremote control unit105. The arrangement of theremote control unit105 and theuser interface110 allows the user to easily understand the mapping between thedirectional buttons401,402,403 and404 of theremote control unit105 and thecorresponding satellite regions202,205,208 and211 of theuser interface110.
FIGS. 5A and 5B show theremote control unit105 together with anotheruser interface510. Theuser interface510 includes acentral region511 andsatellite regions512,513,514 and515. As seen inFIG. 5B, theregions511,512,513,514 and515 do not directly map to the spatial arrangement of thedirectional buttons401,402,403 and406 of theremote control unit105. For theuser interface510, visual indicators (e.g.,516) within each of theregions512,513,514 and515 may be used to visually link theregions512,513,514 and515 with thedirectional buttons401,402,403 and404 on theremote control unit105. The arrangement of theuser interface510 reduces the amount of vertical space required to display theuser interface510 on thetelevision set112, for example.
FIG. 5C shows still anotheruser interface520. Theuser interface520 includesregions521,522,523,524 and525. Theregions522,523,524 and525 are arranged in a linear sequence rather than as satellites of theregion521 which contains the pivot program (e.g., the pivot program201). As seen inFIG. 5B, theregions522,523,524 and525 map to the spatial arrangement of the special function buttons108 (i.e.,function buttons501,502,503 and504) of theremote control unit105. For theuser interface520, theregions522,523,524 and525 may be selected using thefunction buttons501,502,503 and504, respectively, without using thedirectional buttons401,402,403 and404 of theremote control unit105.
FIG. 6 is a flow diagram showing amethod600 of selecting a television program using theremote control unit105 ofFIG. 4A and theuser interface110 ofFIG. 4B. Themethod600 may be implemented as software resident inmemory1306 of the set-top-box101 and being controlled in its execution by theCPU1305. A period of execution of themethod600 between the beginning ofstep602 and completion ofstep607, as described below, will be referred to as a “browsing session”.
Themethod600 begins at thefirst step602, where in response to the detection of a signal received from theremote control unit105, theCPU1305 renders theuser interface110 and transmits the rendereduser interface110 to thetelevision set112 where theuser interface110 is displayed. The signal may be transmitted by theremote control unit105 atstep602 in response to a user selecting thefunction button406, for example. In rendering theuser interface110 atstep602, theCPU1305 renders the name of a television program in thecentral region200. The television program rendered in thecentral region200 may be the television program that the user is currently watching. This television program is theinitial pivot program201. Theuser interface110 may be overlaid on top of live video of the television program currently being watched on thetelevision set112.
Alternatively, theinitial pivot program201 may be a television program that the user selected from an electronic program guide, for example. Atstep602, theCPU1305 also renders the name of a television program in each of thesatellite regions202,205,208 and211 in addition to anattribute name204,207,210 and213, respectively. Each of the television program names (e.g.,203) in each of thesatellite regions202,205,208 and211 of theuser interface110 represent television programs related to theinitial pivot program201 through the sharing of a similar value of one or more data attributes, such as genre, cast, director, awards, producer, series, cast and studio, for example. One of these or other data attributes is shown as theattribute name204,207,210 and213 in each of thesatellite regions202,205,208 and211. The television program names and data attributes rendered in each of thesatellite regions202,205,208 and211 atstep602 may be selected by theCPU1305 from thememory1306 of the set-top-box101.
At thenext step603, in response to the detection of another signal received from theremote control unit105, and representing the selection of one of the satellite regions (e.g.,202), theCPU1305 updates thepivot program201. TheCPU1305 updates thepivot program201 atstep603 by replacing theinitial pivot program201 with the name of the television program (e.g., Program B) that was represented by the selected satellite region such that the television program of the selected satellite region becomes thecurrent pivot program201. Alternatively, the satellite region selected atstep603 may be highlighted by theCPU1305 using thevisual highlight indicator214 described above in response to the detection of the signal from theremote control unit105. In this instance, theCPU1305 may update theinitial pivot program201 upon reception of another signal from theremote control105. This other signal may be transmitted by theremote control unit105 in response to the selection of thecentral button405, for example.
In one example, a particular one of thetelevision program names203,206,209 and212 of theuser interface110 may be used to update theinitial pivot program201, atstep603.
Other actions may also be performed atstep603 upon selection of the satellite region such as scheduling the recording of the television program represented by the selected satellite region (e.g.,202). These other actions may be executed upon selection of one or more of thefunction buttons107,108 and111 of theremote control unit105, for example.
Themethod600 continues at thenext step604, where theCPU1305 updates thetelevision program names203,206,209 and212 and attributenames204,207,210 and213, in each of thesatellite regions202,205,208 and211, respectively, to represent television programs related to thecurrent pivot program201. Again, the television program names and data attributes rendered in each of thesatellite regions202,205,208 and211 atstep604 may be selected by theCPU1305 from thememory1306 of the set-top-box101. In one example, a particular television program name may be selected and used to update thetelevision program names203,206,209 and212 of thesatellite regions202,205,208 and211, atstep604, only if the particular television program name has not been thepivot program201 in the same browsing session. Alternatively, one or more of the television program names selected atstep604 may have been thepivot program201 in the current browsing session. In still another example, a particular television program name may be selected and used to update thetelevision program names203,206,209 and212 of thesatellite regions202,205,208 and211, atstep604, only if the particular television program was not the pivot program immediately prior to thecurrent pivot program201 in the same browsing session.
As an example,FIG. 7 shows theuser interface110 ofFIG. 2, following update of thepivot program201 in thecentral region200, and following update of each of thesatellite regions202,205,210 and213. For theuser interface110 ofFIG. 2, ‘Program A’ is thecurrent pivot program201 and is shown rendered in thecentral region200. ‘Program B’, ‘Program C’, ‘Program D’ and ‘Program E’ are shown rendered in thesatellite regions202,205,210 and213, respectively, as television programs being associated with thecurrent pivot program201 through the sharing of a similar value for one of the attributes—‘ATTRIBUTE 1’204, ‘ATTRIBUTE 2’207, ‘ATTRIBUTE 3’210 and ‘ATTRIBUTE 4’213, respectively). In the example ofFIG. 7, thesatellite region202 representing Program B is selected by the user using thedirectional buttons401,402,403,404 and405, for example. Selection of thesatellite region202 initiates the transition of theuser interface110 from the state shown inFIG. 2 to the state of theuser interface110 shown inFIG. 7. For theuser interface110 ofFIG. 7, Program B becomes thecurrent pivot program201 and is shown in thecentral region200 of theuser interface110. Program F, Program G, Program H, and Program J are shown in each of thesatellite regions202,205,206 and207 indicating an association with thecurrent pivot program201 through sharing one or more similar values of the attributes ‘Series’204, ‘Producer’207, ‘Studio’210 and ‘Cast’213, respectively.
Themethod600 continues at thenext step605, where theCPU1305 receives a further signal from theremote control unit105. Atstep605, themethod600 proceeds to step606 if the signal received by theCPU1305 represents selection of thecentral button405 of theremote control unit105. This signal represents that the user wishes to view the television program represented by thecurrent pivot program201. Otherwise, the signal received by theCPU1305, again, represents the selection of one of the satellite regions (e.g.,202) and themethod600 returns to step603.
Atstep606, theCPU1305 tunes thetelevision set112 to a channel which is currently broadcasting the television program represented by thecurrent pivot program201. For example, theCPU1305 may transmit a signal to a tuner configured within thetelevision set112, via thecommunications cable104, in order to tune thetelevision set112 to the channel. Alternatively, theCPU1305 may execute other control events, atstep606, such as scheduling the television program represented by thecurrent pivot program201 for recording. At thenext step607, theuser interface110 is hidden (i.e., reduced or removed from display) and themethod600 concludes.
Themethod600 has been described above with reference to theuser interface110. Alternatively, theuser interfaces510 and520 or any other arrangement of theuser interface110 described herein may be used in themethod600. Themethod600 will now be described in more detail below.
As described above, thememory unit1306 contains a plurality of data items stored therein. Each of the data items corresponds to a television program that is currently being broadcast or which is due to be broadcast at some future time. Each data item may comprise a metadata set describing at least the name of a corresponding television program, broadcast details such as channel and time of broadcasting of the corresponding television program, and data values corresponding to various data attributes (e.g., genre, cast, director, awards, producer, series, cast, studio) of the corresponding television program. For any particular two data items stored in thememory unit1306, similarities between two data items may be quantified by defining a distance metric as a function of the data attributes (i.e., metadata set) associated with each of the two data items. The distance metric may be a function of up to N-dimension, where N represents the number of distinct data attributes in the data attribute set.
FIG. 8 shows adistance matrix805 which may be used to determine the distance between any two data items stored inmemory1306 with respect to one of the data attributes. Thedistance matrix805 comprises a data attribute800 (i.e., Cast) and data items (e.g., A801 and F802). These data items (e.g., A801 and F802) of thematrix805 represent the data items stored inmemory1306 of the set-top-box101. In the example ofFIG. 8, each of the data items (e.g., A801 and F802) of thedistance matrix800 corresponds to a television program that is currently being broadcast or which is due to be broadcast at some future time. Thedistance matrix805 also comprises distance values (e.g.,803) representing the distance between any two of the data items (e.g., A801 and F802) with respect to a data attribute (e.g.,800). For example, thedistance value803 representing the distance between the data items A801 andF802 may be determined based on similarities between the values of the data attribute800 associated with each of the data items A801 andF802. In the example ofFIG. 8, the attribute associated with the data items A801 andF802 being considered is the attribute ‘Cast’800. In the example ofFIG. 8, any two data items (e.g.,806 and801) in thedistance matrix800 have an associateddistance value807 of zero for theattribute800 if the television programs represented by the twodata items806 and801 have the same value(s) for theCast attribute800. That is, the cast of both of the television programs represented by the twodata items801 and806 is the same. In contrast, thedistance value803 is equal to one if the twodata items801 and802 have different value(s) for theCast attribute800.
Software implementing the methods described herein may be broken down into three logical components, including adata component1000, aprocessing component1001, and auser interface component1002, as seen inFIG. 10. Thedata component1000 comprises anelectronic program guide1003 listing television program data, auser profile1005 comprising user data and arecommendation list1009 comprising user specific television program recommendations. Thedata component1000 may also comprise acurrent context1007 which contains such data as the television program currently being watched, the currently selected television program and the sequence of television programs selected in the current browsing session.
Theprocessing component1001 uses data from thedata component1000 to determine a set of television program recommendations for displaying on thetelevision112. Theprocessing component1001 may be configured according to a dataattribute selection strategy1004 that determines a set of appropriate data attributes, and aprogram selection strategy1011 that determines a program recommendation for each of the data attributes. Theuser interface component1002 displays the television program recommendations on thetelevision set112 in accordance with any one of the arrangements of theuser interface110,510 and520 described above, for example.
The methods described herein operate within a program space. In one example, the program space comprises television programs that are currently being broadcast and those television programs to be broadcast in the near future. Alternatively, the program space may comprise television programs that are currently being broadcast and all future programs. In still another example, the program space comprises all television programs in an electronic program guide stored inmemory1306. In still another example, the program space comprises only television programs that are currently being broadcast.
FIG. 11 is a flow diagram showing amethod1100 of selecting a television program using the remote control unit ofFIG. 4A and the user interface ofFIG. 4B. Either of theuser interfaces510 or520 may also be used in themethod1100. Themethod1100 may be implemented as software resident inmemory1306 of the set-top-box101 and being controlled in its execution by theCPU1305. Again, the period of execution of themethod1100 between the beginning ofstep1101 and the completion ofstep1109, as described below, will be referred to as a “browsing session.” Themethod1100 may be executed in any one of the program spaces described above.
Themethod1100 begins at thefirst step1101, where theCPU1305 generates the televisionprogram recommendation list1009 for recommending one or more television programs to a user of thesystem100 based on the user's preferences. Therecommendation list1009 may be generated atstep1101, in accordance with any suitable recommendation system, including but not limited to machine learning algorithms.
In one example, the televisionprogram recommendation list1009 may be generated dynamically at the start of a browsing session. Alternatively, the televisionprogram recommendation list1009 may be generated periodically and stored inmemory1306. In this instance, at the start of the browsing session, the televisionprogram recommendation list1009 may be retrieved frommemory1306.
At thenext step1102 of themethod1100, theCPU1305 determines a distance matrix (e.g., the matrix800) for each data attribute associated with the television programs of the televisionprogram recommendation list1009. The distance matrices determined atstep1102 may be configured as a set of mathematical functions that map any two television programs of therecommendation list1009 to a distance of either zero (0) or one (1), in accordance with Formula (1) below:
where p and q represent the two television programs, and va(p) and va(q) represent the values of an attribute a associated with each of the programs p and q, respectively.
Alternatively, the distance matrices determined atstep1102 may be configured as a set of mathematical functions that map any two television programs of therecommendation list1009 to a distance of some numerical value. For example, for two television programs with numerical attribute values, the distance between the two television programs may be the absolute difference between the attribute values associated with the two television programs.
The distance matrices determined atstep1102 may be determined for any two television programs in the particular program space in which themethod1100 is being executed. In this instance, the distance matrices may be stored inmemory1306 and may be retrieved frommemory1306 at the beginning of a browsing session. Alternatively, the distance matrices determined atstep1102 may be determined as needed by themethod1100.
Themethod1100 continues at thenext step1103, where theCPU1305 selects a television program and sets the selected television program as acurrent pivot program201. The television program selected atstep1103 may be the television program that is currently being viewed. Alternatively, the television program selected atstep1103 may be a television program that the user had previously selected from theelectronic program guide1003 configured withinmemory1306. The television program selected atstep1103 may also be a most highly recommended television program of the televisionprogram recommendation list1109 generated atstep1101.
At thenext step1104 of themethod1100, the name (or a unique identifier representing the name) of the television program selected as thecurrent pivot program201 atstep1103 is stored inmemory1306 as data for the current context. Storing thecurrent pivot program201 allows back tracking through a navigation path of the current browsing session. However, if back tracking is not required, then thecurrent pivot program201 does not need to be stored. The name of thecurrent pivot program201 may also be displayed on thetelevision set112, atstep1104, in theregion200 in accordance with theuser interface110 ofFIG. 4B.
Then at thenext step1105 of themethod1100, theCPU1305 selects one or more data attributes associated with thecurrent pivot program201 as candidate attributes. The data attributes selected atstep1105 constitute a set of search conditions. The selected data attributes may be used for selecting television program options for navigating the data items stored inmemory1306. In the example described herein, up to four data attributes may be selected dynamically atstep1105 based on the following predetermined criteria:
- (i) the current pivot program; and
- (ii) the availability of television programs to recommend for the selected candidate data attributes using either (a) information gain or (b) uniqueness, as will be described in detail below.
In this instance, the term dynamically refers to the substantially automatic selection of the data attributes performed by theCPU105 atstep1105. The data attributes are selected atstep1105 upon execution of themethod1100 and no user input is required to select the data attributes. Alternatively, user input may be used to select the data attributes atstep1105.
The data attributes selected atstep1105 are unique whenever possible. In this instance, the selected data attributes may also be repeated for thepivot program201 due to poor metadata availability or other criteria as will be described below. An example of poor metadata is a lack of available attribute values being associated with thecurrent pivot program201, such that the number of usable data attributes is less than a predetermined number. This predetermined number may be four (4) in the arrangement ofFIGS. 2, 3,4B,5B and5C.
As described above, the data attributes selected atstep1105 may alternatively be selected using information gain. Information gain for a data attribute is a numerical value that quantifies how useful the data attribute is in determining which television program has previously been viewed or not viewed by a user of thesystem100. The information gain I for an attribute a and a classification w may be determined in accordance with Formula (2) below:
where w represents a watched classification such that a television program classified as watched has been determined by thetelevision system100 as having been viewed previously by a user of thesystem100. For example, thetelevision system100 may use certain statistics to determine if a television program has been previously viewed or not by the user. Hwrepresents entropy for the classification w, n represents the total number of distinct values for the attribute a, vairepresents one value in a set of all distinct values for the attribute a, Pvairepresents the probability of a television program having a value of vaifor the attribute a, and H<w|vai>represents entropy for the classification w given that attribute a has a value vai.
The entropy H for the classification w may be determined in accordance with Formula (3) below:
Hw=−Pwlog (Pw) (3)
where Pwrepresents the probability of a television program having the classification w. The entropy H for the classification w given that attribute a has a value vaimay be determined in accordance with Formula (4) below:
H<w|vai>=−(Pw|vai) log (Pw|vai) (4)
As described herein, information gain Ia for an attribute a of each television program having a corresponding data item stored inmemory1306 is determined from the past viewing behaviour of the user of thesystem100. A value for information gain Ia may be determined for each data attribute a stored inmemory1306 according to Formula (2). The attributes may then be sorted according to the determined information gain Ia for each attribute a. All of the sorted data attributes for which thecurrent pivot program201 does not have a corresponding value may then be discarded and the attributes having the highest corresponding value for information gain Ia may be selected as the attributes atstep1105.
As described above, the selected data attributes may be repeated for thepivot program201 due to poor metadata availability or other criteria. For example, a decision on whether a selected attribute is required to be repeated may be made based on any combination of the following criteria:
- a) a predetermined threshold on information gain I
- b) the difference in information gain I between a first attribute and a second attribute; and
- c) the number of attributes available for thepivot program201.
For criteria a) directly above, the predetermined threshold may be defined before the start of a browsing session (i.e., prior to the execution of the method1100). When the information gain Ia for an attribute a falls below the predetermined threshold, then the attribute a is not repeated. This predetermined threshold may be set to half way between a minimum and maximum information gain I for the browsing session.
For criteria b) above, if the difference in information gain I between a first attribute and second data attribute is large, then the first attribute is used much more often than the second attribute to determine which television program has been watched. In this instance, the first attribute is repeated instead of selecting the second attribute.
For criteria c) above, if the number of attributes available for thecurrent pivot program201 is less than a number of required data attributes, then data attributes may be repeated. In the arrangement ofFIGS. 2, 3,4B,5B and5C, the data attributes may be repeated if the number of attributes available for thecurrent pivot program201 is less than four (4) data attributes. The data attributes may be selected atstep1105 using uniqueness. Uniqueness for a data attribute is a numerical value quantifying how unique the value of an attribute of thepivot program201 is in a current program space. Uniqueness U(a) for an attribute a of current pivot program c with value v over a program space P with |P| programs may be determined in accordance with Formula (5) below:
Uc(a)=1−(ΣpεPdista(va(p),va(f)))/|P| (5)
where dista(va(p), va(f)) is a function for determining the distance between two attribute values va(p) and va(f) as described above with reference to Formula (1), and |P| represents the number of television programs in the program space P.
Amethod1400 of selecting one or more data attributes associated with thecurrent pivot program201 using uniqueness for use as candidate attributes, as executed atstep1105, will now be described. Themethod1400 may be implemented as software resident inmemory1306 of the set-top-box101 and being controlled in its execution by theCPU1305.
Themethod1400 begins at thefirst step1401, where theCPU1305 determines the uniqueness Uc(a) of the data attributes associated with thepivot program201, in accordance with Formula (5) above. Then at thenext step1403, theCPU1305 discards all unique data attributes where Uc(a)=1. At thenext step1405, the remaining data attributes associated with the current pivot program201 (i.e., those attributes not discarded at step1403) are sorted according to their uniqueness. Themethod1400 concludes at thenext step1407, where theCPU1305 selects one or more of the sorted data attributes associated with thepivot program201 for use as candidate attributes. The data attributes that have the highest uniqueness are selected as candidate attributes atstep1407. If two data attributes have the same uniqueness, then the data attribute with a higher information gain may be selected atstep1407. If two data attributes have the same information gain, then one of the data attributes may be selected randomly as a candidate attribute atstep1407.
Apart from automatically selecting data attributes information gain and uniqueness, as described above, user input may be utilised to select the data attributes atstep1105 ofFIG. 11. In one example, one or more data attributes may be selected by the user of thesystem100, for use as candidate attributes, before a browsing session. In this instance, the selected data attributes do not change during the course of a browsing session. Alternatively, one or more data attributes may be selected by a designer of thesystem100, for use as candidate attributes, during development of thesystem100. Again, in this instance, the selected data attributes do not change during the course of a browsing session.
Themethod1100 continues at thenext step1106, where theCPU1305 selects a candidate television program for each of the candidate attributes selected atstep1105. The candidate television programs are selected from the televisionprogram recommendation list1009 generated atstep1101 using the distance matrices determine atstep1102. A candidate television program may be selected for a particular candidate attribute atstep1106 if the candidate television program meets the following criteria:
- a) the selected candidate television program has never been a pivot program previously in the current browsing session; and
- b) the value of the particular candidate attribute for the candidate television program is equal to the value of a corresponding attribute associated with thepivot program201; and
- c) the selected candidate television program has the highest recommendation rating among those television programs selected in b) directly above.
If more than one television program has an equally high recommendation rating and the same attribute value for the attribute corresponding to the candidate attribute, then the television program that is “closest” to thecurrent pivot program201 is selected. In this instance, the “closeness” may be determined according to Formula (6) below:
where dista(va(p),va(c)) is the determined in accordance with Formula (1) above for determining the distance between two attribute values va(p) and va(c). If no television program satisfies the selection criteria a), b) and c) directly above, for a particular candidate attribute then the particular candidate attribute is replaced with a next one of the candidate attributes selected atstep1105.
In addition to having equal attribute values for a particular candidate attribute, television programs with attribute values similar to that of thecurrent pivot program201 for the particular candidate attribute may also be considered as candidate television programs. Two attribute values may be considered similar if the distance between the two attribute values is lower than a predetermined threshold distance. The predetermined threshold distance may be set to half way between a minimum and maximum distance value.
As described above, the selection of the one or more data attributes atstep1105 and the selection of the candidate attributes atstep1106, are executed by theCPU1305. Alternatively, steps1105 and1106 may be executed by different CPUs where each of the CPUs is configured within the settop box101 or where one or both of the CPU are configured externally to the set top box.
Themethod1100 continues at thenext step1107, where the candidate television programs and their associated attributes are displayed on thetelevision set112 in the vicinity of thepivot program201, in accordance with theuser interface110 ofFIG. 4B. As seen inFIG. 4B, thecurrent pivot program201 set atstep1103 is displayed in thecentre region200 of theuser interface110, and the four candidate television programs selected atstep1106 are displayed in thesatellite regions202,205,208 and211 together with corresponding candidate attributes204,207,210 and213, respectively. Alternatively, any of theuser interfaces110,510 or520 or any other suitable configuration of the user interface may be used to present thepivot program201 and candidate television programs and attributes, to the user of thesystem100.
At thenext step1108, if a signal is received by theCPU1305 representing selection of thecentral button405 of theremote control unit105, then themethod1100 proceeds to step1109. This signal represents that the user wishes to view, record or have some other action performed on the television program represented by thepivot program201. Otherwise, the signal received from theCPU1305 atstep1108 represents the selection of one of the satellite regions (e.g.,202) of theuser interface110 displayed atstep1107 and themethod1100 proceeds to step1110.
Atstep1109, thecurrent pivot program201 is selected and themethod1100 and therefore the browsing session concludes. TheCPU1305 may then tune thetelevision set112 to a channel if the television program represented by thepivot program201 is currently being broadcast, as described above. If thecurrent pivot program201 represents a television program to be broadcast in the future, thetelevision system100 may seek input from a user as to whether the television program is to be recorded or whether a reminder is to be generated to alert the user when the television program is being broadcast.
Atstep1110, thecurrent pivot program201 is replaced with the candidate television program represented by the satellite region (e.g.,202) selected by the user atstep1108. Followingstep1110, themethod1100 returns to step1104 where thecurrent pivot program201 is stored inmemory1306.Steps1104 to1110 may then be repeated until theCPU1305 receives asignal109 representing selection of thecentral button405 of theremote control unit105 and therefore selection of thecurrent pivot program201.
In each repeat ofstep1105, a new set of selected candidate attributes may be different to a previous set of selected candidate attributes. In this instance, the new set of selected candidate attributes constitute a new set of searching conditions.
Following selection of the candidate television programs for each of the candidate attributes, atstep1106, an additional candidate television program may be selected frommemory1306 by theCPU1305. In one example, the additional candidate television program may be selected for being dissimilar to thecurrent pivot program201 set atstep1103 of themethod1100. The additional candidate television program may be displayed in theregion301 of theuser interface110, atstep1107 of themethod1100. The additional candidate television program may be the most highly recommended television program that is dissimilar to thepivot program201. In still another example, the additional candidate television program may be a randomly selected television program that is dissimilar to thepivot program201 set atstep1103.
The aforementioned preferred method(s) comprise a particular control flow. There are many other variants of the preferred method(s) which use different control flows without departing the spirit or scope of the invention. Furthermore one or more of the steps of the preferred method(s) may be performed in parallel rather sequentially.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.