System and method for verification of electronic television program guide data
Abstract
A method for making a television program schedule available through a distribution system, the method comprising: storing a database of television program listings collected from one or more information providers, the database comprising data fields for television channel data for a plurality of television channels; extract from the database, data that provide a program schedule for the distribution system; and transmit the data that provides the programming of the programs to the distribution system to make the programming of the programs available through said system; characterized by: automatic analysis with a data processor of one or more of the data fields in the database listings for at least one of invalid data and missing data (20); provide a report of detected errors; and provide a user with an editing medium (30, 40) whereby the user can correct the errors detected before the data is transmitted to the distribution system.

Term
Term ended
Projected expiry passed 27 October 2015, 10.9 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
14 claims: 14 independent, 0 dependent
- 1ES 2 333 210 T3 IS 2 333 210 T3 CLAIMS REIVINDICACIONES 1. A method of making a television program schedule available through a distribution system, comprising the method:1. Un método para hacer una programación de programas de televisión disponible mediante un sistema de distribución, comprendiendo el método: almacenar una base de datos de listados de programas de televisión recogidos de uno o más proveedores de información, comprendiendo la base de datos campos de datos para datos de canales de televisión para una pluralidad de canales de televisión;storing a database of television program listings collected from one or more information providers, the database comprising data fields for television channel data for a plurality of television channels;extract from the database, data that provide a schedule of the programs for the distribution system;and transmitting the data providing the programming of the programs to the distribution system to make the programming of the programs available through said system;extraer de la base de datos, datos que proporcionan una programación de los programas para el sistema de distribución;y transmitir los datos que proporcionan la programación de los programas al sistema de distribución para hacer que la programación de los programas esté disponible mediante dicho sistema;caracterizado por: characterized by: automatic analysis with a data processor of one or more of the data fields of the database listings for at least one of invalid data and missing data (20);el análisis automático con un procesador de datos de uno o más de los campos de datos de los listados de la base de datos para al menos uno de datos inválidos y datos ausentes (20);proporcionar un informe de errores detectados;y proporcionar a un usuario un medio de editado (30, 40) por el que el usuario puede corregir los errores detectados antes de que se transmitan los datos al sistema de distribución. provide a report of detected errors;and providing a user with an editing means (30, 40) whereby the user can correct detected errors before the data is transmitted to the distribution system.
- 2The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for at least one of titles absent, copy absent, and absent fields (20). 2. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para al menos uno de títulos ausentes, copia ausente, y campos ausentes (20).
- 3The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for at least one of titles long and long copy (20). 3. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para al menos uno de títulos largos y copia larga (20).
- 4El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para errores editoriales (20). Four. The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for editorial errors (20) .
- 5The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for inappropriate language (20) . 5. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para lenguaje inapropiado (20).
- 6The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for missing film ratings ( twenty). 6. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para calificaciones de películas ausentes (20).
- 7The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for absent program type ( twenty). 7. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para tipo de programa ausente (20).
- 8The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises automatically analyzing with the data processor one or more of the data fields for absent price for programs of payment (20). 8. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende analizar automáticamente con el procesador de datos uno o más de los campos de datos para precio ausente para programas de pago (20).
- 9The method defined in claim 1, wherein the automatic analysis with a data processor of one or more of the data fields comprises:9. El método definido en la reivindicación 1, en el que el análisis automático con un procesador de datos de uno o más de los campos de datos comprende: seleccionar un archivo de lista de canales que identifica uno o más canales de televisión;y comparar automáticamente con el procesador de datos el archivo de lista de canales frente a los campos de datos de la base de datos para determinar si alguno del uno o más canales de televisión del archivo está ausente de la base de datos. selecting a channel list file that identifies one or more television channels;and automatically comparing with the data processor the channel list file against the data fields of the database to determine if any of the one or more television channels in the file are absent from the database.
- 10The method defined in claim 1, wherein the distribution system is a cable television system or other pay television system. 10. El método definido en la reivindicación 1, en el que el sistema de distribución es un sistema de televisión por cable u otro sistema de televisión de pago.
- 11El método definido en la reivindicación 1, que comprende adicionalmente transmitir por el sistema de distribución los datos que proporcionan una programación de los programas a una pluralidad de televidentes. eleven. The method defined in claim 1, further comprising transmitting through the distribution system the data providing a schedule of the programs to a plurality of viewers. ES 2 333 210 T3 IS 2 333 210 T3
- 12The method defined in claim 1, further comprising automatic analysis with the data processor of one or more of the data fields to determine whether each of the following inequalities is substantially satisfied:12. El método definido en la reivindicación 1, que comprende adicionalmente el análisis automático con el procesador de datos de uno o más de los campos de datos para determinar si se cumple sustancialmente cada una de las siguientes desigualdades: Tn + 1>Tn + RTn Tn + 1 <Tn + RTn where Tn indicates programming time and RTn indicates the execution time for the nth television program listing in the database for a television channel, and Tn + 1 indicates the scheduling time for the n + 1-th television program listing in the database for the television channel. Tn+1 >Tn + RTn Tn+1 <Tn + RTn donde Tn indica el tiempo de programación y RTn indica el tiempo de ejecución para el listado de programas de televisión n-ésimo en la base de datos para un canal de televisión, y Tn+1 indica el tiempo de programación para el listado de programas de televisión n+1-ésimo en la base de datos para el canal de televisión.
- 13The method defined in claim 1, further comprising providing a report of the start time and end time of one or more schedule gaps and schedule overlaps. 13. El método definido en la reivindicación 1, que comprende adicionalmente proporcionar un informe de la hora de inicio y la hora de finalización de uno o más huecos de programación y solapamientos de programación.
- 14A system for making a television program schedule available through a distribution system, comprising a means for performing the method defined in any of claims 1-13. 14. Un sistema para hacer que una programación de programas de televisión esté disponible mediante un sistema de distribución, que comprende un medio para realizar el método definido en cualquiera de las reivindicaciones 1-13.
Independent claims14
366 paragraphs in 21 sections, as filed
IS 2 333 210 T3
DESCRIPTION
Verification of television program guide electronic data.
Background of the invention
This invention relates to an electronic program guide ("EPG") system that provides users with programming information for broadcast or cable broadcast programs available for viewing on a display screen. More particularly, it relates to a system and method for verifying EPG data prior to transmission to a plurality of remote locations such as cable system entry ends or viewing sites.
Electronic program guides for television systems are known in the art, particularly with respect to cable television systems. For example, a common implementation of an electronic program guide uses a specialized cable television channel for programming information for continuously broadcast programs. The advantage of such a system is that it is relatively easy to use because it is implemented centrally at the cable entry end. No additional electronics or software are required at the viewer location because complete control of the presentation is maintained at the cable entry end. The presentation information is then broadcast continuously on a dedicated cable channel. The viewer simply tunes the cable box or television tuner to the channel on which the programming information is modulated and displays the program listings. Typically, these program guides use a display that scrolls through television listings or a fixed display that changes periodically. Some systems employ a partial screen of listings with additional information on the rest of the screen such as movie ads on pay channels, pay-per-view (PPV) event programs, time and weather information, and other business information. These systems generally incorporate a grid or matrix to present the programming information of the programs, with a different row for each channel and columns that represent different periods of time.
Furthermore, interactive program guides are also known. Said guides allow the user to select the program listings to be displayed based on user selection criteria and to present the listings on the television receiver in a desired format. Interactive guides are more versatile than guides on specialized channels because they work under the control of the user. However, they are more expensive to implement because they require memory and data handling capabilities at the user's site. The present invention can be used with specialized or interactive channel program guides because it operates on the program listings data common to both types of guides.
Modern cable systems include more than 100 channels. Therefore, for EPGs on specialized and interactive channels, large amounts of data are required to provide a complete listing of program scheduling information. A common problem with both types of systems is that there are often bugs that need to be corrected. Errors can arise for any of several reasons. First, it is common for a complete database of program listings to be compiled from several different sources. Much of the data is available on a national basis, including network programming (both broadcast and cable), pay-per-view listings, and regional programs. Some data, however, must be obtained locally, including locally sourced programs, channel maps for individual cable systems, and prices for pay-per-view programs. The fact that there is no single entity responsible for compiling the databases of the complete listings increases the risk of errors. For example, a portion of the data may need to be converted to a different format before it can be used in the program guide.
Second, the listings database contains an enormous amount of data. Electronic program guides, whether of the specialized or interactive channel variety, include a database comprising the program listings information for the various pay-per-view stations and channels. Listing data can be arranged in weekly blocks or other time periods. As an example, consider a cable system with eighty (80) channels, each broadcasting 24 hours a day. Assuming for each station a daily average of four hours of two-hour programs, five hours of one-hour programs, and understanding the balance of half-hour programs, 37 different programs are broadcast per channel per day. Therefore, a one-week database includes average information for 37 x 80 x 7 = 20,720 programs. Although many shows are repeated on a daily basis, it is clear that even a week's worth of show listings for the average cable system is a very large amount of data. Furthermore, although much of the data can be compiled in advance, a substantial amount of listings must be added, and schedule changes justified, shortly before the data is transmitted to the various cable systems. The volume of data makes it difficult and time-consuming to manually ensure its reliability.
Finally, certain programs, primarily sporting events, are not scheduled as far in advance as other programs. For example, although a time slot may be set for a baseball game, it may not be known until a week or less before the scheduled game the particular game to be broadcast. Therefore, there is a need to efficiently and quickly identify entries in a listing database that requires editing one way or another to add information or correct errors.
IS 2 333 210 T3
A database of program listings with incorrect listings or incomplete information is of limited utility. Therefore, there is a need to ensure the reliability of data transmitted to cable systems and ultimately to viewers. However, as the volume of data is very large, there is a need for an automatic procedure for data verification to reduce the number of annual hours required. Therefore, there is a need for an automated system and method to review the EPG data and flag any errors in the EPG. Furthermore, there is a need to provide a list of any such errors to a database publisher to allow the publisher to take corrective actions as necessary. Also, different data may need to be generated for different cable systems because, for example, each cable system may have different local programming or pay-per-view programs or schedules.
A complicating factor is the need for a program listing database that is compatible with a plurality of different platforms. Different cable systems may have different hardware configurations at the input end of the cable system and different set-top boxes at viewer locations. For example, EPGs typically present program listings in a grid format with columns representing different time slots and with rows representing different channels. Decoders vary in their text presentation capabilities. Some may present text using a proportional font while others use a conventional font. Additionally, some are configured to display symbols in the grid cells in addition to text, which decreases the space available to display text. Therefore, the database must be configured to accommodate the varying capabilities of the decoders. One way to achieve this is by editing the text (program titles, copy, station IDs, and any other text included in the EPG) to abbreviate any text that does not fit in a particular cell of the grid. A system to assist in this "text wrapping" process is described in co-pending application serial number 08 / 247,059. Therefore, when verifying data prior to transmission to a cable system, it is necessary to specify the platform on which the EPG operates so as to determine whether the listings are appropriately edited to use the particular platform.
Document US 5,311,423 describes a method for managing the information used and generated in the programming and display of performances on a video network. Exposure planning is generated through representations of an exposure management process running on a computer.
The invention is defined in the independent claims. Optional features of the invention are defined in the dependent claims.
The system and method of the present invention provides an automatic check of the data of the program listings in the database.
Before being processed by the data verification system of the present invention, the database of television program schedule listings may undergo initial processing as follows. First, data is collected from the various information providers and checked for high-level errors. Next, it may be required to normalize the data to the structure and format of the EPG database as the information collected from different sources may use different formats and syntax. Finally, the data can be processed with a text wrapping system to determine if any title in the database requires editing to fit within a grid cell of a predetermined size for any of the different platforms the EPG will work on. Alternatively, the text wrapping process can be incorporated as part of the listing verification process so that text that requires editing to fit within a particular grid cell size is identified and presented to the user for editing if it is not already. included in a pro-edited text library or lookup table.
In this phase, the listing and procedure verification system of the present invention operates on the data to check for any errors in the data. In particular, checks can be performed for any missing stations, schedule gaps, schedule overlaps, missing titles, missing copy, missing fields (i.e. run time, time slot, show type), movie ratings absent, program source absent, PPV price absent, PPV events at non-PPV station, non-PPV event at PPV station, inappropriate language, long headlines, long copy, and editorial errors. "Long" as used in this document refers to text that is too long to fit within the grid space allotted in the program guide. Errors are automatically copied to output files and different files are used for each of the above parameters.
Brief description of the drawings
Fig. 1 is a block diagram showing an EPG transmission system including the data verification system of the invention of this document.
Fig. 2 is a flow chart illustrating the overall operation of the data verification system of the invention of this document.
Fig. 3 is a flow chart showing the operation of the gap and overlap verification step in programming an embodiment of the data verification system of the invention of this document.
IS 2 333 210 T3
Fig. 4 is an illustration of the user interface for setting the parameters of an embodiment of the data verification system of the invention of this document.
Fig. 5 is an illustration of a post-verification correction menu of one embodiment of the data verification system of the invention of this document.
Fig. 6 is an illustration of the correction editor feature of one embodiment of the data verification system of the invention of this document.
Detailed description of the present preferred embodiment gives
System configuration
Fig. 1 is a block diagram schematically illustrating the general configuration for one embodiment of an electronic program guide system. The information for the database can originate from several different information providers. For example, one source may provide all national listings which may include network schedules (both broadcast and cable), and regional program schedules, or alternatively, it can be multiple sources of such information. A single second source (or combination of second sources) can provide local listings information that includes schedules for locally sourced programs, channel maps for individual cable systems, and information on shared channels (single cable channels that carry different programming during different times). parts of the day). A third party information provider (or multiple providers) can supply all listing information for pay-per-view events. It may even be the case that each of these categories of program schedule information is provided by multiple sources. Of course, it is also possible that all information is collected and provided by a single source or that overlapping information is collected from multiple sources. In addition, there may be other information providers such as billing vendors that supply billing information.
Due to the fact that the listing database is likely to be comprised of information from a variety of different sources that may or may not supply the data in the desired format, it may be necessary to perform a format conversion and / or verification of the syntax on the received data before loading it into the database. This stage is necessary to ensure that the data is in a uniform format in the database for further processing. A second function that can be performed on the data is pre-verification editing. An example of said editing is the processing of the data by the text adjustment system described in the pending application together with the present one with serial number 247,059. Wrap-around processing in effect expands the database to include multiple values for text fields for individual listings to accommodate different EPG platforms. For example, varying amounts of space are allocated for program titles for different platforms. Also, within the same platform, multiple versions of a title may be required to fit within the grid cells, for example, for a two hour, 30, 60, 90, and 120 minute program. The text wrapping system determines whether an edited version of a title is required to fit within the designated space for a particular platform and grid cell. The database is then edited to include a shortened version of the title as well as the full title for the listing. It is also possible that a portion of the data already contains multiple versions of titles. In some cases, it may be desirable to incorporate the word wrap process into the verification utility by using the verification utility to first identify the listings that require word wrap processing and then run the text wrapping system on these identified listings. Depending on the particular implementation of the EPG transmission system, it may be desirable or necessary to perform additional pre-verification processing on the data.
After the pre-verification processing steps, the listings database is assembled and processed by the data verification system. As shown in Fig. 1, the data verification system works on the database of the listings and generates error reports for errors found in it. Editing systems for program listings and channel maps are used to make changes to the data in the listings database. The data verification system works under user control to determine which data fields have to be verified. Alternatively, the system can work fully automatically to check all data fields. An advantageous feature of an embodiment of the present invention is the creation of reports for each type of error. Reports allow the publisher to reconcile any missing or conflicting information in the database with the information provider. Reports can be generated electronically and then viewed on a computer, stored electronically, or printed as hard copies. The utility works on the basis of information data from the program listings for a user-definable period of time, such as a week. For each verification utility, stations can be selected individually, by channel map, platform type, multi-system operator ("MSO"), or arbitrary grouping. Each of the processing options associated with the system is discussed below. The operation of the various options is discussed in the section headed "System Operation."
1. Absent Stations
To determine if any stations are absent from the database, the listings database (or any subset thereof) is checked against a second database that includes a list of all stations to be included in the database. database of the listings or subset, such as a station list file for
ES 2 333 210 T3 a particular cable system. The Missing Stations Verification utility then generates a Missing Stations list file.
2. Gaps and Overlaps in Schedule
It is important to ensure that there are no gaps in program scheduling. An indication of the daily broadcast periods for each station is included in the database. The database is then checked to determine whether, for any designated station, there is a gap between the end time of one program and the start time of the next program. End times for listings are calculated by adding the program time span (total time until the start of the next listing) to the start time. The system provides the flexibility of being able to specify any time interval for gaps and overlaps. If the beginning of the time slot for a channel does not coincide with the beginning of a program, the system will check the “intersected listing”, that is, the listing that starts before and ends after the beginning of the specified time range. The schedule holes are copied to a file that includes the date, station, start time, and end time of the hole or other information sufficient to uniquely identify the schedule hole.
This option also checks for overlaps in a similar way. If the listing data indicates that a program on a particular channel starts before the sum of the start time plus the execution time of the previous program, the listing is marked as a program overlap error.
3. Absent Titles
The listings database is checked for missing titles for program events, that is, where the listing has no title field. Listings with missing titles are copied to a file that includes the date, season, and start time of the listing.
Four. Copy Absent
Certain program listings include additional descriptive information in addition to the program title called "copy." These include movies, live sports, and pay-per-view programs. Additional information may also be provided for other programs as well as determined by the performance standards for the EPG. The copy absent option checks these listings for missing copies and copies any of those listings to a file with enough context data to identify the show, such as the show's date, station, start time, and title.
5. Missing Fields
This option checks the database listings to ensure that all required fields for each type of program are present. For example, according to EPG performance standards defined by the EPG provider, schedule information for pay-per-view and premium movies must include an MPAA rating as this parameter can be used by viewers. to block certain movies. Therefore, the missing fields option will check that the MPAA rating, as well as the other fields dictated by the performance standards, are in the database for the pay-per-view and premium listings. For PPV events, the operating rules may further dictate that the scheduling information includes pricing information, a phone number to request the event, and a promotional copy used to advertise the event. The missing fields option would then check these fields also for programs called PPV events. Also, performance standards may dictate different required fields for other types of listings. Listings with missing fields are copied into a file that includes the date, season, and start time of the program, as well as an identification of the missing field.
6. Missing Movie Ratings
The listings database includes MPAA movie ratings for movies showing on premium and PPV channels. Any such movie with missing ratings is copied to a file that includes the date, season, start time, and movie title.
7. Long Titles
Some or all of the data in the database may already have been processed with the text wrapping system to provide multiple titles when wrapping is required in the grid cells. The long titles option allows the user to perform an additional check for any title that does not fit within the maximum space allowed for each of the selected platforms and also identifies those entries not yet processed with the text wrapping system. Any such title found is copied into a file that includes the platform, the date, the station, the start time, and the title of the listings. This option can be selected for any platform on which the EPG works. Titles can then be processed using the text wrapping utility and the re-run verification utility on the database.
IS 2 333 210 T3
8. Long Copy
This option is similar to the long copy option and searches the listing database for the copy for movies, live sports, pay-per-view programs, and any other entry with a copy that does not fit in the space allowed. for selected platforms. Any such listings found are copied into a file that includes the platform, date, station, start time, and title of the listings.
9. Editorial Errors
The list database looks for editorial errors that may include, among others, duplicate titles or years in the copy of a film, references to other days, and certain phrases such as "at press time" (at the present time (nowadays)). Editorial errors are copied to a file that includes the date, season, start time, and description of the error found for each listing. Of course, these particular errors represent only a particular embodiment of the system designed to detect the most common types of errors - the utility can easily be modified to detect any specified editorial errors.
10. Language
This option searches the database of listings for inappropriate language in titles, copy, and messages. The listings database is checked against a language dictionary that includes any language deemed inappropriate. Listings with that language are copied into a file that includes the date, station, start time, and inappropriate language found.
eleven. Other Verification Options
The above options for verifying the listing database data are not exhaustive. The verification system can be easily configured to verify any field in the database. Some of the other fields that can be checked are: absent program type, absent time slot, absent execution time, absent program source, PPV event on a non-PPV station, non-PPV event on a PPV station, and price or promotional copy absent for PPV events. Program type refers to broadcast topo, ie, broadcast, PPV, near video on demand (“NVOD”), and so on. The time span of a program is the total time from the beginning of one program to the start of the next program, including commercial time, and the program execution time is the actual execution time of the program itself. The time span for a program should exceed (or be slightly less than) its execution time, which is another possible verification option. Program source indicates the source of the program. The program type and station type are used to check if a PPV event is scheduled on a non-PPV station and if a non-PPV event is scheduled on a PPV station.
Those skilled in the art will recognize that the particular information copied to the appropriate file is not critical when an error or omission is located. All that is necessary is to supply enough context data to uniquely identify the faulty listing for correction purposes.
The data verification system can also be configured with a bug navigation feature as follows. After processing the database or designating the subset of the database and generating the various error reports, the system can be configured to return to the parts of the database identified as containing errors, retrieve the appropriate entries from the database. data, and present them to the user for correction. After correction, the database can be processed again with the data verification utility to check for errors. In this way, an iterative process can be implemented to correct and verify all the data in the database.
System Operation
The data verification utility works as shown in the flow chart in Fig. 2. The user is first asked to specify the platform (s) and channel maps for which the utility has to run. Alternatively, with a database such as that described in Tables 1 and 2, the user only needs to specify the cable group, system, or input end. The verification system can then extract the appropriate platform (s) and channel map (s) from the database. Next, the desired verification options are chosen. Alternatively, the user can choose to enable all verification options. Depending on the options selected, the user may be prompted for additional information. If the "Check Long Titles" or "Check Long Copy" option is selected, the user must enter the path and filename in a font library file to determine the appropriate font to use to display the text. If the selection of a platform uniquely determines the source, this step can be eliminated as the file can be automatically selected. The particular font chosen affects the space required to present the text. Of course, the user can be supplied with a list of possible files and only has to select a file from the list presented. If the "Check Missing Stations" option is selected, the user will be prompted to enter a master list of all stations that should appear in the listings database or a subset of stations that represent the list for a particular cable system. . This information can be contained in a station list file. If the "Check Language" option is selected, the user enters a dictionary file of
ES 2 333 210 T3 language that contains a library of inappropriate words. Finally, the user is prompted to enter a path and file names for the check-out reports. Of course, a default path and filename can be used. Different verification reports are generated for each selected option. The user can also choose to combine chosen reports into a single report.
Alternatively, to minimize the amount of user interaction required, the database can be configured to define all the necessary parameters so that the user only selects the cable system and verification options. For each cable system (or cable group or input end), the database contains a table with the correct platform (s) and a table that lists the different sources available for use with the platforms so that the user does not have to designate the font library file. Also, the language dictionary file can be defined by platform choice, eliminating the need for the user to define the file.
After entering all the requested information, the data verification utility presents the selected options and user-entered parameters for the user to confirm. Then the data verification process begins. After processing, the system presents the user with a collection report showing the total cumulative errors located for each of the selected options. In addition, output reports are generated for each of the selected options, including all the listings found with the indicated error or omission.
Table 1 is an alphabetical list of all data fields in one embodiment of a relational database for television program listings. The table shows the data format, size, and range for each field. Not all data fields are used for every entry in the database. For example, fields such as actor_name (actor name), mpaa_rating (mpaa rating), mpaa_ra_decription (description mpaa rating), mpaa_reason (mpaa reason), mpaa_reason_code (mpaa reason code), star_rating (main rating), and year (year) they will generally only be used for movies. Those skilled in the art will recognize that the data verification utility described can be designed to work with any database configuration. Table 2 illustrates the structure of the relational database of Fig. 1 showing how the various fields of the database are organized as well as the primary keys (pk) and foreign keys. Bold typeface indicates the name of a table in the database, and the entries listed below are the fields that the table comprises.
TABLE 1
Element actor_name (actor name) available_until (available until) barker_description
Referenced by = \ name of actor \ Movie Credits type VARCHAR2 (64) (movie credits) = \ date & time YCTV program Schedule ends \ (schedule) type DATE = \ text describing 'barker_type' \ Barker_Type (advertising description) type VARCHAR2 ( 32) barker_type (hook type)
Definition = \ video barker type \ type NUMBER (4, 0) range {0 ... 5} (advertising type) Barker_Type (advertising type) lnstance_Time (time period) Channel_Map
ES 2 333 210 T3 (channel map) billing (billing) category (category) channel_number (channel number) channeljabel (channel label) character (character)
<td>= \ actor credit ranking \</td><td>Movie_Credits</td>
<td>type NUMBER (2, 0)</td><td>(movie credits)</td>
<td>= \ program category \</td><td>Category</td>
<td>type VARCHAR2 (16)</td><td>(category)</td>
<td>unique</td><td>Program (Program)</td>
<td>= \ headend channel number \</td><td>Channel_Map</td>
<td>type NUMBER (7, 0)</td><td>(channel map)</td>
<td>range {0 ... 9,999,999}</td><td>lnstance_Time time period) Channel_Map_PPV (PPV channel map)</td>
<td>= \ parallel channel station label \</td><td>Channel_Map</td>
<td>type VARCHAR2 (16)</td><td>(channel map)</td>
<td>Channel_Map_PPV</td><td>lnstance_Time (period of time)</td>
<td>= \ 8 bit ASCII character \</td><td>Pixel_Map</td>
<td>type NUMBER (3, 0) range {0 ... 255}</td><td>(pixel map)</td>
characters_field_width = \ platform field width Platform_Field (field width (characters) \ (platform field) characters) closed_caption (subtitle) color_class (color class) company_address (company address) type NUMBER (4, 0) range {1 ... 9,999} = \ closed captioning indicator \ Schedule type NUMBER (5, 0) [BOOLEAN] (schedule) range {YES | NO} = \ color state of movie \ type VARCHAR2 (16) range {'BW | 'Color' 'Colorized'} = \ cable company address \ type VARCHAR2 (512)
Color_Class (color class) | Schedule Cable_Company (cable company)
ES 2 333 210 T3 company_id = \ cable system company Cable_Company
<td>(company id)</td><td>identifier \</td><td>(cable company)</td>
<td></td><td>type NUMBER (8, 0)</td><td>Company_Contact</td>
<td></td><td>range {1 ... 99,999,999}</td><td>(company contact) MSO_Company (MSO company)</td>
<td>companyjogo</td><td>= \ cable company logo \</td><td>Cable_Company</td>
<td>(company logo)</td><td>type VARCHAR2 (512)</td><td>(cable company)</td>
<td>company_name</td><td>= \ cable company description \</td><td>Cable_Company</td>
<td>(company name)</td><td>type VARCHAR2 (512)</td><td>(cable company)</td>
<td>company_owner</td><td>= \ cable company yam \</td><td>Cable_Company</td>
<td>(company owner)</td><td>type VARCHAR2 (128)</td><td>(cable company)</td>
<td>contact_email</td><td colspan="2">= \ contact electronic mail MSO_Contact</td>
<td>(email contact)</td><td>address \</td><td>(contact MSO)</td>
<td></td><td>type VARCHAR2 (64)</td><td>Company_Contact (company contact)</td>
<td>contact_fax</td><td>= \ contact fax phone number \</td><td>MSO_Contact</td>
<td>(contact fax)</td><td>type VARCHAR2 (16)</td><td>(MSO contact) Company_Contact (company contact)</td>
<td>contact_name</td><td>= \ contact yam \</td><td>MSO_Contact</td>
<td>(contact name)</td><td>type VARCHAR2 (64)</td><td>(MSO contact) Company_Contact (company contact)</td>
<td>contact_phone</td><td>= \ contact phone number \</td><td>MSO_Contact</td>
<td>(contact phone)</td><td>type VARCHAR2 (16)</td><td>(MSO contact) Company_Contact (company contact)</td>
<td>day</td><td>= \ day of week code \</td><td>Day</td>
<td>(day)</td><td>type CHAR</td><td>(day)</td>
range {'N' | 'M' | T | * W | Ή '| 'F' | Channel.Map 'S'} (channel map)
Channel_Map_PPV (PPV channel map) day_description = \ day of week description \ Day
ES 2 333 210 T3 (day description) daylight_savings_time (summer time) do_textfit (make text fit) end_time (end time) event_datetime (event date) event_price (event price) type VARCHAR2 (32) range {'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | (day) 'Friday<sup>1</sup>1 'Saturday *} = \ daylight savings time Headend indicator \ (input end) type NUMBER (5, 0) [BOOLEAN] range {YES | NO} = \ perform textfit on associated Platform text \ (platform) type NUMBER (5, 0) Field_Type (field type) = \ station channel broadcast end Channel_Map time \ (channel map) type DATE = \ EST timestamp of broadcast Schedule event \ (schedule) type DATE Schedule_Text (schedule text) = \ broadcast event cost to viewer Schedule \ (schedule) type NUMBER (7, 2) Channel_Map_PPV range {0.00 ... 99.999.99} (PPV channel map)
ES 2 333 210 T3 field_description (description field) = \ freíd type description \ type VARCHAR2 (32) 1
TVG title
Field_Type (field type)
Ext title
Altl title
Grld titlee
Short copy Long copy Promo copy Originator Guideline
<td colspan="2"> 100</td><td>TVG title (title) 30 min.</td>
<td></td><td> 101</td><td>TVG title (title) 60 min.</td>
<td></td><td> 102</td><td>TVG title (title) 90 min.</td>
<td></td><td> 103</td><td>TVG title (title) 120</td>
<td></td><td> 200</td><td>min.</td>
<td></td><td> 201</td><td>Ext title (title) 30 min.</td>
<td></td><td> 202</td><td>Ext title (title) 60 min.</td>
<td></td><td> 203</td><td>Ext title (title) 90 min. Ext title (title) 120 min.</td>
<td>fieldjines</td><td>= \ number of screen field lines \</td><td>Platform_Field</td>
<td>(field lines)</td><td>type NUMBER (2, 0) range {1 ... 99}</td><td>(platform field)</td>
<td>field_source_type</td><td>= \ source of a text fitted value \</td><td>Platform_Field</td>
<td>(field source type)</td><td>type NUMBER (3,0)</td><td>(platform field) Platform_Value (platform value)</td>
field_type (field type) font_type (font type) = \ type of named field on Field_Type platform \ type NUMBER (3, 0) Platform_Field Program_Map Schedule_Text = \ type of font used on platform \ Font_Type type NUMBER (4, 0) (font type ) (field type) Platform_Value (platform value)
<td colspan="3">IS 2 333 210 T3</td>
<td></td><td>range {1 ... 9,999}</td><td>Character_Pair_Keming (kerning pairs characters)</td>
<td></td><td></td><td>Platform_Field</td>
<td></td><td></td><td>(platform field)</td>
<td>group_description</td><td colspan="2">= \ physical headend group Groups</td>
<td>(group description)</td><td>identifier \</td><td>(groups)</td>
<td></td><td>type VARCHAR2 (128)</td><td></td>
<td>group_id</td><td colspan="2">= \ logical system group identifier Groups</td>
<td>(group id)</td><td>\ type NUMBER (8, 0)</td><td>(groups)</td>
<td></td><td>range {1 ... 99,999,999}</td><td>Groups_System</td>
<td></td><td>unique</td><td>(group system)</td>
<td>guideline_weight</td><td colspan="2">= \ TV Guide recommendation Schedule</td>
<td>(guide weight)</td><td>level \ type NUMBER (2, 0) range {0 ... 4}</td><td>(programming)</td>
<td>headend_id</td><td>= \ target headend identifier \</td><td>Headend</td>
<td>(input end id)</td><td>type VARCHAR2 (32)</td><td>(entrance end)</td>
<td></td><td>unique</td><td>System_Headend (input end system) Map_Time (map time)</td>
<td>instance_end_datetime</td><td colspan="2">= \ end date / time of scheduled lnstance_Time</td>
<td>(end date)</td><td>event \</td><td>(time frame)</td>
<td></td><td>type DATE</td><td></td>
<td>Nstance_start_datetime</td><td colspan="2">= \ start date / time of scheduled lnstance_Time</td>
<td>(start date)</td><td>event \</td><td>(time frame)</td>
<td></td><td>type DATE</td><td></td>
<td>kerning_value</td><td>= \ kerning space value (pixels) \</td><td>Character_Pair_Kerning</td>
<td>(kerning value)</td><td>type NUMBER (2, 0)</td><td>(even footage</td>
<td></td><td>range {1 ... 99}</td><td>characters)</td>
<td>last_verify_time</td><td colspan="2">= \ last verification date and time \ Log_Control</td>
<td>(last verification time)</td><td>type DATE</td><td>(register control)</td>
<td>left_char</td><td>= \ left character of kerning pair \</td><td>Character_Pair_Kern¡ng</td>
ES 2 333 210 T3 (character kerning) (left char.) Live indicator (live indicator) load_date (load date) load_end_time (load end time) load_start_time (load start time) log_file_drive (log files unit) log_id (log id) log_file_seqno (n ° sec. log file) long_station_id (long station id) long_station_name (long station name) map_end_time (map end time) map_start_time (map start time) map_time_id (map time id) pairs (program)
Log_Control (register control) Log_Control (register control) Log_Control (register control) type NUMBER (3, 0) range {0 ... 255} = \ program broadcast state Program (live / taped) \ type NUMBER (5, 0) range {YES | NO} = \ last load process date \ type DATE = \ last load process end time \ type DATE = \ last load process start time \ type DATE = \ log file drive specification \ Log_Control type VARCHAR2 (128) = \ log control file identifier \ type NUMBER (2, 0) range {1} unique = \ last log file sequence number \ Log_Control type NUMBER (2, 0) = \ station identifier long form \ type VARCHAR2 (64) = \ station yam (long form) \ typeVARCHAR (512) = \ channel map block start time \ type DATE = \ channel map block end time \ type DATE = \ channel map block designator Map_Time \
type VARCHAR2 (48) unique (register control) Log_Control (register control) (register control) Station (station) Station (station) Map_Time (map time) Map_Time (map time) (map time) lnstance_Time (time period) Channel_Map (map channel) Channel_Map_PPV
ES 2 333 210 T3 mpaa_rating (mpaa rating) = \ MPAA rating character \ type CHAR range {'Ν' | 'G' | 'P' | '3' | 'R' | '7'} = \ MPAA rating code \ (PPV channel map) MPAA_Rating (mpaa rating) Movie (movie) mpaa_rating_code (mpaa rating code) type CHAR (10) = \ MPAA rating code description \ MPAA_Rating type VARCHAR2 (128) range { 'NR - Not Rated' | 'G - General Audiences' | 'PG - Parental Guidance' | 'PG-13 - Parental mpaa_ra_description (description cal. mpaa) (mpaa rating) mpaa_reason (mpaa reason) mpaa_reason_code (mpaa reason code) mso_address (mso address)
Guidance (some material not suitable for under 13 yrs) '| 'R - Restricted' | 'NC-17 - No one under 17 admitted'} = \ MPAA rating reason description \ type VARCHAR2 (64) range {'adult themes' | 'adult situations' | 'sexual situations' | 'strong language' | 'violence' | 'nudity' | 'partial nudity'} = \ MPAA rating reason code \ type CHAR range {Γ | 'A' | 'S' | 'L'I'V'I'N'I'P'} = \ multi system owner address \ type VARCHAR2 (512)
MPAA_Reason (mpaa ratio)
Movie MPAA Reason (mpaa movie ratio)
MPAA_Reason (mpaa ratio)
MSO
IS 2 333 210 T3
<td>mso_id</td><td>= \ multi system owner identifier \</td><td>MSO</td>
<td>(id mso)</td><td>type NUMBER (8, 0)</td><td>MSO_Contact</td>
<td></td><td>range {1 ... 99,999,999}</td><td>(MSO contact) MSO_Company (MSO company)</td>
<td>msojogo</td><td>= \ multi system owner logo \</td><td>MSO</td>
<td>(mso logo)</td><td>type VARCHAR2 (512)</td><td></td>
<td>mso_name</td><td>= \ multi system owner</td><td>MSO</td>
<td>(mso name)</td><td>description \ type VARCHAR2 (512)</td><td></td>
<td>mso_owner</td><td>= \ multi system owner yam \</td><td>MSO</td>
<td>(owner mso)</td><td>type VARCHAR2 (128)</td><td></td>
<td>onscreen_text_id</td><td>= \ TV Guide on screen yam \</td><td>Edited_Station</td>
<td>(id text on screen)</td><td>type NUMBER</td><td>(edited station) Platform_Station (platform station) Text_Catalog (texjd) (catalog. text (text id))</td>
<td>original_air_date</td><td>= \ YCTV event first broadcast \</td><td>Schedule</td>
<td>(original issue date)</td><td>type DATE range {SYSTEM_MIN_DATE ... SYSTEM_MAX_DATE}</td><td>(programming)</td>
<td>pin</td><td>= \ TV Guide program identifier \</td><td>Program</td>
<td>(Pin)</td><td>type CHAR (20) format pppppppp.ssssssss.XX where (XX is MV = movie | SR = series | MS = miscellaneous | SM = series master (for lock-out) | UN = unknown (is not assigned))</td><td>(Program)</td>
<td>pixel_map</td><td>= \ character pixel set identifier \</td><td>Valid_Pixel_Map</td>
<td>(pixel map)</td><td>type NUMBER (2, 0)</td><td>(valid pixel map)</td>
IS 2 333 210 T3
<td colspan="2">range {1 ... 99}</td><td>FontType (font type) Pixel_Map (pixel map)</td>
<td>pixel_width</td><td>= \ width of character (pixels) \</td><td>Pixel_Map</td>
<td>(pixel width)</td><td>type NUMBER (2, 0) range {1 ... 99}</td><td>(pixel map)</td>
<td>pixels_field_width</td><td>= \ width of platform field (pixels) \</td><td>Platform_Field</td>
<td>(pixel field width)</td><td>type NUMBER (4. 0) range {1 ... 9,999}</td><td>(platform field)</td>
<td>platform_text_id</td><td>= \ platform field text catalog id \</td><td>Platform_Value</td>
<td>(platform text id)</td><td>type NUMBER</td><td>(platform value) Schedule_Text (programming text) Text_Catalog (textjd) (catalog text (text id))</td>
<td>platformjd</td><td>= \ target display unit platform \</td><td>Platform</td>
<td>(platform id)</td><td>type VARCHAR2 (16)</td><td>(platform)</td>
<td></td><td>range {'Catalyst Visual' |</td><td>Platform_Field</td>
<td></td><td>'ESP 8600x' |</td><td>(platform field)</td>
<td></td><td>'ESP SA Grid' |</td><td>PlatformStation</td>
<td></td><td>'ESP Turbo' |</td><td>(platform station)</td>
<td></td><td>'Starnet Passive'}</td><td>Platform_Value (platform value) Edited_Station (station edited) System (system)</td>
<td>preview_end_offset</td><td colspan="2">= \ PPV preview window end time Schedule</td>
<td>(compensation</td><td>offset\</td><td>(programming)</td>
pre-release end) type DATE Channel_Map_PPV (PPV channel map) preview_start_offset = \ PPV preview window start Schedule (pre-time offset start \ (schedule) premiere) type DATE Channel_Map_PPV
ES 2 333 210 T3 print_run_time (run time) (PPV channel map) = \ actual broadcast event run Schedule time \ (schedule) type NUMBER (7, 0) range {0 ... 9,999,999} where (0: = continuous running time) programjd (program id) program_text_id (program text id) program_type (program type)
<td>= \ program identifier \</td><td>Program</td>
<td>type NUMBER</td><td>(Program)</td>
<td>unique</td><td>Movie</td>
<td>Movie_MPAA_Reason</td><td>(movie)</td>
<td>Program_Map</td><td>Movie_Credits</td>
<td>Schedule</td><td>(movie credits)</td>
<td>= \ program event field</td><td>text Program_Map</td>
<td>identifier \</td><td>(program map)</td>
<td>type NUMBER</td><td>Platform_Value</td>
<td>Schedule_Text</td><td>(platform value)</td>
<td>Text_Catalog (textjd)</td><td></td>
<td>= \ type of broadcast event \</td><td>Program Type</td>
<td>type VARCHAR2 (8)</td><td>(program type)</td>
<td>range {Other '|</td><td>Schedule</td>
<td>'PPV |</td><td>(programming)</td>
<td>'YCTV |</td><td></td>
<td>'NVOD'}</td><td></td>
purchase_call _phone (acquisition phone) purchase_end_offset (acquisition completion offset) purchase_start_offset = \ PPV purchase cali phone Schedule number \ (schedule) type VARCHAR2 (16) Channel_Map_PPV (PPV channel map) = \ PPV purchase window end Schedule time offset \ (schedule) type NUMBER (4, 0) Channel_Map_PPV (PPV channel map) = \ PPV purchase window start Schedule (start time offset \ acquisition) type NUMBER (4, 0) (schedule) Channel_Map_PPV
ES 2 333 210 T3 right_char (right char) role yam (role name) searchtype (search type) series id (serial id) seq no (n ° sec) slot run time (execution space) star_rating (main rating) start time (start time) (PPV channel map) = \ right character of kerning pair \ Character_Pair_Keming type NUMBER (3, 0) range {0 ... 255} = \ actor alias name \ (character kerning) Movie Credit (movie credit) pairs type VARCHAR2 (64) = \ word search type - whole word Wordlist or not \ (word list) type NUMBER (2, 0)? range {0 11} = \ program series identifier \ type NUMBER (7, 0) range {1 ... 9,999,999} = \ sequence number to maintain Day order \
Schedule (schedule) type NUMBER (2, 0) range {1 ... 99} = \ broadcast event run time Schedule time (minutes) \ type NUMBER (7, 0) range {0 ... 9,999,999} where ( 0: = continuous running time) = \ TV Guide movie quality rating Movie \ (movie) (day)
Movie MPAA Reason (mpaa movie reason) (schedule) type NUMBER (2, 0) range {0 ... 5} = \ broadcast station channel Channel_Map start time \ type DATE station_description (station description) = \ station type description \ type VARCHAR2 (32) range {'Broadcast' | 'Cable' | (channel map) Channel_Map_PPV (PPV channel map) Station_Type (station type)
ES 2 333 210 T3 'Premium' | stationjd (station id) 'Select Entertainment' | 'PPV' | 'Hits at Home' |
YCTV) = \ broadcast station cali letters \ Station type VARCHAR2 (16) unique PlatformStation Schedule ChannelMap Channel_Map_PPV Schedule Text (station) Edited_Station (station edited) lnstance_Time (time period) station_priority (station priority) = \ schedule conflict resolution Channel_Map station_type (type station) system_descript¡on (station description) systemjd (system id) priority \ type NUMBER (2, 0) range (1 ... 5 ) = \ type of station class \ type NUMBER (2, 0) range {10 ... 99} = \ system description \ type VARCHAR2 (64) = \ system identifier \ type NUMBER (8, 0) range {1 .. . 99.999.999} unique (channel map) lnstance_Time (time period) Channel_Map_PPV (PPV channel map) Station_Type (station type) Station (station) System (system) System (system) Groups_System (group system) System_Headend (system input end) text (text) text_id = \ catalog text character string \ Text_Catalog type VARCHAR2 (512) (text catalog) = \ catalog text identifier \ Text Catalog
ES 2 333 210 T3 (text id) timezone type NUMBER = \ broadcast event time zone \ (text catalog)
Timezone type CHAR (3) range {ET | 'CT | 'MT' | 'PT |
ΆΤ | ΉΑΤ '' LT '| 'ST} (time zone) Headend (input end)
<td>touched</td><td>= \ text last touched timestamp \</td><td>Text_Catalog</td>
<td>(touched)</td><td>type DATE</td><td>(text catalog)</td>
<td>tz_description</td><td>= \ timezone description \</td><td>Timezone</td>
<td colspan="2">(time zone description) type VARCHAR2 (64)</td><td>(time zone)</td>
<td>Word</td><td>= \ proscribed work \</td><td>Wordlist</td>
<td>(word)</td><td>type VARCHAR2 (50) unique</td><td>(List of words)</td>
<td>year</td><td>= \ movie release year \</td><td>Movie</td>
<td>(year)</td><td>type NUMBER (4, 0) range {0 ... 9,999}</td><td>(movie)</td>
TABLE 2
Table
Attribute / Primary Key
Exterior Key Table
Barker_Type pk = barker_type barker_type barker_description
Cable_Company pk = companyjd companyjd company_name company_owner company_address companyjogo
Category pk = category category
ChannelMap
ES 2 333 210 T3 pk = map_time_¡d + channel number + channeljabel + station_priority + day + start_time map_time_id channel_number channeljabel station _priority day startjime endjime stationjd barkerjype
Channel_Map_PPV pk = mapjimejd + channel_number + channeljabel + stat¡on_priority + day + startjime mapjimejd channejnumber channeljabel station_priority day startjime purchase_start_offset purchase_end_offset purchase_call_phone preview_start_offset preview_end_offset event preview_end_offset
Character_Pair_Kerning
Map_Time
Day
Station
BarkerJType
MapJTime
Day
IS 2 333 210 T3
ColorClass
Company_Contact
Day
EditedStation
Field_Type
Font_Type pk = fontjype + left_char + right_char fontjype left_char right_char keming_valiie pk = color_class color_class pk = companyjd + contact_name companyjd contact_name contactj) hone contactjax contact_email pk = day day day_description seqno pk = platform Jdype + stationjdje fieldjdjd fieldjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjd field platform
Font_Type
Cable_Company
Platform
Station
Text_Catalog (textjd)
IS 2 333 210 T3
Groups
Groups_System
Headend lnstance_Time
Log_Control
<td>pk = font_type fontjype pixeljnap</td><td>Valid_PixelJ</td>
<td>pk = groupjd</td><td></td>
<td>groupJd group_description</td><td></td>
<td>pk = groupjd</td><td></td>
<td>+ system id</td><td></td>
<td>groupjd</td><td>Groups</td>
<td>systemjd</td><td>System</td>
<td>pk = headend Jd</td><td></td>
<td>headendjd</td><td></td>
<td>timezone</td><td>Timezone</td>
<td>daylight_savingsjime</td><td></td>
<td>pk = mapjimejd</td><td></td>
<td>+ channel_number</td><td></td>
<td>+ channeljabel</td><td></td>
<td>+ station_priority</td><td></td>
<td>+ instance_start_datetime</td><td></td>
<td>mapjimejd</td><td>MapJTime</td>
<td>channel_number</td><td></td>
<td>channeljabel</td><td></td>
<td>station_priority</td><td></td>
<td>instance_start_datetime</td><td></td>
<td>instance_end_datetime</td><td></td>
<td>stationjd</td><td>Station</td>
<td>barkerjype</td><td>BarkerJType</td>
pk = log Jd logjd load date load_start_time
ES 2 333 210 T3 load_end_time last_verify_time log_file_seqno log_file_drive
Map_Time pk = map_time_id map_timejd headendjd map_start_time map_end_time
Movie pk = program Jd programjd mpaa_rating year star_rating
Movie_Credits pk = programjd + billing programjd billing actor_name role_name
M ovie_M P AAReason pk = programjd + mpaa_reason programjd mpaa_reason seq no
MPAA_Rating pk = mpaajating mpaa_rating mpaa_rating_code mpaa_ra_description
MPAA_Reason
Headend
Program
MPAA_Rating
Movie
Movie
MPAA_Reason
IS 2 333 210 T3
MSO
MSO_Company
MSO_Contact
Pixel_Map
Platform
Platform_Field pk = mpaa_reason mpaa_reason mpaa_reason_code pk = msojd msojd mso_name mso_owner mso_address msojogo platform pk = msojd + companyjd msojd companyjd pk = msojidth + contact_name msojd contact_name pixel contact_mapmail + contact_name msojd pixel platform contact_emapmail platform pjjd contact_namekmapmail platform pjjd contact_phoned
MSO
Cable_Company
MSO
Valid_Pixel_Map
IS 2 333 210 T3
<td></td><td>+ field_type platformjd fieldjype characters_field_width pixels_field_width fieldjines field_source_type fontjype</td><td>Platform Field JType Field JType (fieldjype) Fon JType</td>
<td>Platform_Station</td><td>pk = platformjd + stationjd platformjd</td><td>Platform</td>
<td></td><td>stationjd</td><td>Station</td>
<td></td><td>onscreenjextjd</td><td>Text_Catalog (textjd)</td>
<td>Platform_Value</td><td>pk = platformjd + fieldjype + programjextjd platformjd</td><td>Platform</td>
<td></td><td>fieldjype</td><td>Field JType</td>
<td></td><td>programjextjd</td><td>Tex_catalog (textjd)</td>
<td></td><td>platformjextjd</td><td>Text_Catalog (textjd)</td>
<td></td><td>field_sourcejype</td><td>FieldJType (fieldjype)</td>
<td>Program</td><td>pk = programjd programjd pin livejndicator category</td><td>Category</td>
<td>Program_Map</td><td>pk = programjd + fieldjype programjd</td><td>Program</td>
<td></td><td>fieldjype</td><td>Field JType</td>
<td></td><td>programjextjd</td><td>Text_Catalog (textjd)</td>
IS 2 333 210 T3
Program_Type
Schedule
Schedule_Text pk = pk = program_type program_type stationjd + event_datetime stationjd eventDateTime seriesid programjd closed_caption color_class print_runjime slotjrunjime event_price purchase_start_offset purchase_end_offset purchase_call_phone preview_start_offset preview_cnd_offset available_until ORIGINAL_AIR_DATE guideline_weight programjype pk = stationjd + + event_datetime field JYPE stationjd event_datetime fieldjype programjextjd fk = stationjd + event_datetime
Station
Program
Color Class
Program_Type
Station
Field Type
Text_Catalog (textjd)
Schedule
Station
IS 2 333 210 T3
Station_Type
System pk = stationjd stationjd station Jype Station_Type long_station_name pk = station Jype stationjype station_description pk = system Jd systemjd system_description platformjd Platform
System_Headend
Text_Catalog pk = systemjd + headendjd systemjd System headendjd Headend pk = textjd textjd text touched
Timezone
Valid_Pixel_Map
Wordlist pk = timezone timezone tz_description pk = pixel_map pixeljnap pk = Word word searchtype
IS 2 333 210 T3
Absent Stations
As shown in Fig. 2, to check for absent stations, the user must designate a station list file. The station list file can contain each station in the database, a subset of stations representing stations on a particular cable system, any user-defined group of stations, or a single station. In addition, the station list file contains a data field for each station that indicates the daily broadcast times for that station. The listings database (ie, the station_id field) is then searched against this file to determine if each station in the station listing file is included in the database. If absent stations are found, the total number of absent stations is increased and displayed and the absent station name is copied to an output file.
Schedule Gaps and Overlaps
The schedule gap and overlap option works as shown in Fig. 3. The flow chart shows the operation for a single station but the operation is the same for each station in a station list file. First, a time interval is selected to check for gaps and overlaps. The system then checks the database to determine if the start of the time interval matches the start of a program and starts the process with this listing. If the beginning of the time interval intersects a program that is already being shown, the system starts the process with the listing. The start time (start_time) for the first listing to check is then retrieved from the database. If there are no gaps or overlaps in the schedule, the start time of the next listing must be the start time of the previous listing plus the runtime space (slot_run_time) of the previous listing. Each listing is then checked in succession according to the following equations used to determine if there is a hole or a gap:
T<sub>n + 1</sub> = T<sub>n</sub>. + RT<sub>n</sub> (programming is correct)
T<sub>n + 1</sub> > T<sub>n</sub>. + RT<sub>n</sub> (programming gap)
T<sub>n + 1</sub> <T<sub>n</sub> + RT<sub>n</sub> (schedule overlap) where Tn represents the start time and RTn the run-time space for the nth listing in the database. Each entry in the database is checked independently of the other entries so that a schedule gap or overlap for a particular pair of programs does not affect all subsequent listings in the database. For stations that do not broadcast 24 hours a day, an off-broadcast placeholder is inserted into the database and treated as a program.
For some television stations, particularly recharge stations, a small gap or overlap (ie 5 minutes) may be allowed in the programs. For example, it is a premium movie channel, a movie can start 5 minutes or so after the time slot so that if the previous movie runs 3 minutes within the time slot, there is no real overlap. Also, a movie with a running time of, for example, 87 minutes will end before the start of the next time slot. However, it is common for charging stations to fill this apparent gap with advertisements or other promotional material. If so, the equations can be modified as follows to reflect the fact that small gaps and overlaps are allowable:
Tn + 1 = (Tn + RTn) +/- 5 minutes (the programming is correct)
Tn + 1> Tn + RTn + 5 minutes (programming gap)
Tn + 1 <Tn + RTn - 5 minutes (programming overlap)
Missing Movie Titles, Copy, Fields, and Ratings
The Missing Titles, Missing Copy, Missing Fields, and Missing Movie Ratings utilities work as follows. For each of these options, the listings are checked for missing information by searching for the designated field or fields. For missing titles, all the different titles for a program can be checked, including the full title (TVG) and the various shortened versions (ie, 30, 60, 90, and 120 minute grid boxes). For the absent copy option, the long copy, short copy, and promotional copy fields can be checked. In the database described by Tables 1 and 2, all textual data (including program titles, copy, and creator) for a program is stored in a Text_Catalog table, which is indexed using a text_id. The text_id is obtained from another table, such as Program_Map, which consists of a series of flags in the Text_Catalog. The Program_Map table is indexed using the program_id and field_type. There is a text indicator for each of the different field types as indicated in the field_description in Table 1. Using a program_id, all text data associated with a program can be retrieved.
For the absent movie rating option, the MPAA_rating field is checked. For the missing fields option, all the fields that must be present in a particular list are checked (in accordance with the EPG operating rules). When one of the previous absent fields is found, it is increased and
ES 2 333 210 T3 presents the appropriate computation. In addition, the date, start time, station ID, and title (for copy absent and MPAA ratings) are copied into the appropriate check-out report.
The copy absent option will check the copy absent for all listings that must include copy such as movies, live sports, pay-per-view programs. The absent movie ratings option checks all premium channels and pay-per-view events for movie ratings as only these channels will broadcast unedited movies. It is also possible, of course, to generate a single check-out report that includes all the listings with the missing information. Thus, a single file can be generated from all listings with missing movie titles, copy, and / or ratings.
Long Titles and Long Copy
The operation of the long title and long copy options is as follows. Based on the platform or platforms selected by the user (the Platform_id field), the system checks a table in the database that indicates the various different presentation formats for each listing. For example, if the platform supports both an interactive EPG and a channel guide, each with different presentation characteristics, the table will indicate that each one should be included in the database. Therefore, for a two-hour movie, the system will check that there are titles for each listing marked as 30, 60, 90, and 120 minute listings to adjust in the different size grid cells for each of the two types of EPG . If any of the required titles is absent, the system will copy enough information to the output report to identify the absent title. In addition, the system checks the multiple versions of the titles in the database to ensure that each one fits in the space designated for the particular platform. The space required to present the listings is determined by consulting the table that lists the fonts available for the platform and calculating the space required based on the font and the kerning of character pairs. The character_par_kerning table shows in Table 2 kerning value references for pairs of characters that are kerning that are used to determine the actual space required to display a pair of characters. To avoid calculating the space required to present a complete word each time the word is found in the database, a lookup table can be constructed that includes, for each different source, the space required to present a word, justifying the kerning of the character pairs. In this way, the lookup table is queried before actually calculating the required space. If the word is in the lookup table, it is not necessary to calculate the space requirements. If it is not, after calculating the space requirements, the word is added to the lookup table for future reference. Alternatively, to avoid re-calculating whether any particular title will fit in a particular presentation for a particular platform, an appropriate mark is applied to each title that has previously been text wrapped. Then, when the verification process is executed, to determine if all the adjusted text titles are present, the system checks for the presence of previously marked titles for the specific platform.
For a long copy, each listing is checked which, according to the EPG's operating rules, must include a copy. Based on the chosen platform, the system consults a table in the database that indicates the space available for the copy. The long copy is then checked in the same way as long titles. If the space required to present the title or copy exceeds the available space, the count is increased and the platform, date, start time, station identification and title or long copy are presented and copied in the report. appropriate verification.
Editorial Errors
The above options check for fields that are completely absent data and fields that include data that exceeds the designated space to wrap. However, they do not detect errors in the data itself. The Editorial Errors option supplements these options by checking for particular errors in the data fields. This option searches the lists for the most common types of errors found in the database. These include duplicate film titles and years, references to other days of the programming week (for shows that repeat every day), and the phrase “at press time” (at the present time) (often used when at the time the database is compiled some information about a program is not yet known). For each localized editorial error, the count is incremented and the date, time, station ID, and type of error are displayed and copied into the check-out file.
The above editorial errors are only a few of the errors that may exist in the database. If additional types of errors are detected, these can be checked by the editorial error option.
Inappropriate Language
The inappropriate language option is similar to the editorial errors option in that it checks the listing database for certain words and phrases that are not appropriate for an EPG. All these words and phrases are included in the language dictionary file. The database is then checked for any character strings that match these words and phrases. If a match is found, the count is increased by one and the date, start time, station ID, and inappropriate language found in the output file are copied. The inappropriate language utility can be configured to check every field in the database that contains textual data. Alternatively, only certain text fields can be designated for checking against the inappropriate language file.
IS 2 333 210 T3
Other Verification Options
The operation of the other verification options is similar to the options listed above. Missing program type, time slot, running time, program source, PPV price, and PPV promo copy can be implemented in the same way as other absent field options. The PPV event on a non-PPV station and non-PPV event on a PPV station options are implemented by comparing the program_type and station_type fields for a program.
System Implementation
Those skilled in the art will recognize that the system can be implemented for any of a number of digital computers. In one embodiment, a compatible personal computer system 486 can be used. Alternatively, due to the large amount of data to be processed, a more powerful job computer can be used. Use a mass storage device, such as an optical disk, hard disk, or magnetic tape to store the database. The data verification utility may be on the computer that includes a keyboard and display device for entering user commands. In one embodiment, the utility is implemented in a Microsoft Windows environment for maximum user friendliness. Fig. 4 shows a verification system screen for selecting the various verification options. At the top of screen 10, the user selects to run the verification on a group of cable systems, a single cable system, or a single input end. Also in the upper part of screen 10, the user selects the start and end times when the data verification runs. At the bottom of screen 20, the various verification options are selected. Alternatively, all exams can be selected using a single button. After executing the verification, a correction menu 30 shown in Fig. 5 is presented to the user. The correction menu allows the user to correct errors by type of error. After selecting an error type for correction, the user is presented with the correction editor screen shown in Fig. 6. The correction editor screen presents the values of the different fields for the list of programs that contain an error so that the user can adopt the appropriate changes.
Once the data has been processed by the data verification utility and additions, changes, and edits have been made to the listings database, the data for a particular cable system is extracted and prepared for transmission to the cable system. In this phase, data corresponding to a particular channel map is extracted from the database and converted into ASCII or a cable-readable binary data format. The data file can be transmitted to the cable system by any of several means such as satellite, telephone line, portable storage medium, or broadcast.
In an alternative embodiment, the data verification utility may be at each input end of the cable system. In this way, individual cable system data files are extracted from the program listings database and transmitted to the cable system. The various test options associated with the utility can then be processed at the input end of the cable system prior to transmitting the EPG data to individual viewers. Therefore, only the data for stations carried by the particular cable system is checked. The advantage of this layout is that it provides listing editing capabilities on each cable system so that errors not detected by the EPG provider can be corrected and last minute changes reflected in the data provided to viewers.
The code for a particular computer program to implement the invention described in this document will be very apparent to those skilled in the art of programming video systems and graphical representation based on the description contained in this document and the accompanying figures. Those skilled in the art will also appreciate that they can depart from the specific embodiment of the invention described herein without departing from the true scope of the claims appended hereto.
Contents21
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
40 members in 15 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 33068494 | United States of America | A | |
| 33068494 | United States of America | A | |
| 03077336330684 | – | – | – |
| US19940330684 | – | – | – |
Members40
| Document | Office | Kind | |
|---|---|---|---|
| CA2203017A1 | Canada | A1 | |
| WO9613935A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU3970795A | Australia | A | |
| US5576755A | United States of America | A | |
| EP0788713A1 | European Patent Office (EPO) | A1 | |
| BR9509532A | Brazil | A | |
| MX9703047A | Mexico | A | |
| JPH10512692A | Japan | A | |
| AU700801B2 | Australia | B2 | |
| JP2974784B2 | Japan | B2 | |
| EP1026894A1 | European Patent Office (EPO) | A1 | |
| EP0788713B1 | European Patent Office (EPO) | B1 | |
| AT197865T | Austria | T | |
| ATE197865T1 | Austria | T1 | |
| DK0788713T3 | Denmark | T3 | |
| DE69519524D1 | Germany | D1 | |
| ES2154351T3 | Spain | T3 | |
| DE69519524T2 | Germany | T2 | |
| GR3035412T3 | Greece | T3 | |
| PT788713E | Portugal | E | |
| HK1031796A1 | Hong Kong, China | A1 | |
| CA2203017C | Canada | C | |
| EP1026894B1 | European Patent Office (EPO) | B1 | |
| AT246428T | Austria | T | |
| ATE246428T1 | Austria | T1 | |
| DE69531414D1 | Germany | D1 | |
| EP1377056A1 | European Patent Office (EPO) | A1 | |
| DE69531414T2 | Germany | T2 | |
| ES2204445T3 | Spain | T3 | |
| HK1063125A1 | Hong Kong, China | A1 | |
| EP1377056B1 | European Patent Office (EPO) | B1 | |
| AT442738T | Austria | T | |
| ATE442738T1 | Austria | T1 | |
| DE69536003D1 | Germany | D1 | |
| PT1377056E | Portugal | E | |
| ES2333210T3This record | Spain | T3 | |
| EP2175646A2 | European Patent Office (EPO) | A2 | |
| EP2175646A3 | European Patent Office (EPO) | A3 | |
| EP2175646B1 | European Patent Office (EPO) | B1 | |
| ES2527951T3 | Spain | T3 |
Numbers
- Publication, DOCDB
- 2333210
- Publication, EPODOC
- ES2333210T
- Application
- 3077336
- Application, DOCDB
- 03077336
- Application, EPODOC
- ES20030077336T
Titles2
- Spanish
- VERIFICACION DE DATOS ELECTRONICOS DE GUIA DE PROGRAMAS DE TELEVISION.
- English
- VERIFICATION OF ELECTRONIC DATA GUIDE TO TELEVISION PROGRAMS.
Classification
- CPC, 10
- H04H20/12
- H04H60/07
- H04H60/72
- H04N7/0887
- H04N7/10
- H04N7/16
- H04N17/00
- H04N21/26283
- H04N21/2665
- H04N21/84
- IPC, 11
- H04N7 025
- H04N7 088
- G06F17 30
- H04H20 12
- H04H60 07
- H04H60 72
- H04N7 03
- H04N7 035
- H04N7 10
- H04N7 16
- H04N17 00