DISTRIBUTED, INTERACTIVE TELEVISION PROGRAM GUIDE; SYSTEM AND METHOD
20180234737 ยท 2018-08-16
Inventors
Cpc classification
H04N21/2747
ELECTRICITY
H04N21/4821
ELECTRICITY
H04N21/42204
ELECTRICITY
Y10S707/99933
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04N21/4586
ELECTRICITY
H04N7/173
ELECTRICITY
H04N21/4345
ELECTRICITY
H04N21/4755
ELECTRICITY
H04N21/4826
ELECTRICITY
Y10S707/99943
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
H04N21/458
ELECTRICITY
H04N7/173
ELECTRICITY
H04N21/475
ELECTRICITY
H04N21/422
ELECTRICITY
H04N21/434
ELECTRICITY
H04N21/466
ELECTRICITY
H04N21/2747
ELECTRICITY
Abstract
In an interactive network-based personal video recording system, a user interface is provided that allows viewers to search a database of program guide information according to program title, indexed program attributes such as actor and director, and key word. Viewer interaction is by way of a remote control unit.
Claims
1-20. (canceled)
21. A computer-implemented method comprising: generating a plurality of strings based at least in part on program information stored in a database, a first string in the plurality of strings having a first number of characters and the program information including a second number of characters, the first number of characters being less than the second number of characters; receiving a first input including a first character; searching the plurality of strings to identify a first search result that includes the first character and at least one additional character based at least in part on the first character; receiving a second input that includes a second character; and searching the plurality of strings to identify a second search result based at least in part on the first character, the second character, and the at least one additional character.
22. The method of claim 21, further comprising: generating, based at least in part on the first input and the second input, program search profiles, individual program search profiles comprising one or more different search constraints, the one or more different search constraints including at least one of a key word, an actor name, or a category.
23. The method of claim 22, further comprising: storing program search profiles, each program search profile saved in association with a respective program search profile name.
24. The method of claim 21, further comprising: grouping the plurality of strings keys according to specific indexes, individual index of the specific indexes being associated with a group of the plurality of strings; receiving a selection of an index; and performing a search on the group of the plurality of strings associated based at least in part on the index.
25. The method of claim 21, wherein the second character is received after the first character.
26. The method of claim 21, further comprising: presenting the first search result based at least in part on the first input; and updating the first search result to present the second search result based at least in part the second input.
27. The method of claim 21, wherein the second search result includes the first character, the second character and the at least one additional character.
28. A system comprising control circuitry configured to: generate a plurality of strings based at least in part on program information stored in a database, a first string in the plurality of strings having a first number of characters and the program information including a second number of characters, the first number of characters being less than the second number of characters; receive a first input including a first character; search the plurality of strings to identify a first search result that includes the first character and at least one additional character based at least in part on the first character; receive a second input that includes a second character; and search the plurality of strings to identify a second search result based at least in part on the first character, the second character, and the at least one additional character.
29. The system of claim 28, wherein the control circuitry is further configured to: generate, based at least in part on the first input and the second input, program search profiles, individual program search profiles comprising one or more different search constraints, the one or more different search constraints including at least one of a key word, an actor name, or a category.
30. The system of claim 29, wherein the control circuitry is further configured to: store program search profiles, each program search profile saved in association with a respective program search profile name.
31. The system of claim 28, wherein the control circuitry is further configured to: group the plurality of strings keys according to specific indexes, individual index of the specific indexes being associated with a group of the plurality of strings; receive a selection of an index; and perform a search on the group of the plurality of strings associated based at least in part on the index.
32. The system of claim 28, wherein the second character is received after the first character.
33. The system of claim 28, wherein the control circuitry is further configured to: present the first search result based at least in part on the first input; and update the first search result to present the second search result based at least in part the second input.
34. The system of claim 28, wherein the second search result includes the first character, the second character and the at least one additional character.
35. A non-transitory computer readable medium comprising memory with instructions encoded thereon, the instructions comprising: an instruction for generating a plurality of strings based at least in part on program information stored in a database, a first string in the plurality of strings having a first number of characters and the program information including a second number of characters, the first number of characters being less than the second number of characters; an instruction for receiving a first input including a first character; an instruction for searching the plurality of strings to identify a first search result that includes the first character and at least one additional character based at least in part on the first character; an instruction for receiving a second input that includes a second character; and an instruction for searching the plurality of strings to identify a second search result based at least in part on the first character, the second character, and the at least one additional character.
36. The non-transitory computer-readable medium of claim 35, wherein the instructions further comprise: an instruction for generating, based at least in part on the first input and the second input, program search profiles, individual program search profiles comprising one or more different search constraints, the one or more different search constraints including at least one of a key word, an actor name, or a category.
37. The non-transitory computer-readable medium of claim 36, wherein the instructions further comprise: an instruction for storing program search profiles, each program search profile saved in association with a respective program search profile name.
38. The non-transitory computer-readable medium of claim 35, wherein the instructions further comprise: an instruction for grouping the plurality of strings keys according to specific indexes, individual index of the specific indexes being associated with a group of the plurality of strings; an instruction for receiving a selection of an index; and an instruction for performing a search on the group of the plurality of strings associated based at least in part on the index.
39. The non-transitory computer-readable medium of claim 35, wherein the second character is received after the first character.
40. The non-transitory computer-readable medium of claim 35, wherein the instructions further comprise: presenting the first search result based at least in part on the first input; and updating the first search result to present the second search result based at least in part the second input.
41. The non-transitory computer-readable medium of claim 35, wherein the second search result includes the first character, the second character and the at least one additional character.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] In an interactive, network-based video recording system, a searchable program guide is provided to facilitate the task of identifying programs of interest by the viewer. As shown in
[0017] Referring now to
[0018] Referring now to
[0019] After choosing a category, the user is navigated to a screen as shown in
[0020] As described above, the viewer may create search profiles in which they search according to indexed program attributes or keywords. Program attributes may include actor name, director name, category, choreographer, language, year of release, and the like.
[0021]
[0022] The key word search feature is highly advantageous in that it provides an important additional access point not found in conventional program guides. It is a well-known problem to those skilled in the design of publicly accessible information retrieval systems that it is impossible to anticipate a user's search behavior with complete certainty. Thus, no matter how skillfully indexed an information base may be, it will be unable to accommodate the information-seeking behavior of all users. Therefore, to provide a system that delivers maximum serviceability to its constituency, it is highly desirable to provide as many different access points as possible. By including a key word search feature, the current invention provides an important, highly flexible means of accessing program content and subject matter outside of the indexed attributes.
[0023] The method of interacting with the key word search screens is exactly analogous to the screens previously described. Thus, they will not be further described.
Indexing
[0024] As previously noted, the video recording system of the present invention is network-based, consisting of a central server, and a plurality of client units, each client being in periodic communication with the server. In the preferred embodiment of the invention, the network connection is a dial-up connection over a publicly available telecommunication network. However, other network connections, a wireless connection, for example, would be equally suitable. In the preferred embodiment of the invention, the client is in communication with the server for a brief period on a daily basis. During the daily connection period, the client downloads current program guide data. The downloaded program information is imported into an object-oriented database resident on the client. As previously indicated, when a viewer searches the database to find programs of interest, they may search by program name, by indexed attributes such as actor name or director name; and by keyword. A direct, sequential search of the records in the database objects would be prohibitively time-consuming and would waste system resources, unfavorably affecting the usability of the program guide. Thus, the database is indexed, and searches are conducted on the provided index files, greatly improving search efficiency.
[0025] While the database may include other objects, the title search feature is concerned primarily with the Series object. The attribute search and key word search features are concerned primarily with the Program object. The Series object includes a record for each television series. For the title search, the most important field of the Series object is the series Title field.
[0026] The attribute search and the key word search are concerned primarily with the Program object. The Program object includes a record for each individual program item, where an individual program item might be a single episode of a series, for example. The Program object includes at least the following fields: [0027] Title; [0028] Episode title; [0029] Description; [0030] Actors [0031] Hosts; [0032] Guest stars; and [0033] Directors.
[0034] The above list is not intended to be limiting. Other record configurations consistent with the spirit and scope of the invention are possible. Information is extracted from the individual records and assembled into a series of index files. For the title search feature, a Title index is constructed. For the attribute search feature, Actor and Director indices are built. Finally, for the key word search, a Key word index and a Title word index are provided.
[0035] Generally, the process of indexing the database includes the following steps: [0036] Extracting index terms from the database records; [0037] Constructing intermediate files from the extracted index terms; [0038] Creating raw, unsorted index files from the intermediate files; [0039] Sorting the raw index files; and [0040] Compressing the sorted files to form final index files.
[0041] The several steps of the indexing process are described in greater detail below.
[0042] For the Title index, the entire series title is extracted as a text string from the Title field of each Series record, with each text string constituting a separate index term, or key.
[0043] For the Actor index, each name is extracted from the Actors, Hosts and Guest stars fields of the Program records, with each name from each record constituting a separate actor key. Similarly, for the Director index, each name is extracted from the Directors field, with each name from each record constituting a separate director key.
[0044] For the Title word index, each separate word, having a length of at least two characters, of each title from both the Title and Episode title fields is extracted, with each separate word constituting a separate title word. For the Key word index, each separate word having a length of at least two characters is extracted from the Description field, with each occurrence of each word constituting a separate key word.
[0045] Following key extraction, the keys are assembled into intermediate files: one for each of Title, Actor, Director, Title word and Key word. The Title intermediate file includes the Title keys, the Actor intermediate file includes the Actor, Host and Guest star keys, and the Director intermediate file includes the Director keys, with the names in the Actor and Director keys listed directory style: last name and first name, separated by a comma. The Title word file includes the title words extracted form the Title and Episode title fields of the Program object. The Key word file, however, is constructed differently from the previous intermediate files. Each key word forms a separate entry in the Key word file. Additionally, actor names are incorporated into the Key word index. The actor names are parsed into separate first and last names, and then added to the Key word intermediate file. Thus the Key word file includes the words from the, Description field and the name words from the Actors, Hosts and Guest stars fields. The end result of this step is an intermediate file for each of Title, Actor, Director, Title word and Key word, each comprising a simple listing of the respective keys or index terms, in a text file.
[0046] The intermediate files are subsequently used to build raw, unsorted index files. Each key of the intermediate files described above is paired with a program identifier that corresponds to the record that the key originated from. The program identifier is a system-generated, alphanumeric identifier, distinct from the program identifiers assigned by commercial programming information vendors such as TRIBUNE MEDIA SERVICES. The raw index files take the form of delimited text files; however other data structures, such as tables, would be equally suitable. In the preferred embodiment of the invention, the files are formatted as follows:
TABLE-US-00001 <KEY> <TAB> <PROG ID> . . . . . <KEY> <TAB> <PROG ID>.
[0047] As will be described further below, a binary search algorithm is employed to search the indices, requiring that the index be sorted. Thus, the raw index files are sorted on the keys.
[0048] The sorted index files are subsequently compressed by eliminating redundant keys, so that each distinct key is paired with a list of the program identifiers corresponding to each occurrence of the key in the database. In the preferred embodiment of the invention, the compressed index files are also delimited text files, formatted as follows:
TABLE-US-00002 CAT <TAB> <ID.sub.1, ID.sub.2, . . . , ID.sub.N> LASER <TAB> <ID.sub.1, ID.sub.2, . . . , ID.sub.N> STAR <TAB> <ID.sub.1, ID.sub.2, . . . , ID.sub.N> TREK <TAB> <ID.sub.1, ID.sub.2, . . . , ID.sub.N>,
[0049] Where cat, laser, star and trek might be title words or key words and ID.sub.1, ID.sub.2, . . . , ID.sub.N is a list of program identifiers for each unique key.
Search Algorithm
[0050] A search engine employing a binary search algorithm is used to search the various indices. In general, the binary algorithm begins with an interval covering the whole search space. The search space is repeatedly divided in half according to how the search value compares with the middle element. If the search value is less than the item in the middle of the interval, the interval is narrowed to the lower half; otherwise it is narrowed to the other half. The operation is performed until the search value is found or the interval is empty.
[0051] As described above, the key word search includes title words. Therefore, during a key word search, a binary search of both the Keyword index and the Title word index is performed.
[0052] Although the invention has been described herein with reference to certain preferred embodiments, one skilled in the art will readily appreciate that other applications may be substituted without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.
Example Embodiments
[0053] Examples of embodiments are set forth, without limitation, in accordance with the following numbered clauses.
[0054] 1. A system for searching a distributed, interactive television program guide database, wherein a viewer searches said database to identify programs of interest, said system comprising: a server; a client, wherein said client is in periodic communication with said server, and wherein said client downloads current program information from said server; a program guide database resident on said client, wherein said program information is imported into said database; an interactive viewer interface displayed on a display means in communication with said client; means for interacting with said viewer interface by said viewer; means for searching said database according to program title; means for searching said database according to indexed program attributes; and means for searching said database according to key words.
[0055] 2. The system of Clause 1, wherein said system is a component of an interactive, network-based video recording system.
[0056] 3. The system of Clause 1, wherein said interface comprises a plurality of screens having interface elements for navigation, entering search values and displaying search results.
[0057] 4. The system of Clause 3, wherein said means for interacting with said interface comprises a remote control unit, said remote control unit communicating with said client by means of a data signal.
[0058] 5. The system of Clause 4, wherein said data signal is embedded in a carrier signal.
[0059] 6. The system of Clause 4, wherein said means for searching said database according to program title comprises a screen for optionally selecting a program category.
[0060] 7. The system of Clause 5, wherein said means for searching said database according to program title further comprises a screen for entering a program title and displaying a list of program titles, said screen for entering a program title comprising: a virtual alphanumeric keypad for entering characters to spell said program title; a text box for displaying said entered characters; and a scrollable list of program titles, wherein a prefix matching feature causes said list of program titles to automatically scroll to titles in said list having prefixes that match a character string displayed in said text box.
[0061] 8. The system of Clause 7, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0062] 9. The system of Clause 4, wherein said means for searching said database according to indexed attributes comprises: a screen for searching according to Actor name; a screen for searching according to Director name; and separate screens preceding said Actor name screen and said Director name screen for optionally selecting a program category.
[0063] 10. The system of Clause 9, wherein said screen for searching according to Actor name comprises: a virtual alphanumeric keypad for entering characters to spell said Actor name; a text box for displaying said entered characters; and a scrollable list of Actor names, wherein a prefix matching feature causes said list of Actor names to automatically scroll to Actor names in said list having prefixes that match a character string displayed in said text box.
[0064] 11. The system of Clause 10, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0065] 12. The system of Clause 9, wherein said screen for searching according to Director name comprises: a virtual alphanumeric keypad for entering characters to spell said Director name; a text box for displaying said entered characters; and a scrollable list of Director names, wherein a prefix matching feature causes said list of Director names to automatically scroll to Director names in said list having prefixes that match a character string displayed in said text box.
[0066] 13. The system of Clause 12, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0067] 14. The system of Clause 4, wherein said means for searching said database according to key word comprises a screen for optionally selecting a program category.
[0068] 15. The system of Clause 14, wherein said means for searching said database according to key word further comprises a screen for entering a key word, said screen for entering a key word comprising: a virtual alphanumeric keypad for entering characters to spell said key word; and a text box for displaying said entered characters.
[0069] 16. The system of Clause 15, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0070] 17. The system of Clause 4, wherein said indexed attributes include any of: Actor name; Director name; Host name; Guest star name; Choreographer; Year of release; Category; and Language.
[0071] 18. The system of Clause 1, wherein said program guide database comprises an object-oriented database application, said database application including at least: a Series object; and a Program object.
[0072] 19. The system of Clause 18, wherein said Series object includes a series Title field.
[0073] 20. The system of Clause 19, wherein said program guide database further comprises a Title index, said Title index being built from entries in said Series title field.
[0074] 21. The system of Clause 20, wherein said means for searching said database according to program title comprises a search engine for searching said Title index.
[0075] 22. The system of Clause 18, wherein said Program object includes fields for: Title; Episode title; Description; Actors; Hosts; Guest stars; and Directors.
[0076] 23. The system of Clause 22, wherein said database further comprises an Actor index, said Actor index being built from entries in said Actors, Hosts, and Guest stars fields.
[0077] 24. The system of Clause 23, wherein said database further comprises a Director index, said Director index being built from entries in said Director field.
[0078] 25. The system of Clause 24, wherein said means for searching said database according to program attributes comprises a search engine for searching said Actor and said Director indices.
[0079] 26. The system of Clause 18, wherein said database further comprises a Title word index, said Title word index being built from said Title fields and said Episode title fields.
[0080] 27. The system of Clause 26, wherein said database further comprise a Key word index, said Key word index being built from words in said Description field, said Actors field, said Hosts field and said Guest stars field.
[0081] 28. The system of Clause 27, wherein said means for searching said database according to key words comprises a search engine for searching said Title word index and said Key word index.
[0082] 29. A method of searching a distributed, interactive television program guide database, wherein a viewer searches said program guide database to identify programs of interest, comprising the steps of: providing a server; providing a client, wherein said client is in periodic communication with said server, and wherein said client downloads current program information from said server; providing a program guide database resident on said client, wherein said program information is imported into said database; providing an interactive viewer interface displayed on a display means in communication with said client; providing means for interacting with said viewer interface by said viewer; and searching said database by said viewer according to at least one of: program title; indexed program attributes; and key words.
[0083] 30. The method of Clause 29, wherein said system is a component of an interactive, network-based video recording system.
[0084] 31. The method of Clause 29, wherein said interface comprises a plurality of screens having interface elements for navigation, entering search values and displaying search results.
[0085] 32. The method of Clause 31, wherein said means for interacting with said interface comprises a remote control unit, said remote control unit communicating with said client by means of a data signal.
[0086] 33. The method of Clause 32, wherein said data signal is embedded in a carrier signal.
[0087] 34. The method of Clause 32, wherein said step of searching said database according to program title comprises the steps of optionally, selecting a program category in a first screen; and entering a program title in a second screen, said second screen comprising: a virtual alphanumeric keypad for entering characters to spell said program title; a text box for displaying said entered characters; and a scrollable list of program titles, wherein a prefix matching feature causes said list of program titles to automatically scroll to titles in said list having prefixes that match a character string displayed in said text box.
[0088] 35. The method of Clause 34, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0089] 36. The method of Clause 32, wherein said step of searching said database according to indexed attributes comprises one of the steps of: searching according to Actor name; searching according to Director name; and optionally selecting a program category prior to either of said steps of searching according to Actor name or searching according to Director name.
[0090] 37. The method of Clause 36, wherein a screen for searching according to Actor name comprises: a virtual alphanumeric keypad for entering characters to spell said Actor name; a text box for displaying said entered characters; and a scrollable list of Actor names, wherein a prefix matching feature causes said list of Actor names to automatically scroll to Actor names in said list having prefixes that match a character string displayed in said text box.
[0091] 38. The method of Clause 37, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0092] 39. The method of Clause 36, wherein a screen for searching according to Director name comprises: a virtual alphanumeric keypad for entering characters to spell said Director name; a text box for displaying said entered characters; and a scrollable list of Director names, wherein a prefix matching feature causes said list of Director names to automatically scroll to Director names in said list having prefixes that match a character string displayed in said text box.
[0093] 40. The method of Clause 39, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0094] 41. The method of Clause 32, wherein said step of searching said database according to key word comprises the steps of: optionally, selecting a program category from a first screen; and entering a key word in a second screen, said second screen comprising a virtual alphanumeric keypad for entering characters to spell said key word; and a text box for displaying said entered characters.
[0095] 42. The method of Clause 41, wherein said viewer enters characters by activating controls on said remote control that correspond to virtual controls on said keypad.
[0096] 43. The method of Clause 32, wherein said indexed attributes include any of: Actor name; Director name; Host name; Guest star name; Choreographer; Year of release; Category; and Language.
[0097] 44. The method of Clause 29, wherein said program guide database comprises an object-oriented database application, said database application including at least: a Series object; and a Program object.
[0098] 45. The method of Clause 44, wherein said Series object includes a series Title field.
[0099] 46. The method of Clause 45, wherein said program guide database further comprises a Title index, said Title index being built from said series Title field.
[0100] 47. The method of Clause 46, wherein said means for searching said database according to program title comprises a search engine for searching said Title index.
[0101] 48. The method of Clause 44, wherein said Program object includes fields for: Title; Episode title; Description; Actors; Hosts; Guest stars; and Directors.
[0102] 49. The method of Clause 48, wherein said database further comprises an Actor index, said Actor index being built from said Actors,Hosts, and Guest stars fields.
[0103] 50. The method of Clause 49, wherein said database further comprises a Director index, said Director index being built from entries in said Director field.
[0104] 51. The method of Clause 50, wherein said means for searching said database according to Actor or Director or comprises a search engine for searching said Actor and said Director indices.
[0105] 52. The method of Clause 44, wherein said database further comprises a Title word index, said Title word index being built from entries in said Title fields and said Episode title fields.
[0106] 53. The method of Clause 52, wherein said database further comprise a Key word index, said Key word index being built from said words in said Description field, said Actors field, said Hosts field and said Guest stars field.
[0107] 54. The method of Clause 53, wherein said means for searching said database according to key words comprises a search engine for searching said Title word index and said Key word index.