US6990677B1 - Application program interfaces for electronic program guide data services - Google Patents

Application program interfaces for electronic program guide data services Download PDF

Info

Publication number
US6990677B1
US6990677B1 US09/527,137 US52713700A US6990677B1 US 6990677 B1 US6990677 B1 US 6990677B1 US 52713700 A US52713700 A US 52713700A US 6990677 B1 US6990677 B1 US 6990677B1
Authority
US
United States
Prior art keywords
epg
further including
epg data
another function
including execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US09/527,137
Inventor
Michael E. Pietraszak
Robert M. Fries
Robert S. T. Gibson
Jonathan A. Wray
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US09/527,137 priority Critical patent/US6990677B1/en
Assigned to WEBTV NETWORKS, INC. reassignment WEBTV NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FRIES, ROBERT M., GIBSON, ROBERT S. T., PIETRASZAK, MICAEL E., WRAY, JONATHAN A.
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION MERGER (SEE DOCUMENT FOR DETAILS). Assignors: WEBTV NETWORKS, INC.
Application granted granted Critical
Publication of US6990677B1 publication Critical patent/US6990677B1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4314Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/818OS software

Definitions

  • the present invention relates to electronic program guides (EPGs). More specifically, the present invention relates to application program interfaces enabling EPG data sources and applications using EPG data to interface with EPG services.
  • EPGs electronic program guides
  • EPGs Electronic program guides
  • the EPG source which may receive EPG data from a number of different EPG data providers, usually consolidates and encrypts the EPG data before transmitting it to the destination device.
  • the destination device is only capable of receiving EPG data from only one EPG data source, which indicates that the destination device must accept the format of the EPG data provided by the EPG source. More importantly, the EPG data received by a user cannot be tailored to that user's particular tastes.
  • the ability to retrieve data from a single source in a particular format is not the only drawback of this arrangement.
  • Many destination devices which receive interactive EPG data have limited storage capacity. For this reason, the EPG data downloaded from a data broker or source is typically compressed such that the destination device may store more EPG data in the limited storage space. This selective compression is primarily performed, however, by the EPG data source. This leaves the destination device with the ability to only alter the amount of EPG data downloaded as opposed to the content of the downloaded EPG data.
  • a destination device In addition to being unable to alter the content of the downloaded EPG data, a destination device is limited in other significant ways. EPG data from multiple EPG data providers must first be collected and consolidated by a particular EPG source before it is downloaded to a destination device. Destination devices are only capable of receiving EPG data from a single EPG data source. Because destination devices can only receive from one data provider, destination devices are limited to a single data transmission format.
  • EPG data is currently being transmitted by various EPG data sources across various transport mediums, but destination devices are unable to take advantage of these sources and mediums because destination devices are limited to one data provider and one format.
  • EPG data typically includes a title, a description and attributes such as closed captioning, rating, and the like.
  • EPG data can be collected from in-band and out of band television signals, HTTP or FTP, TCP/IP sockets or any other communications protocol.
  • the internet has become a significant source of EPG data.
  • EPG data is expanding to include reviews of programs, the names of the actors, and other types and classes of information. Much of this information is readily available, but destination devices are frequently unable to take advantage of that information because, as previously mentioned, the destination devices are limited to a particular EPG data source and a particular EPG data format.
  • a destination device It would be an advance in the art for a destination device to be able to receive EPG data from multiple EPG data sources and not be confined to a particular EPG data source or EPG data format. It would also be an advance in the art for a destination device to be able to tailor the content of the EPG data by permitting the EPG data to be scaled both temporally and extensibly. Scaling the EPG data in this manner provides a user, at a minimum, with EPG data that is tailored to the user.
  • the present invention provides EPG services which allows destination devices to overcome present limitations by enabling a destination device to receive EPG data from multiple EPG data sources or providers, including web sites and other conventional EPG data providers.
  • a software loader module is loaded or initiated for each EPG data source.
  • the loader module is capable of retrieving EPG data from a particular EPG data source in its native transmission format.
  • the loadable modules interface with an EPG writer module that collects the EPG data from the loader modules and stores the retrieved EPG data locally on the destination device.
  • the interface or EPG writer module comprises a writer application program interface (API) that establishes a standard access point for each loader module. This permits a single EPG writer module to interface with the loader modules of multiple EPG data sources. In this manner, a destination device can receive EPG data from multiple EPG data sources which have different transmission mediums and formats, because a loader module may be created or adapted to each separate EPG data source.
  • the loader modules may receive EPG data in different formats, but all loader modules interface with the EPG writer.
  • an application may access the EPG data via a controller module which comprises a controller API.
  • the controller API is an interface that allows many different applications to access the locally stored EPG data.
  • the writer API and the controller API also allow applications to be independent of the EPG data sources. This independence allows an application to continue to have access to EPG data even if the EPG source or the format of the EPG data provided by the EPG source is changed.
  • EPG services also introduces significant scalability to the EPG data.
  • the EPG data stored by EPG services is for a particular time period dictated by the supplier of the EPG data.
  • EPG services allows this time period to be adjustable by a user or an application. For example, a device application developer or a user may choose a time period of 2 days to conserve memory on the destination device even if the EPG data source provides a 5 day block of EPG data.
  • a device application developer or a user may also choose to alter the amount of data stored for titles, descriptions, and other program attributes.
  • the settings selected by a developer or an end-user can be applied to a specific channel, to favorite channels, or to all channels.
  • the EPG data stored by EPG services can be customized to a particular application or user.
  • a user is provided with enhanced EPG data listings that can be tailored by the user by many factors including but not limited to content, time, and geography.
  • EPG data is temporally scaled or customized by the application.
  • EPG services allows EPG data to be scaled by several factors including, but not limited to, channel, richness, language, and time.
  • FIG. 1 is a block diagram illustrating the scalability and extensibility of EPG data which is downloaded by a destination device implementing one embodiment of the present invention
  • FIG. 2 illustrates an exemplary system for implementing EPG services
  • FIG. 3 is a detailed block diagram illustrating the reception of EPG data from an EPG data source and the transmission of EPG data from EPG services to one or more applications.
  • EPGs Electronic program guides
  • the data typically transmitted by an EPG data source is related to television programming and may include the titles of the television programs, the descriptions of the television programs, and other attributes and properties of the television programs.
  • the EPGs are usually developed by EPG data providers that are responsible for the content of the EPG data. For instance, EPG data provided by an EPG data provider may be devoted exclusively to movie channels or EPG data can be devoted to public or free television channels.
  • a recipient of EPG data is restricted to the format and content of a single EPG data provider.
  • EPGs can also be used to convey other types of information such as radio schedules, Internet streaming media event schedules, information related to the Internet, or the content of the Internet.
  • This document focuses on EPG data relating to television programming, but other data that may be included in EPGs is within the scope of the present invention.
  • the television programming represented by EPG data is frequently displayed in table form. Each row of the table contains a type of information such as the title of the television programs, or a description of the television program, while each column is usually represents a time period or time block.
  • a destination device is currently unable to alter these characteristics and must accept the EPG data as it is formatted by an EPG data source.
  • EPG services overcomes the limitations of the prior art in at least two ways. Instead of simply receiving what an EPG data provider is transmitting, EPG services allows incoming EPG data to be extensibly scaled according to a several different factors or axes. For example, if the EPG data is temporally scaled, EPG services may receive detailed EPG data about television programs airing in the near future and coarse EPG data related to television programs airing further in the future.
  • EPG services permits a recipient of EPG data to determine the amount of descriptive EPG data such as titles, descriptions and attributes that is received.
  • the EPG data may be rich in content by including detailed descriptions while the EPG for television programs airing in the more distant future may include the titles and exclude the descriptions.
  • EPG services is capable or receiving EPG data from more than one EPG data source or provider.
  • EPG services provides a loader module for each EPG data source and an abstraction layer or writer interface that interfaces with all of the loader modules.
  • the writer interface or abstraction layer allows the EPG data received by the loader modules to be stored in the memory or storage of the destination device.
  • Applications may then access the EPG data through another abstraction layer or control interface.
  • the EPG data source or provider may change over time, but the application using EPG data provided by that source or provider is unaffected by those changes because the EPG data is accessed through EPG services rather than from the EPG data source or provider directly.
  • the application can be updated without regard to the EPG data provider, because the EPG data is stored via the writer interface.
  • the embodiments of the present invention may comprise a special purpose or general purpose computer comprising various computer hardware.
  • Embodiments within the scope of the present invention also include computer-readable media having computer-executable instructions or data structures stored thereon.
  • Such computer-readable media can be any available media which can be accessed by a general purpose or special purpose computer.
  • Such computer-readable media can comprise RAM, ROM, EPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired executable instructions or data structures and which can be accessed by a general purpose or special purpose computer, such as one included in a set top box.
  • Computer-readable media may also include remote data stores such as web servers and other remotedata stores.
  • Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
  • the computer-executable instructions and associated data structures represent an example of program code means for executing the steps of the invention disclosed herein.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the invention may be practiced with other computer system configurations, including general purpose computers, personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
  • EPG data refers to television programming information, radio programming information, Internet content, scheduling information, titles, descriptions, movie reviews, ratings information, MPEG Streams, and any other type of data that may be retrieved from a source by an electronic device.
  • the embodiments of the present invention described herein refer to television programming information, but the embodiments of the present invention easily extend to other types of EPG data.
  • digital recording refers to copies of recordings of the data represented by the EPG data and includes but is not limited to television programming, radio programming and the like.
  • FIGS. 1 and 2 illustrate generally some of the advantages provided by EPG services.
  • the overall purpose of EPG services is to collect remote and transient EPG data and store it to provide applications with fast access, rich content, and querying capabilities for the collected EPG data.
  • the EPG data may also be collected and accessed remotely.
  • EPG services achieves these objectives by: allowing the EPG data to be scaled according to many different factors or axes; providing extensibility such that new sources and types of EPG data may be accessed; providing components or modules to collect the EPG data from EPG data sources and providers; and providing components or modules to access the EPG data that has been retrieved and stored by EPG services.
  • FIG. 1 is a block diagram illustrating a portion of the scalability that EPG services provides for EPG data.
  • the EPG data in FIG. 1 comprises titles 106 , descriptions 104 and attributes 102 .
  • Titles 106 , descriptions 104 and attributes 102 are each an example of EPG data and the combination of titles 106 , descriptions 104 and attributes 102 is also an example of EPG data.
  • EPG data may be retrieved from more than one EPG data source or provider, but the EPG data that is stored by EPG services may differ from the EPG data that was received from the EPG data source. Thus the amount of EPG data retrieved from a particular EPG that is actually stored can vary from completely excluding the EPG data to completely including the EPG data of a particular source.
  • the EPG data illustrated in FIG. 1 is intended to be illustrative of EPG data in general and does not exclude additional information from being included in the EPG data made available by other EPG data sources and providers.
  • EPG data may be scaled, in this example, according to the factors or axes of time, richness, channels and language.
  • time 108 is depicted as the horizontal axis of EPG table 100 .
  • EPG data is stored for two to seven days, but time 108 can be adjusted in one minute intervals to any desired interval.
  • time 108 can be divided into shorter time intervals.
  • the richness of the EPG data refers to the amount of data that is stored for television program titles, descriptions and attributes and the like. The richness of to time 108 .
  • various intervals of time 108 may have varying levels of richness.
  • the channels is another scalable factor.
  • EPG data is stored for viewable channels and no EPG data is stored for hidden or test channels.
  • a user may choose to remove a particular channel from the EPG data.
  • a removed channel is treated differently from a test or hidden channel.
  • EPG data is still stored for removed channels, but the EPG data is not necessarily displayed to a user or an application.
  • Another aspect of the scalability of EPG services is related to favorite or preferred channels.
  • a channel that is designated as preferred or favorite may have EPG data that is more rich than the EPG data stored for other channels.
  • a user has the ability to exclude certain channels or other attributes from being included in the EPG data.
  • the EPG data is also scalable with regard to language. This setting only applies, however, to the storage of textual data that describes a television program.
  • the language used in the programming itself does not affect the scalability of the EPG data.
  • the language setting only permits EPG data to be stored if the language matches the system language preferences.
  • the described scalability factors of time, richness, channels and language are exemplary factors and do not limit the factors with which EPG data may be scaled.
  • EPG data table 100 in FIG. 1 further illustrates an example of EPG data that has been scaled according to richness and time.
  • the amount of data 109 is, in this illustration, indicative of the richness of the EPG data.
  • Column 110 contains attributes 102 , descriptions 104 and titles 106 .
  • the time period for column 110 is, in this example, the next two days of EPG data.
  • the EPG data in column 110 is rich in that descriptions 104 are extremely detailed, titles 106 are complete, and many attributes 102 are detailed. Exemplary attributes include closed captioning, rating, stereo and more.
  • Column 111 is indicative, in this example, of a time period from day 3 to day 5. As illustrated, the amount of data 109 is less and is coarser or less rich than the EPG data stored in column 110 . Descriptions 104 in column 111 are not as detailed, but titles 106 are still complete and column 111 contains no attributes 102 . Similarly, column 112 is indicative of a time period from day 6 to day 7. Only titles 106 are stored in column 112 . Thus the EPG data stored in column 112 is less rich than the EPG data in column 111 . EPG data table 100 therefore illustrates EPG data that has been scaled with respect to time and richness or content.
  • the following table is another illustration of EPG data that has been scaled according to time, richness, and channel.
  • the EPG data displayed to a user will reflect the EPG data indicated in the following table.
  • the above table illustrates a scenario where no EPG data is stored for hidden channels, the richness of the EPG data stored for normal channels is greater for television programs airing in the near future, and the EPG data stored for favorite channels is very rich for the entire time period stored.
  • the EPG data can be scaled and stored in a variety of different combinations using a variety of factors.
  • EPG services allows EPG data to be custom tailored for a particular application or user. Channels or other attributes or descriptions that are not of interest to a particular application or user may be excluded.
  • FIG. 2 is a block diagram illustrating an exemplary system capable of implementing one embodiment of the present invention.
  • a device 20 which may be a set top box, a computer, a video cassette recorder, a television tuner, a modem, a digital satellite tuner, or any other device capable of receiving EPG data.
  • Device 20 receives EPG data from EPG data provider 70 .
  • EPG data providers or sources include television stations, Internet Service Providers (ISPs), and satellites.
  • the EPG data may be transferred via in-band television signals, out-of-band television signals, Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Transmission Control Protocol/Internet Protocol (TCP/IP) sockets, or any other communication protocol.
  • HTTP Hyper Text Transfer Protocol
  • FTP File Transfer Protocol
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • Device 20 typically has at least one application 22 which is capable of utilizing the EPG data provided by EPG data provider 70 .
  • EPG services 40 acts as an intermediary between EPG data provider 70 and application 22 .
  • both application 22 and EPG data provider 70 may change independent of the other without creating an incompatibility that may render application 22 incapable of receiving EPG data because EPG data provider 70 and application 22 interact with EPG services 40 rather than with each other.
  • EPG services 40 provides pluggable modules for EGP loaders 60 , EPG writer 43 , storage 42 , and EPG control 41 .
  • EPG loaders 60 provide the ability to receive EPG data from EPG data providers. As new EPG data providers become available to device 20 , a new EPG loader 60 is added to EPG services 40 .
  • the EPG loader added to the system for the new EPG data provider is capable of collecting the EPG data from the new EPG data provider.
  • an EPG loader 60 may be added to EPG services 40 which is capable of retrieving or collecting movie review data from an HTTP address.
  • EGP loaders 60 can be added and removed from EPG services 40 as needed. When an EPG data provider 70 is no longer available, for example, the EPG loader corresponding to that EPG provider is removed from EPG services 40 .
  • EPG writer 43 is a component or module that stores the EPG data collected by EPG loaders 60 in storage 42 which is a database containing EPG data in one embodiment. Storage 42 is also an example of a computer-readable medium. EPG writer 43 is responsible, in this example, for enforcing the scaling of the EPG data as well as the maximum amount of storage 42 that may be used for storing EPG data. Thus, if an EPG loader attempts to store EPG data that is greater in size than the maximum amount of EPG data allowed, then EPG data relating to television programming furthest in the future is removed until the EPG data being stored does not exceed the maximum storage amount allowed.
  • EPG writer 43 also removes EPG data from storage 42 that is no longer needed or usable. For instance, EPG writer 43 deletes the EPG data from storage 42 for all television programs which have aired before the current half-hour block. For example, at 8:15 a.m., EPG writer 43 will delete all EPG data relating to television programming occurring prior to 8:00 a.m. At 8:35 a.m., EPG writer 43 deletes television programming prior to 8:30 a.m.
  • One reason for deleting EPG data and for limiting the amount of EPG data that can be downloaded is because storage 42 of device 20 is typically limited.
  • EPG services 40 may have a plurality of EPG loaders 60 , it is possible that one or more EPG loaders 60 will attempt to add EPG data to the same record or storage locations. More simply, it is possible for a conflict to arise with respect to the EPG data in a variety of contexts. For this reason, EPG services provides various schemes for resolving conflicts. For example, multiple loaders may attempt to update the description for the same program. To resolve this conflict, the EPG writer may be implemented to treat each EPG loader with a different priority. The EPG writer may permit higher priority loaders to take precedence. Another alternative for EPG loaders with equal priorities is to permit the last EPG data written to take precedence and be stored in storage 42 .
  • Another alternative is to allow a user or application to select a conflict resolution scheme if conflicting EPG data sources are present. Simply stated, the user could designate a particular EPG data source or provider as having priority over another IPG data source or provider. These are examples of conflict resolution, but other methods orschemes may be employed.
  • EPG loaders 60 may implement a priority scheme independent of the EPG writer. This implementation, however, reduces the independent of the EPG loaders and forces more rigid interface and implementation constraints upon the development and design of the EPG loaders.
  • EPG loaders 60 may be time based threads that activate and deactivate at predetermined times.
  • EPG control 41 is also capable of notifying application 22 when the EPG data within a particular range changes. This enables applications 22 to maintain up to date EPG data available.
  • FIG. 3 is a detailed block diagram of a system implementing one embodiment of the present invention.
  • Device 20 has one or more applications 22 which are capable of using EPG data.
  • the EPG data retrieved by applications 22 may be displayed to a user via a television screen or a computer screen, or may be sent to a printer or other rendering device.
  • EPG data is typically generated by EPG data providers 70 , which are shown in FIG. 3 as listings provider 74 , movie descriptions provider 75 and satellite listings provider 76 .
  • the EPG data generated by listings provider 74 is transmitted via a television station 71
  • the EPG data generated by movie descriptions provider 75 is transmitted via an Internet Service Provider (ISP) 72
  • ISP Internet Service Provider
  • satellite listings provider 76 is transmitted via satellite 73 .
  • ISP Internet Service Provider
  • EPG data providers 70 is received at device 20 by EPG services 40 which comprises EPG loaders 60 .
  • An EPG loader or loader module has the responsibility of collecting EPG data from its native transmission format.
  • EPG loaders 60 comprises one or more specific EPG loaders because as illustrated by the various EPG data providers 70 , EPG data can be transmitted in a variety of different methods and formats and new sources or providers of EPG data may become available in the future. For these and other reasons, each loader module collects EPG data, in this embodiment, from a particular source or provider.
  • FIG. 3 illustrates a Vertical Blanking Interval (VBI) loader module 61 , a HTTP loader module 62 and a MPEG loader module 63 .
  • VBI loader module 61 is capable of collecting EPG data from the VBI of a television signal or broadcast.
  • HTTP loader module 62 is capable of collecting EPG data over a network such as the Internet, and
  • MPEG loader module 63 is capable of collecting or retrieving EPG data from a digital stream provided by satellite 73 .
  • EPG loaders 60 allow EPG data to be collected from any communication system or protocol and are not limited to those illustrated in FIG. 3 .
  • Each EPG loader module optionally comprises the hardware and software necessary to accomplish this task.
  • protocol 64 may be HTTP and TCP/IP if the transmission medium is the Internet.
  • modem 66 is the hardware required to access the Internet, but access can be accomplished with other hardware components such as a network interface cards.
  • Device driver 65 is typically a software module designed for a particular hardware component such as modem 66 .
  • Conflict resolution 44 is an optional pluggable component that permits a user to specify the actions to be taken when one or more EPG data providers 70 conflict.
  • the action taken by conflict resolution 44 can be specified by the user, the application 22 or the supplier of the EPG data. For instance, the user could specify that conflict resolution 44 cause movie descriptions provider 75 to have priority over satellite listing sprovider 76 . In this instance, the portions of the EPG data provided by satellite listings provider 76 that conflict with the EPG data provided by movie descriptions provider 75 are discarded or otherwise handled.
  • Conflict resolution 44 is extensible and can be implemented by attribute as well as by EPG data provider.
  • Conflict resolution 44 can also be implemented at the EPG loader level, whereby the EPG loaders resolve conflicts.
  • EPG loader 60 is capable of interacting with EPG writer 43 .
  • EPG writer 43 comprises an applications programming interface (API), in one embodiment, which is used by EPG loaders 60 to interface with EPG writer 43 .
  • API applications programming interface
  • the collected EPG data is placed in storage 42 by EPG writer 43 .
  • EPG loader 60 creates an instance of EPG writer 43 to perform updates to storage 42 , which may be a local or remote data store.
  • EPG writer 43 provides methods having one or more parameters that allow the EPG data collected by EPG loaders 60 to be placed in storage 42 such that the EPG data may be queried and retrieved by EPG control 41 .
  • AudioSubChannel adds a new audio subchannel format and has the parameters languageCode, isMainAudioService, isDolbyEncoded, and programType. AudioSubChannelForScheduleEntry adds a new audio subchannel to a schedule entry and has the parameters scheduleDataID and audioDataID.
  • CategorizationSystem adds a new categorization system to the data store and has the parameters categorizationSystemName and pSystemDataID.
  • CategoryPair adds a new category or subcategory pair to the data store.
  • CategoryForProgram maps a category pair to a specific program and has the parameters programDataID and categoryPairDataID.
  • Channel adds a new channel to the data store and has the parameters serviceRecordID, channel, network, station, description, channelTtype, startSeconds, and pChannelDataID.
  • ClearAll removes all data from the data store and has no parameters.
  • ClearChannels removes all channel data from the data store and has no parameters.
  • ClearPrograms removes all program data from the data store and has no parameters.
  • ClearScheduleEntries removes all schedule data from the data store. DeleteAudioSubChannel removes a specific audio subchannel from the data store and has the parameter audioDataID.
  • DeleteCategorizationSystem removes a specific categorization system from the data store and has the parameter systemDataID.
  • DeleteCategoryPair removes a specific category pair from the data store and has the parameters systemDataID, categoryName, and subCategoryName.
  • DeleteChannel removes a specific channel from the data store had has the parameter ChannelObject.
  • DeleteProgram removes a specific program from the data store and has the parameter ProgramObject.
  • DeletePropertyForChannel removes a property from a channel object and has the parameters pChannelObject and propertyName.
  • DeletePropertyForProgram removes a property from a program object and has the parameters pProgramObject and propertyName.
  • DeletePropertyForScheduleEntry removes a property from a schedule entry and has the parameters pScheduleEntryObject and propertyName.
  • DeletePropertyForWeblink removes a property from a weblink object and has the parameters pWeblinkObject and propertyName.
  • DeleteScheduleEntry removes a specific schedule entry from the data store and has the parameter ScheduleEntryObject.
  • DeleteSharingDay removes a specific sharing day from the data store and has the parameter sharingDayDataID.
  • DeleteVideoSubChannel removes a specific video subchannel from the data store and has the parameter videoDataID.
  • DeleteWeblink removes a specific Web link from the data store and has the parameter WeblinkObject.
  • EnableDuplicateChecking sets the preferred result for this condition and has the parameter preventDuplicates.
  • Program adds a new program to the data store and has the parameters programTitle, programDescription, yearMade, seconds, and programDataID.
  • PropertyForChannel adds an extensible name-value property to a specific channel and has the parameters channelDataID, name and value.
  • PropertyForProgram adds an extensible name-value property to a specific program and has the parameters programDataID, name, and value.
  • PropertyForScheduleEntry adds an extensible name-value property to a specific schedule entry and has the parameters scheduleEntryDataID, name, and value.
  • PropertyForWeblink adds an extensible name-value property to a specific Weblink and has the parameters weblinkDataID, name, and value.
  • PurchaseStringForScheduleEntry adds a new purchase string to a specific schedule entry and has the parameters scheduleEntryDataID and purchaseString, which is frequently encrypted.
  • RatingForProgram maps a rating authority and rating to a specific program and has the parameters program DataID, and ratingCode.
  • RemoveOldScheduleEntriesAndPrograms removes schedule entries before a specific time and their associated program, rating, category, property, and Web link data and has the parameter beforeThisTime.
  • ScheduleEntry adds a new schedule entry to the data store and has the parameters eventID, channelDataID, startTime, endTime, cc, rerun, videoDataID, audioDataID, and scheduleEntryDataID.
  • SharingDay adds a unique sharing day to the data store and has the parameters startDay, startTime, endDay, endTime, and pSharingDataID. SharingDayForChannel links a unique sharing day to a particular channel and has the parameters channelDataID, and sharingDataID.
  • UpdateComplete indicates the current set of updates to the data store is complete.
  • VideoSubChannel indicates the current set of updates to the EPG services storage or data store is completer and has the parameters language, aspectRation, videoSourceHeight, videoSourceWidth, squarePixel, componentType, streamed, and pVideoDataID.
  • VideoSubChannelForScheduleEntry creates a relationship between a schedule entry and a video subchannel and ahs the parameters scheduleEntryDatalD and videoDataID.
  • Weblink adds a new Web link to the data store and has the parameters url, description, startTime, endTime and pWeblinkDataID.
  • WeblinkForChannel maps a Weblink to a specific channel and has the parameters channelDataID, and weblinkDataID.
  • WeblinkForProgram maps a Web link to a specific program and has the parameters programDataID, and weblinkDataID.
  • WeblinkForScheduleEntry maps a Web link to a specific schedule entry and has the parameters scheduleEntryDatalD and weblinkDataID.
  • EPG control 41 While EPG loaders 60 place EPG data in storage 42 via EPG writer 43 , EPG control 41 performs the functions necessary to retrieve the EPG data from storage 42 .
  • EPG control 41 in one embodiment also comprises an API that provides functions and methods to application 22 that assist in the access and retrieval of EPG data. For example, it is necessary in many instances for EPG control 41 to determine if the necessary EPG data is available in storage 42 . Functions and methods are also provided by EPG control 41 that are able to access and retrieve EPG data relates to channels.
  • EPG control 41 To retrieve EPG data concerning a program, EPG control 41 provides methods and functions for use with schedule entries. Programs may also belong to one or more categories or subcategories and EPG control 41 provides functions to retrieve the valid category and subcategory pairs.
  • EPG control 41 has functions and methods to access ratings. Some applications 22 may request notification of changes to the EPG data that may occur within a particular time range. EPG control 41 services these requests and fires an event when the EPG data changes. Typically, only one event may be requested for each instance of EPG control 41 .
  • EPG control 41 provides properties, methods, and events, generally designated as functions, which allow EPG control 41 to be used by an application to access storage 42 or other data store.
  • EPG control 41 The properties of EPG control 41 are as follows. CategorizationSystems retrieves a collection of the names of known schemes for organizing programs by type and has the parameter psystems. DataEndTime returns the time in the future at which the available data ends and has the parameter pEndTime. HighestDataStartTime returns the furthest time in the future when a program starts and has the parameter pStartTime. IsAnyDataAvailable returns information to confirm if valid channel or guide listings exist in the data store and has the parameter pDataAvailable. IsChannelDataAvailable returns information to indicate if channel data exists in the data store and has the parameter pChannelDataAvailable. RatingSystem retrieves a collection of strings for the names of known schemes or systems for organizing content ratings and has the parameter psystems. AvailableChannels retrieves the Channels collection object and has the parameter pChannels.
  • EPG control 41 The methods of EPG control 41 are as follows. CancelCategoryEventRequest disables signaling of OnCategoryUpdate events. CancelChannelEventRequest disables signaling of OnChannelUpdate events. CancelRangeEventRequest disables signaling of OnRangeUpdate events. Categories retrieves a collection of the names of main categories within a categorization system for a given categorization system name and has the parameters categorizationSystemName and pCategories. ChannelsForProviderNetworkName returns channels matching the search value and has the parameters searchString, substringMatch, and pChannels.
  • ChannelsForNumber retrieves a Channels collection object for valid device channels with a particular channel number or tuple and has the parameters serviceSpace, channel, time, and pChannels.
  • ChannelsForProviderName returns channels matching the search value and has the parameters searchString, substringMatch, and pChannels.
  • IsScheduleDataAvailable returns information indicating whether EPG data is found for a range and has the parameters startTime, endTime, and pScheduleDataAvailable.
  • Program retrieves the Program object representing the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time and pProgram.
  • ProgramEndTime retrieves the end time for the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time and pEndTime.
  • ProgramLength retrieves the length in seconds for the program shown and the specified channel and the specified time and has the parameters serviceSpace, channel, time, and pSeconds.
  • ProgramRating retrieves a Rating object for a particular program and has the parameters serviceSpace, channel, time, ratingSystem, and prating.
  • ProgramStartTime retrieves the start time for a particular program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time, and pStartTime.
  • ProgramTitle retrieves the name of the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time, and pTitle.
  • RequestCategoryUpdateEvent indicates that an event should be fired when any aspect of the known categorization systems changes.
  • RequestChannelUpdateEvent indicates that an event should be fired when a new channel has been added to the specified service space.
  • RequestRangeUpdateEvent returns the update of the time range and has the parameters startTime and endTime.
  • ScheduleEntries returns all schedule time slots matching the query values and has the parameters serviceSpace, channel, startTime, endTime, and pScheduleEntries.
  • ScheduleEntriesForCategories returns programs that match the query values and has the parameters categorizationSystem, categories, startTime, endTime, maxhits, and pScheduleEntries.
  • ScheduleEntriesForProgramProperty returns programs matching the query values and has the parameters name, value, startTime, endTime, maxHits, and pScheduleEntries.
  • ScheduleEntriesForProperty returns time slots matching query values and has the parameters name, value, startTime, endTime, maxHits, and pScheduleEntries.
  • ScheduleEntriesForStrings retrieves a ScheduleEntries collection object representing all time periods for programs whose title or description includes a particular case-insensitive string which will be shown and has the parameters searchStrings, subStringMatch, findTitle, findDescription, startTime, endTime, maxHits, and pScheduleEntries.
  • ScheduleEntry returns a time slot matching query values, and has the parameters serviceSpace, channel, time, and pScheduleEntry.
  • SubCategories retrieves a collection of the names of subcategories within a categorization system for a given categorization system name and category name and has the parameters categorizationSystemName, categoryIndex, and pSubCategories.
  • OnCategoryUpdate indicates that a new category has been added.
  • OnChannelUpdate indicates that a new channel has been added.
  • OnRangeUpdate indicates that the data within the time range specified by RequestRangeUpdateEvent has changed.
  • EPG control objects which include CategoryPair, CategoryPairs, Channel, Channels, GuideRating, GuideRatings, Program, Programs, PurchaseStrings, ScheduleEntry, ScheduleEntries, Weblink, Weblinks, SharingSchedule, MajorMinorSelectorIDs, and Tuple.
  • EPG services is intended to provide extensibility to EPG data. As illustrated, new sources of EPG data are easily accommodated by a device.
  • the EPG data can be scaled and formatted in a variety of ways. Extensible properties can be added to the channel, program schedule entry, or weblink data and multiple properties may be added to the same set of EPG data, which enhances the ability of applications to search and utilize the stored EPG data.
  • EPG Data Map is another component of EPG services that is used to retrieve necessary data from EPG services, but should not be used by EPG loaders or other applications or components.
  • EPG Data Map in one embodiment, is an API.
  • EPG Data Map provides the following methods and functions.
  • NetworkCallLetters retrieves the network name for a specific service record ID and has the parameters serviceRecordID, time, and pNetworkCallLetters.
  • ProgramEndTime retrieves the end time for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pEndTime.
  • ProgramLength retrieves the length in seconds for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pSeconds.
  • ProgramPurchaseString retrieves the available purchase strings for a specified program and has the parameters serviceRecordID, time, cDims, pcDims, and pPurchaseStrings.
  • ProgramRatings retrieves Ratings objects for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pRatings.
  • ProgramStartTime retrieves the start time for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pStartTime.
  • ProgramTitle retrieves the name of the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pTitle.
  • ServiceRecordIDForNetworkCallLetters retrieves a ServiceRecordID that matches a specific network call letter string and has the parameters serviceSpace, searchstring, substringMatch, cDims, pcDims, and pServiceRecordIDs.
  • ServiceRecordlDForStationCallLetters retrieves a ServiceRecordID that matches a specific station call letter string and has the parameters serviceSpace, searchString, substringMatch, cDims, pcDims, and pServiceRecordIDs.
  • StationCallLetters retrieves the station name for a specific service record ID and has the parameters serviceRecordID, time, minorChannel, and pStationCallLetters.

Abstract

EPG services are provided, which enables a device such as a computer, a set top box or the like to collect EPG data from multiple EPG data providers or sources. The EPG data is collected at the device by EPG loaders. Each EPG loader collects EPG data from a particular source. The EPG loaders deliver the EPG data to a writer module, which performs scaling and formatting functions to the EPG data. The writer module also stores the scaled and formatted EPG data in a database or other storage. The writer module may also be implemented by chaining EPG loaders in a priority scheme. However, EPG loader interaction reduces independence and forces more rigid interface and implementation constraints upon the design of EPG loaders. Once stored, applications gain access to the EPG data through a control module. The control module provides the accessed EPG data to the applications. EPG services function to isolate the operation of the applications from the EPG data sources. Because the EPG data is stored by the writer module and accessed by the control module, the applications and EPG data sources can change independently of one another without having an effect on the ability of EPG services to collect and provide access to EPG data.

Description

RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application Ser. No. 60/125,062, filed Mar. 18, 1999, and entitled “Filtering, Scaling, and Loading of Electronic Guide Data,” which is incorporated herein by reference. This application is also related generally to U.S. patent application Ser. No. 09/527,313 entitled “Systems and Methods for Electronic Program Guide Data Services,” which was filed on the same day as the present application, and is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. The Field of the Invention
The present invention relates to electronic program guides (EPGs). More specifically, the present invention relates to application program interfaces enabling EPG data sources and applications using EPG data to interface with EPG services.
2. The Prior State of the Art
Electronic program guides (EPGs) are designed to permit television viewers as well as Internet webcast viewers to browse and select from television listings which are displayed on a television screen. Before being displayed, the EPG data is downloaded from an EPG source such as a head end or a server to a destination device such as a television, computer or set top box. The EPG source, which may receive EPG data from a number of different EPG data providers, usually consolidates and encrypts the EPG data before transmitting it to the destination device. In conventional systems, the destination device is only capable of receiving EPG data from only one EPG data source, which indicates that the destination device must accept the format of the EPG data provided by the EPG source. More importantly, the EPG data received by a user cannot be tailored to that user's particular tastes.
The ability to retrieve data from a single source in a particular format is not the only drawback of this arrangement. Many destination devices which receive interactive EPG data have limited storage capacity. For this reason, the EPG data downloaded from a data broker or source is typically compressed such that the destination device may store more EPG data in the limited storage space. This selective compression is primarily performed, however, by the EPG data source. This leaves the destination device with the ability to only alter the amount of EPG data downloaded as opposed to the content of the downloaded EPG data.
In addition to being unable to alter the content of the downloaded EPG data, a destination device is limited in other significant ways. EPG data from multiple EPG data providers must first be collected and consolidated by a particular EPG source before it is downloaded to a destination device. Destination devices are only capable of receiving EPG data from a single EPG data source. Because destination devices can only receive from one data provider, destination devices are limited to a single data transmission format.
Another limitation of current destination devices is that the applications on the destination device that utilize the EPG data must be updated when the EPG data source is changed or altered. Additionally, the applications on the destination device must also be updated when the format of the data source is altered or changed. EPG data is currently being transmitted by various EPG data sources across various transport mediums, but destination devices are unable to take advantage of these sources and mediums because destination devices are limited to one data provider and one format.
EPG data typically includes a title, a description and attributes such as closed captioning, rating, and the like. EPG data can be collected from in-band and out of band television signals, HTTP or FTP, TCP/IP sockets or any other communications protocol. The internet, in particular, has become a significant source of EPG data. In fact, EPG data is expanding to include reviews of programs, the names of the actors, and other types and classes of information. Much of this information is readily available, but destination devices are frequently unable to take advantage of that information because, as previously mentioned, the destination devices are limited to a particular EPG data source and a particular EPG data format.
It would be an advance in the art for a destination device to be able to receive EPG data from multiple EPG data sources and not be confined to a particular EPG data source or EPG data format. It would also be an advance in the art for a destination device to be able to tailor the content of the EPG data by permitting the EPG data to be scaled both temporally and extensibly. Scaling the EPG data in this manner provides a user, at a minimum, with EPG data that is tailored to the user.
SUMMARY OF THE INVENTION
The present invention provides EPG services which allows destination devices to overcome present limitations by enabling a destination device to receive EPG data from multiple EPG data sources or providers, including web sites and other conventional EPG data providers. In order to receive EPG data from multiple EPG data sources, a software loader module is loaded or initiated for each EPG data source. The loader module is capable of retrieving EPG data from a particular EPG data source in its native transmission format. The loadable modules interface with an EPG writer module that collects the EPG data from the loader modules and stores the retrieved EPG data locally on the destination device.
The interface or EPG writer module comprises a writer application program interface (API) that establishes a standard access point for each loader module. This permits a single EPG writer module to interface with the loader modules of multiple EPG data sources. In this manner, a destination device can receive EPG data from multiple EPG data sources which have different transmission mediums and formats, because a loader module may be created or adapted to each separate EPG data source. The loader modules may receive EPG data in different formats, but all loader modules interface with the EPG writer.
Once the EPG data has been locally stored on the destination device by the EPG writer or the EPG writer API, an application may access the EPG data via a controller module which comprises a controller API. The controller API is an interface that allows many different applications to access the locally stored EPG data. The writer API and the controller API also allow applications to be independent of the EPG data sources. This independence allows an application to continue to have access to EPG data even if the EPG source or the format of the EPG data provided by the EPG source is changed.
EPG services also introduces significant scalability to the EPG data. Typically, the EPG data stored by EPG services is for a particular time period dictated by the supplier of the EPG data. EPG services allows this time period to be adjustable by a user or an application. For example, a device application developer or a user may choose a time period of 2 days to conserve memory on the destination device even if the EPG data source provides a 5 day block of EPG data. A device application developer or a user may also choose to alter the amount of data stored for titles, descriptions, and other program attributes. The settings selected by a developer or an end-user can be applied to a specific channel, to favorite channels, or to all channels. In other words, the EPG data stored by EPG services can be customized to a particular application or user. At a minimum, a user is provided with enhanced EPG data listings that can be tailored by the user by many factors including but not limited to content, time, and geography.
The ability to tailor the content of EPG data using these attributes significantly enhances how a user may make use of EPG. For example, an application developer or a user may decide to download detailed information for programs occurring in the next two days and to download less detailed information for programs occurring on days three through five. In this example, the EPG data is temporally scaled or customized by the application. In addition to being able to temporally scale or filter EPG data, EPG services allows EPG data to be scaled by several factors including, but not limited to, channel, richness, language, and time.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other objects and features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
In order that the manner in which the above-recited and other advantages and objects of the invention are obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawing depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
FIG. 1 is a block diagram illustrating the scalability and extensibility of EPG data which is downloaded by a destination device implementing one embodiment of the present invention;
FIG. 2 illustrates an exemplary system for implementing EPG services; and
FIG. 3 is a detailed block diagram illustrating the reception of EPG data from an EPG data source and the transmission of EPG data from EPG services to one or more applications.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Electronic program guides (EPGs) are used to convey data to a user. Primarily, the data typically transmitted by an EPG data source is related to television programming and may include the titles of the television programs, the descriptions of the television programs, and other attributes and properties of the television programs. The EPGs are usually developed by EPG data providers that are responsible for the content of the EPG data. For instance, EPG data provided by an EPG data provider may be devoted exclusively to movie channels or EPG data can be devoted to public or free television channels. Currently, a recipient of EPG data is restricted to the format and content of a single EPG data provider.
EPGs, however, can also be used to convey other types of information such as radio schedules, Internet streaming media event schedules, information related to the Internet, or the content of the Internet. This document focuses on EPG data relating to television programming, but other data that may be included in EPGs is within the scope of the present invention. The television programming represented by EPG data is frequently displayed in table form. Each row of the table contains a type of information such as the title of the television programs, or a description of the television program, while each column is usually represents a time period or time block. As described previously, a destination device is currently unable to alter these characteristics and must accept the EPG data as it is formatted by an EPG data source.
EPG services overcomes the limitations of the prior art in at least two ways. Instead of simply receiving what an EPG data provider is transmitting, EPG services allows incoming EPG data to be extensibly scaled according to a several different factors or axes. For example, if the EPG data is temporally scaled, EPG services may receive detailed EPG data about television programs airing in the near future and coarse EPG data related to television programs airing further in the future.
In addition, EPG services permits a recipient of EPG data to determine the amount of descriptive EPG data such as titles, descriptions and attributes that is received. For television programs airing in the near future, the EPG data may be rich in content by including detailed descriptions while the EPG for television programs airing in the more distant future may include the titles and exclude the descriptions.
In addition to providing temporal and selective scalability, EPG services is capable or receiving EPG data from more than one EPG data source or provider. EPG services provides a loader module for each EPG data source and an abstraction layer or writer interface that interfaces with all of the loader modules. The writer interface or abstraction layer allows the EPG data received by the loader modules to be stored in the memory or storage of the destination device. Applications may then access the EPG data through another abstraction layer or control interface. The EPG data source or provider may change over time, but the application using EPG data provided by that source or provider is unaffected by those changes because the EPG data is accessed through EPG services rather than from the EPG data source or provider directly. Correspondingly, the application can be updated without regard to the EPG data provider, because the EPG data is stored via the writer interface.
The invention is described using block diagrams and flow charts. Using the block diagrams and flow charts in this manner to describe and represent the invention should not be construed as limiting the scope of the invention. Rather, the block diagrams and flow charts are intended to illustrate exemplary embodiments of the present invention.
The embodiments of the present invention may comprise a special purpose or general purpose computer comprising various computer hardware. Embodiments within the scope of the present invention also include computer-readable media having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media which can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired executable instructions or data structures and which can be accessed by a general purpose or special purpose computer, such as one included in a set top box. Computer-readable media may also include remote data stores such as web servers and other remotedata stores. When information is transferred or provided over a network or other communications connection to a computer, the computer properly views the connection as a computer-readable medium. Thus, such a connection is also properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer-executable instructions and associated data structures represent an example of program code means for executing the steps of the invention disclosed herein.
Although not required, the invention can be described in the general context of computer-executable instructions, such as program modules, being executed by one or more processors included, for example, in a set top box. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including general purpose computers, personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
As used herein “EPG data” refers to television programming information, radio programming information, Internet content, scheduling information, titles, descriptions, movie reviews, ratings information, MPEG Streams, and any other type of data that may be retrieved from a source by an electronic device. The embodiments of the present invention described herein refer to television programming information, but the embodiments of the present invention easily extend to other types of EPG data. As used herein “digital recording” refers to copies of recordings of the data represented by the EPG data and includes but is not limited to television programming, radio programming and the like.
FIGS. 1 and 2 illustrate generally some of the advantages provided by EPG services. The overall purpose of EPG services is to collect remote and transient EPG data and store it to provide applications with fast access, rich content, and querying capabilities for the collected EPG data. For devices having high speednetwork connectivity, the EPG data may also be collected and accessed remotely. EPG services achieves these objectives by: allowing the EPG data to be scaled according to many different factors or axes; providing extensibility such that new sources and types of EPG data may be accessed; providing components or modules to collect the EPG data from EPG data sources and providers; and providing components or modules to access the EPG data that has been retrieved and stored by EPG services.
FIG. 1 is a block diagram illustrating a portion of the scalability that EPG services provides for EPG data. The EPG data in FIG. 1 comprises titles 106, descriptions 104 and attributes 102. Titles 106, descriptions 104 and attributes 102 are each an example of EPG data and the combination of titles 106, descriptions 104 and attributes 102 is also an example of EPG data. EPG data may be retrieved from more than one EPG data source or provider, but the EPG data that is stored by EPG services may differ from the EPG data that was received from the EPG data source. Thus the amount of EPG data retrieved from a particular EPG that is actually stored can vary from completely excluding the EPG data to completely including the EPG data of a particular source. The EPG data illustrated in FIG. 1 is intended to be illustrative of EPG data in general and does not exclude additional information from being included in the EPG data made available by other EPG data sources and providers.
EPG data may be scaled, in this example, according to the factors or axes of time, richness, channels and language. In FIG. 1, time 108 is depicted as the horizontal axis of EPG table 100. Typically, EPG data is stored for two to seven days, but time 108 can be adjusted in one minute intervals to any desired interval. In addition, time 108 can be divided into shorter time intervals. The richness of the EPG data refers to the amount of data that is stored for television program titles, descriptions and attributes and the like. The richness of to time 108. Thus, various intervals of time 108 may have varying levels of richness.
The channels is another scalable factor. In a default condition, EPG data is stored for viewable channels and no EPG data is stored for hidden or test channels. A user, however, may choose to remove a particular channel from the EPG data. In one embodiment, a removed channel is treated differently from a test or hidden channel. EPG data is still stored for removed channels, but the EPG data is not necessarily displayed to a user or an application. Another aspect of the scalability of EPG services is related to favorite or preferred channels. A channel that is designated as preferred or favorite may have EPG data that is more rich than the EPG data stored for other channels. In addition, a user has the ability to exclude certain channels or other attributes from being included in the EPG data.
The EPG data is also scalable with regard to language. This setting only applies, however, to the storage of textual data that describes a television program. The language used in the programming itself does not affect the scalability of the EPG data. The language setting only permits EPG data to be stored if the language matches the system language preferences. The described scalability factors of time, richness, channels and language are exemplary factors and do not limit the factors with which EPG data may be scaled.
EPG data table 100 in FIG. 1 further illustrates an example of EPG data that has been scaled according to richness and time. The amount of data 109 is, in this illustration, indicative of the richness of the EPG data. Column 110 contains attributes 102, descriptions 104 and titles 106. The time period for column 110 is, in this example, the next two days of EPG data. The EPG data in column 110 is rich in that descriptions 104 are extremely detailed, titles 106 are complete, and many attributes 102 are detailed. Exemplary attributes include closed captioning, rating, stereo and more.
Column 111 is indicative, in this example, of a time period from day 3 to day 5. As illustrated, the amount of data 109 is less and is coarser or less rich than the EPG data stored in column 110. Descriptions 104 in column 111 are not as detailed, but titles 106 are still complete and column 111 contains no attributes 102. Similarly, column 112 is indicative of a time period from day 6 to day 7. Only titles 106 are stored in column 112. Thus the EPG data stored in column 112 is less rich than the EPG data in column 111. EPG data table 100 therefore illustrates EPG data that has been scaled with respect to time and richness or content.
The following table is another illustration of EPG data that has been scaled according to time, richness, and channel. The EPG data displayed to a user will reflect the EPG data indicated in the following table.
Channel Type EPG Data Time
Channels Hidden by Title Do not store
EPG Data Provider Description Do not store
Attributes Do not store
Normal Channels Title Store 4 days
Description Store 3 days
Attributes Store 2 days
Favorite Channels Title Store 5 days
Description Store 5 days
Attributes Store 5 days
The above table illustrates a scenario where no EPG data is stored for hidden channels, the richness of the EPG data stored for normal channels is greater for television programs airing in the near future, and the EPG data stored for favorite channels is very rich for the entire time period stored. In this manner, the EPG data can be scaled and stored in a variety of different combinations using a variety of factors. EPG services allows EPG data to be custom tailored for a particular application or user. Channels or other attributes or descriptions that are not of interest to a particular application or user may be excluded.
FIG. 2 is a block diagram illustrating an exemplary system capable of implementing one embodiment of the present invention. FIG. 2 illustrates a device 20, which may be a set top box, a computer, a video cassette recorder, a television tuner, a modem, a digital satellite tuner, or any other device capable of receiving EPG data. Device 20 receives EPG data from EPG data provider 70. Exemplary EPG data providers or sources include television stations, Internet Service Providers (ISPs), and satellites. The EPG data may be transferred via in-band television signals, out-of-band television signals, Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Transmission Control Protocol/Internet Protocol (TCP/IP) sockets, or any other communication protocol.
Device 20 typically has at least one application 22 which is capable of utilizing the EPG data provided by EPG data provider 70. EPG services 40 acts as an intermediary between EPG data provider 70 and application 22. In this manner, both application 22 and EPG data provider 70 may change independent of the other without creating an incompatibility that may render application 22 incapable of receiving EPG data because EPG data provider 70 and application 22 interact with EPG services 40 rather than with each other.
One embodiment of EPG services 40 provides pluggable modules for EGP loaders 60, EPG writer 43, storage 42, and EPG control 41. EPG loaders 60 provide the ability to receive EPG data from EPG data providers. As new EPG data providers become available to device 20, a new EPG loader 60 is added to EPG services 40. The EPG loader added to the system for the new EPG data provider is capable of collecting the EPG data from the new EPG data provider. For example, an EPG loader 60 may be added to EPG services 40 which is capable of retrieving or collecting movie review data from an HTTP address. In addition, EGP loaders 60 can be added and removed from EPG services 40 as needed. When an EPG data provider 70 is no longer available, for example, the EPG loader corresponding to that EPG provider is removed from EPG services 40.
EPG writer 43 is a component or module that stores the EPG data collected by EPG loaders 60 in storage 42 which is a database containing EPG data in one embodiment. Storage 42 is also an example of a computer-readable medium. EPG writer 43 is responsible, in this example, for enforcing the scaling of the EPG data as well as the maximum amount of storage 42 that may be used for storing EPG data. Thus, if an EPG loader attempts to store EPG data that is greater in size than the maximum amount of EPG data allowed, then EPG data relating to television programming furthest in the future is removed until the EPG data being stored does not exceed the maximum storage amount allowed.
EPG writer 43 also removes EPG data from storage 42 that is no longer needed or usable. For instance, EPG writer 43 deletes the EPG data from storage 42 for all television programs which have aired before the current half-hour block. For example, at 8:15 a.m., EPG writer 43 will delete all EPG data relating to television programming occurring prior to 8:00 a.m. At 8:35 a.m., EPG writer 43 deletes television programming prior to 8:30 a.m. One reason for deleting EPG data and for limiting the amount of EPG data that can be downloaded is because storage 42 of device 20 is typically limited.
Because EPG services 40 may have a plurality of EPG loaders 60, it is possible that one or more EPG loaders 60 will attempt to add EPG data to the same record or storage locations. More simply, it is possible for a conflict to arise with respect to the EPG data in a variety of contexts. For this reason, EPG services provides various schemes for resolving conflicts. For example, multiple loaders may attempt to update the description for the same program. To resolve this conflict, the EPG writer may be implemented to treat each EPG loader with a different priority. The EPG writer may permit higher priority loaders to take precedence. Another alternative for EPG loaders with equal priorities is to permit the last EPG data written to take precedence and be stored in storage 42. Another alternative is to allow a user or application to select a conflict resolution scheme if conflicting EPG data sources are present. Simply stated, the user could designate a particular EPG data source or provider as having priority over another IPG data source or provider. These are examples of conflict resolution, but other methods orschemes may be employed.
It is also possible for EPG loaders 60 to implement a priority scheme independent of the EPG writer. This implementation, however, reduces the independent of the EPG loaders and forces more rigid interface and implementation constraints upon the development and design of the EPG loaders. In addition, EPG loaders 60 may be time based threads that activate and deactivate at predetermined times.
The retrieval of EPG data from storage 42 is performed by a control module illustrated as EPG control 41, which is an example of a controller API in some embodiments. EPG control 41 may access: EPG data related to the available channels including channel number, channel station, network identification, station broadcast times and associated Uniform Resource Locators (URLs); EPG data related to information related to programming information including title, description, length, rating and other air times; or EPG data relating to whether the television program is purchasable, such as a pay-per-view movie or event. The EPG data can be accessed and retrieved by EPG control 41 in a variety of different combinations.
The ability to access and retrieve EPG data is enhanced by the querying capabilities supplied by EPG control. EPG data can be searched by many parameters, including but not limited to, time, title, description, category or other attribute which may be user defined. In this manner, the EPG data retrieved by an application can be extremely customized for an application. For high performance applications, EPG control 41 is also capable of notifying application 22 when the EPG data within a particular range changes. This enables applications 22 to maintain up to date EPG data available.
FIG. 3 is a detailed block diagram of a system implementing one embodiment of the present invention. Device 20 has one or more applications 22 which are capable of using EPG data. The EPG data retrieved by applications 22 may be displayed to a user via a television screen or a computer screen, or may be sent to a printer or other rendering device. EPG data is typically generated by EPG data providers 70, which are shown in FIG. 3 as listings provider 74, movie descriptions provider 75 and satellite listings provider 76. In this example, the EPG data generated by listings provider 74 is transmitted via a television station 71, the EPG data generated by movie descriptions provider 75 is transmitted via an Internet Service Provider (ISP) 72, and the EPG data generated by satellite listings provider 76 is transmitted via satellite 73. It is understood that EPG data can be transmitted in a variety of different methods and that the transmission of EPG data described herein is exemplary rather than limiting. For instance, listings provider 74 may also transmit via ISP 72.
The EPG data provided by EPG data providers 70 is received at device 20 by EPG services 40 which comprises EPG loaders 60. An EPG loader or loader module has the responsibility of collecting EPG data from its native transmission format. EPG loaders 60 comprises one or more specific EPG loaders because as illustrated by the various EPG data providers 70, EPG data can be transmitted in a variety of different methods and formats and new sources or providers of EPG data may become available in the future. For these and other reasons, each loader module collects EPG data, in this embodiment, from a particular source or provider.
FIG. 3 illustrates a Vertical Blanking Interval (VBI) loader module 61, a HTTP loader module 62 and a MPEG loader module 63. VBI loader module 61 is capable of collecting EPG data from the VBI of a television signal or broadcast. HTTP loader module 62 is capable of collecting EPG data over a network such as the Internet, and MPEG loader module 63 is capable of collecting or retrieving EPG data from a digital stream provided by satellite 73. EPG loaders 60 allow EPG data to be collected from any communication system or protocol and are not limited to those illustrated in FIG. 3.
In addition to understanding the transmission medium and format of a particular EPG data provider 70, Each EPG loader module optionally comprises the hardware and software necessary to accomplish this task. This is illustrated by HTTP loader module 62 which comprises a protocol 64, a device driver 65 and a modem 66. For HTTP loader module 62, protocol 64 may be HTTP and TCP/IP if the transmission medium is the Internet. Typically, modem 66 is the hardware required to access the Internet, but access can be accomplished with other hardware components such as a network interface cards. Device driver 65 is typically a software module designed for a particular hardware component such as modem 66.
Conflict resolution 44 is an optional pluggable component that permits a user to specify the actions to be taken when one or more EPG data providers 70 conflict. The action taken by conflict resolution 44 can be specified by the user, the application 22 or the supplier of the EPG data. For instance, the user could specify that conflict resolution 44 cause movie descriptions provider 75 to have priority over satellite listing sprovider 76. In this instance, the portions of the EPG data provided by satellite listings provider 76 that conflict with the EPG data provided by movie descriptions provider 75 are discarded or otherwise handled. Conflict resolution 44 is extensible and can be implemented by attribute as well as by EPG data provider. Conflict resolution 44 can also be implemented at the EPG loader level, whereby the EPG loaders resolve conflicts.
Each EPG loader 60 is capable of interacting with EPG writer 43. EPG writer 43 comprises an applications programming interface (API), in one embodiment, which is used by EPG loaders 60 to interface with EPG writer 43. The collected EPG data is placed in storage 42 by EPG writer 43. Typically, EPG loader 60 creates an instance of EPG writer 43 to perform updates to storage 42, which may be a local or remote data store. EPG writer 43 provides methods having one or more parameters that allow the EPG data collected by EPG loaders 60 to be placed in storage 42 such that the EPG data may be queried and retrieved by EPG control 41.
EPG writer 43 provides the following properties, methods or functions. AudioSubChannel adds a new audio subchannel format and has the parameters languageCode, isMainAudioService, isDolbyEncoded, and programType. AudioSubChannelForScheduleEntry adds a new audio subchannel to a schedule entry and has the parameters scheduleDataID and audioDataID. CategorizationSystem adds a new categorization system to the data store and has the parameters categorizationSystemName and pSystemDataID. CategoryPair adds a new category or subcategory pair to the data store.
CategoryForProgram maps a category pair to a specific program and has the parameters programDataID and categoryPairDataID. Channel adds a new channel to the data store and has the parameters serviceRecordID, channel, network, station, description, channelTtype, startSeconds, and pChannelDataID. ClearAll removes all data from the data store and has no parameters. ClearChannels removes all channel data from the data store and has no parameters. ClearPrograms removes all program data from the data store and has no parameters. ClearScheduleEntries removes all schedule data from the data store. DeleteAudioSubChannel removes a specific audio subchannel from the data store and has the parameter audioDataID.
DeleteCategorizationSystem removes a specific categorization system from the data store and has the parameter systemDataID. DeleteCategoryPair removes a specific category pair from the data store and has the parameters systemDataID, categoryName, and subCategoryName. DeleteChannel removes a specific channel from the data store had has the parameter ChannelObject. DeleteProgram removes a specific program from the data store and has the parameter ProgramObject. DeletePropertyForChannel removes a property from a channel object and has the parameters pChannelObject and propertyName. DeletePropertyForProgram removes a property from a program object and has the parameters pProgramObject and propertyName.
DeletePropertyForScheduleEntry removes a property from a schedule entry and has the parameters pScheduleEntryObject and propertyName. DeletePropertyForWeblink removes a property from a weblink object and has the parameters pWeblinkObject and propertyName. DeleteScheduleEntry removes a specific schedule entry from the data store and has the parameter ScheduleEntryObject. DeleteSharingDay removes a specific sharing day from the data store and has the parameter sharingDayDataID. DeleteVideoSubChannel removes a specific video subchannel from the data store and has the parameter videoDataID. DeleteWeblink removes a specific Web link from the data store and has the parameter WeblinkObject.
EnableDuplicateChecking sets the preferred result for this condition and has the parameter preventDuplicates. Program adds a new program to the data store and has the parameters programTitle, programDescription, yearMade, seconds, and programDataID. PropertyForChannel adds an extensible name-value property to a specific channel and has the parameters channelDataID, name and value. PropertyForProgram adds an extensible name-value property to a specific program and has the parameters programDataID, name, and value. PropertyForScheduleEntry adds an extensible name-value property to a specific schedule entry and has the parameters scheduleEntryDataID, name, and value. PropertyForWeblink adds an extensible name-value property to a specific Weblink and has the parameters weblinkDataID, name, and value.
PurchaseStringForScheduleEntry adds a new purchase string to a specific schedule entry and has the parameters scheduleEntryDataID and purchaseString, which is frequently encrypted. RatingForProgram maps a rating authority and rating to a specific program and has the parameters program DataID, and ratingCode. RemoveOldScheduleEntriesAndPrograms removes schedule entries before a specific time and their associated program, rating, category, property, and Web link data and has the parameter beforeThisTime. ScheduleEntry adds a new schedule entry to the data store and has the parameters eventID, channelDataID, startTime, endTime, cc, rerun, videoDataID, audioDataID, and scheduleEntryDataID. SharingDay adds a unique sharing day to the data store and has the parameters startDay, startTime, endDay, endTime, and pSharingDataID. SharingDayForChannel links a unique sharing day to a particular channel and has the parameters channelDataID, and sharingDataID.
UpdateComplete indicates the current set of updates to the data store is complete. VideoSubChannel indicates the current set of updates to the EPG services storage or data store is completer and has the parameters language, aspectRation, videoSourceHeight, videoSourceWidth, squarePixel, componentType, streamed, and pVideoDataID. VideoSubChannelForScheduleEntry creates a relationship between a schedule entry and a video subchannel and ahs the parameters scheduleEntryDatalD and videoDataID.
Weblink adds a new Web link to the data store and has the parameters url, description, startTime, endTime and pWeblinkDataID. WeblinkForChannel maps a Weblink to a specific channel and has the parameters channelDataID, and weblinkDataID. WeblinkForProgram maps a Web link to a specific program and has the parameters programDataID, and weblinkDataID. WeblinkForScheduleEntry maps a Web link to a specific schedule entry and has the parameters scheduleEntryDatalD and weblinkDataID.
While EPG loaders 60 place EPG data in storage 42 via EPG writer 43, EPG control 41 performs the functions necessary to retrieve the EPG data from storage 42. EPG control 41, in one embodiment also comprises an API that provides functions and methods to application 22 that assist in the access and retrieval of EPG data. For example, it is necessary in many instances for EPG control 41 to determine if the necessary EPG data is available in storage 42. Functions and methods are also provided by EPG control 41 that are able to access and retrieve EPG data relates to channels.
While a program is typically a unique event, programs may be repeated by a television station and may therefore correspond to one or more schedule entries. To retrieve EPG data concerning a program, EPG control 41 provides methods and functions for use with schedule entries. Programs may also belong to one or more categories or subcategories and EPG control 41 provides functions to retrieve the valid category and subcategory pairs.
Programs also may have one or more ratings which correspond to different rating authorities and EPG control 41 has functions and methods to access ratings. Some applications 22 may request notification of changes to the EPG data that may occur within a particular time range. EPG control 41 services these requests and fires an event when the EPG data changes. Typically, only one event may be requested for each instance of EPG control 41. EPG control 41 provides properties, methods, and events, generally designated as functions, which allow EPG control 41 to be used by an application to access storage 42 or other data store.
The properties of EPG control 41 are as follows. CategorizationSystems retrieves a collection of the names of known schemes for organizing programs by type and has the parameter psystems. DataEndTime returns the time in the future at which the available data ends and has the parameter pEndTime. HighestDataStartTime returns the furthest time in the future when a program starts and has the parameter pStartTime. IsAnyDataAvailable returns information to confirm if valid channel or guide listings exist in the data store and has the parameter pDataAvailable. IsChannelDataAvailable returns information to indicate if channel data exists in the data store and has the parameter pChannelDataAvailable. RatingSystem retrieves a collection of strings for the names of known schemes or systems for organizing content ratings and has the parameter psystems. AvailableChannels retrieves the Channels collection object and has the parameter pChannels.
The methods of EPG control 41 are as follows. CancelCategoryEventRequest disables signaling of OnCategoryUpdate events. CancelChannelEventRequest disables signaling of OnChannelUpdate events. CancelRangeEventRequest disables signaling of OnRangeUpdate events. Categories retrieves a collection of the names of main categories within a categorization system for a given categorization system name and has the parameters categorizationSystemName and pCategories. ChannelsForProviderNetworkName returns channels matching the search value and has the parameters searchString, substringMatch, and pChannels. ChannelsForNumber retrieves a Channels collection object for valid device channels with a particular channel number or tuple and has the parameters serviceSpace, channel, time, and pChannels. ChannelsForProviderName returns channels matching the search value and has the parameters searchString, substringMatch, and pChannels.
IsScheduleDataAvailable returns information indicating whether EPG data is found for a range and has the parameters startTime, endTime, and pScheduleDataAvailable. Program retrieves the Program object representing the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time and pProgram. ProgramEndTime retrieves the end time for the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time and pEndTime.
ProgramLength retrieves the length in seconds for the program shown and the specified channel and the specified time and has the parameters serviceSpace, channel, time, and pSeconds. ProgramRating retrieves a Rating object for a particular program and has the parameters serviceSpace, channel, time, ratingSystem, and prating. ProgramStartTime retrieves the start time for a particular program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time, and pStartTime. ProgramTitle retrieves the name of the program shown on the specified channel at the specified time and has the parameters serviceSpace, channel, time, and pTitle.
RequestCategoryUpdateEvent indicates that an event should be fired when any aspect of the known categorization systems changes. RequestChannelUpdateEvent indicates that an event should be fired when a new channel has been added to the specified service space. RequestRangeUpdateEvent returns the update of the time range and has the parameters startTime and endTime. ScheduleEntries returns all schedule time slots matching the query values and has the parameters serviceSpace, channel, startTime, endTime, and pScheduleEntries. ScheduleEntriesForCategories returns programs that match the query values and has the parameters categorizationSystem, categories, startTime, endTime, maxhits, and pScheduleEntries.
ScheduleEntriesForProgramProperty returns programs matching the query values and has the parameters name, value, startTime, endTime, maxHits, and pScheduleEntries. ScheduleEntriesForProperty returns time slots matching query values and has the parameters name, value, startTime, endTime, maxHits, and pScheduleEntries. ScheduleEntriesForStrings retrieves a ScheduleEntries collection object representing all time periods for programs whose title or description includes a particular case-insensitive string which will be shown and has the parameters searchStrings, subStringMatch, findTitle, findDescription, startTime, endTime, maxHits, and pScheduleEntries. ScheduleEntry returns a time slot matching query values, and has the parameters serviceSpace, channel, time, and pScheduleEntry. SubCategories retrieves a collection of the names of subcategories within a categorization system for a given categorization system name and category name and has the parameters categorizationSystemName, categoryIndex, and pSubCategories.
The EPG control 41 events are as follows. OnCategoryUpdate indicates that a new category has been added. OnChannelUpdate indicates that a new channel has been added. OnRangeUpdate indicates that the data within the time range specified by RequestRangeUpdateEvent has changed.
The extensible properties of a channel, program, schedule entry, weblink or other EPG data is retrieved in one embodiment through the use of EPG control objects which include CategoryPair, CategoryPairs, Channel, Channels, GuideRating, GuideRatings, Program, Programs, PurchaseStrings, ScheduleEntry, ScheduleEntries, Weblink, Weblinks, SharingSchedule, MajorMinorSelectorIDs, and Tuple. These objects and associated methods are detailed in the previously incorporated provisional application. While the APIs of the invention have been described herein with reference to specific functions and parameters, the invention also extends to other APIs that provide similar functionality.
EPG services is intended to provide extensibility to EPG data. As illustrated, new sources of EPG data are easily accommodated by a device. The EPG data can be scaled and formatted in a variety of ways. Extensible properties can be added to the channel, program schedule entry, or weblink data and multiple properties may be added to the same set of EPG data, which enhances the ability of applications to search and utilize the stored EPG data.
EPG Data Map is another component of EPG services that is used to retrieve necessary data from EPG services, but should not be used by EPG loaders or other applications or components. EPG Data Map, in one embodiment, is an API.
EPG Data Map provides the following methods and functions. NetworkCallLetters retrieves the network name for a specific service record ID and has the parameters serviceRecordID, time, and pNetworkCallLetters. ProgramEndTime retrieves the end time for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pEndTime. ProgramLength retrieves the length in seconds for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pSeconds. ProgramPurchaseString retrieves the available purchase strings for a specified program and has the parameters serviceRecordID, time, cDims, pcDims, and pPurchaseStrings. ProgramRatings retrieves Ratings objects for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pRatings. ProgramStartTime retrieves the start time for the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pStartTime. ProgramTitle retrieves the name of the program shown on the specified channel at the specified time and has the parameters serviceRecordID, time, and pTitle. ServiceRecordIDForNetworkCallLetters retrieves a ServiceRecordID that matches a specific network call letter string and has the parameters serviceSpace, searchstring, substringMatch, cDims, pcDims, and pServiceRecordIDs. ServiceRecordlDForStationCallLetters retrieves a ServiceRecordID that matches a specific station call letter string and has the parameters serviceSpace, searchString, substringMatch, cDims, pcDims, and pServiceRecordIDs. StationCallLetters retrieves the station name for a specific service record ID and has the parameters serviceRecordID, time, minorChannel, and pStationCallLetters.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (70)

1. In a device having a plurality of electronic program guide (EPG) loaders that are each configured to receive EPG data from one or more EPG sources, a method for interfacing the one or more EPG loaders with a database associated with the device, the method comprising:
receiving, at each of a plurality of EPG loaders, EPG data from a different EPG data source;
collecting the EPG data from the EPG loaders at a writer module;
upon determining at the writer module that there is a conflict in the EPG data received from at least two of the different EPG data sources, resolving the conflict according to conflict resolution criteria, wherein the conflict resolution criteria includes giving each EPG loader equal priorities, and wherein resolving the conflict includes giving precedence to EPG data that is received most recently;
calling a function of the writer module to store the EPG data in a database accessible by the device; and
executing the function by the writer module, thereby storing the EPG data in the database.
2. A method as in claim 1, further including execution of another function of the writer module that adds a new audio subchannel format to the stored EPG data.
3. A method as in claim 1, further including execution of another function of the writer module that adds a new audio subchannel to a schedule entry in the stored EPG data.
4. A method as in claim 1, wherein the function creates a new categorization system for storing the EPG data.
5. A method as in claim 1, wherein the function adds at least one of a new category and subcategory pair to the database.
6. A method as in claim 5, wherein the function maps a category pair to a specific program.
7. A method as in claim 1, further including execution of another function of the writer module that adds a new EPG channel to the database.
8. A method as in claim 1, wherein a function executed by the writer module removes all EPG data from the database.
9. A method as in claim 1, further including execution of another function of the writer module that removes all channel data from the database.
10. A method as in claim 1, wherein further including execution of another function of the writer module that removes all program data from the database.
11. A method as in claim 1, wherein a function executed by the writer module removes all schedule data from the database.
12. A method as in claim 1, wherein a function executed by the writer module removes a specific audio subchannel from the database.
13. A method as in claim 1, wherein a function executed by the writer module removes a specific categorization system from the database.
14. A method as in claim 1, wherein a function executed by the writer module removes a specific category pair from the database.
15. A method as in claim 1, further including execution of another function of the writer module that removes a specific program from the database.
16. A method as in claim 1, further including execution of another function of the writer module that removes a property from a program object in the database.
17. A method as in claim 1, further including execution of another function of the writer module that removes a property from a schedule entry in the database.
18. A method as in claim 1, wherein a function executed by the writer module removes a property from a weblink object in the database.
19. A method as in claim 1, further including execution of another function of the writer module that removes a specific schedule entry from the database.
20. A method as in claim 1, further including execution of another function of the writer module that sets a preferred result for a condition.
21. A method as in claim 1, further including execution of another function of the writer module that adds a new program to the database.
22. A method as in claim 1, further including execution of another function of the writer module that adds an extensible name-value property to a specific channel.
23. A method as in claim 1, further including execution of another function of the writer module that adds an extensible name-value property to a specific program.
24. A method as in claim 1, further including execution of another function of the writer module that adds an extensible name-value property to a specific schedule entry.
25. A method as in claim 1, further including execution of another function of the writer module that adds an extensible name-value property to a specific Weblink.
26. A method as in claim 1, wherein the function adds a new purchase string to a specific schedule entry.
27. A method as in claim 1, further including execution of another function of the writer module that maps a rating authority and rating to a specific program.
28. A method as in claim 1, further including execution of another function of the writer module that removes schedule entries and associated program, rating, category, property and Weblink data from the database prior to a specific time.
29. A method as in claim 1, further including execution of another function of the writer module that adds a new schedule entry to the database.
30. A method as in claim 1, further including execution of another function of the writer module that indicates a current set of updates to the database is complete.
31. A method as in claim 1, further including execution of another function of the writer module that indicates the current set of updates to the EPG services storage or database is complete.
32. A method as in claim 1, further including execution of another function of the writer module that creates a relationship between a schedule entry and a video subchannel.
33. A method as in claim 1, further including execution of another function of the writer module that adds a Weblink to the database.
34. A method as in claim 1, further including execution of another function of the writer module that maps a Weblink to a specific channel.
35. A method as in claim 1, further including execution of another function of the writer module that maps a Weblink to a specific program.
36. A method as in claim 1, wherein the function maps a Weblink to a specific schedule entry.
37. A method as recited in claim 1, wherein resolving the conflict includes allowing a user to select a conflict resolution scheme.
38. A method as recited in claim 37, wherein allowing the user to select a conflict resolution scheme includes allowing a user to assign a priority to the EPG loaders.
39. A method as recited in claim 1, wherein resolving the conflict includes allowing an application to select a conflict resolution scheme.
40. A method as recited in claim 1, further including:
calling a second function of a control module operating at the device that accesses the database to retrieve the EPG data and transmits the EPG data to the one or more applications; and
executing the second function by the control module.
41. A method as in claim 40, further including execution of another function of the control module that retrieves a collection of names of known schemes for organizing programs by type.
42. A method as in claim 40, further including execution of another function of the control module that returns a time in the future at which available data ends.
43. A method as in claim 40, further including execution of another function of the control module that returns a furthest time in the future when a program starts.
44. A method as in claim 40, further including execution of another function of the control module that returns information to confirm if valid channel and guide listings exist in the database.
45. A method as in claim 40, further including execution of another function of the control module that returns information to indicate if channel data exists in the database.
46. A method as in claim 40, further including execution of another function of the control module that retrieves a collection of strings for names of known schemes for organizing content ratings.
47. A method as in claim 40, further including execution of another function of the control module that retrieves a channels collection object.
48. A method as in claim 47, further including execution of another function of the control module that retrieves the Channels collection object for valid device channels with a particular channel number.
49. A method as in claim 40, wherein the function disables signaling of update events.
50. A method as in claim 40, further including execution of another function of the control module that retrieves a collection of names of main categories within a categorization system for a given categorization system name.
51. A method as in claim 40, further including execution of another function of the control module that returns channels matching a search value.
52. A method as in claim 40, further including execution of another function of the control module that returns information indicating whether EPG data is found for a range.
53. A method as in claim 40, further including execution of another function of the control module that retrieves a program object representing a program shown on a specified charnel at a specified time.
54. A method as in claim 40, further including execution of another function of the control module that retrieves an end time for a program.
55. A method as in claim 40, further including execution of another function of the control module that retrieves a length of a program shown.
56. A method as in claim 40, further including execution of another function of the control module that retrieves a rating object for a particular program.
57. A method as in claim 40, further including execution of another function of the control module that retrieves the start time for a particular program.
58. A method as in claim 40, further including execution of another function of the control module that retrieves a name of a program.
59. A method as in claim 40, further including execution of another function of the control module that indicates that an event should be fired when any aspect of a known categorization system of the database changes.
60. A method as in claim 59, further including execution of another function of the control module that indicates that the event should be fired when a new channel has been added to the database.
61. A method as in claim 40, further including execution of another function of the control module that returns updates occurring within a particular time range.
62. A method as in claim 40, further including execution of another function of the control module that returns all schedule time slots matching query values.
63. A method as in claim 40, further including execution of another function of the control module that returns programs that match query values.
64. A method as in claim 40, further including execution of another function of the control module that retrieves a collection object representing all time periods for programs whose title or description includes a particular case-insensitive string.
65. A method as in claim 40, further including execution of another function of the control module that retrieves a collection of subcategory names for a given category name.
66. A method as in claim 40, wherein the second function indicates that a new category has been added to the EPG data.
67. A method as in claim 40, wherein the second function indicates that a new channel has been added to the EPG data.
68. A method as in claim 40, wherein the second function indicates that the EPG data within a particular time range has changed.
69. A computer-readable medium having computer-executable instructions for implementing the method recited in claim 1.
70. A computing device comprising one or more computer readable media having computer-executable instructions for implementing the method recited in claim 1.
US09/527,137 1999-03-18 2000-03-16 Application program interfaces for electronic program guide data services Expired - Fee Related US6990677B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/527,137 US6990677B1 (en) 1999-03-18 2000-03-16 Application program interfaces for electronic program guide data services

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12506299P 1999-03-18 1999-03-18
US09/527,137 US6990677B1 (en) 1999-03-18 2000-03-16 Application program interfaces for electronic program guide data services

Publications (1)

Publication Number Publication Date
US6990677B1 true US6990677B1 (en) 2006-01-24

Family

ID=35614165

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/527,137 Expired - Fee Related US6990677B1 (en) 1999-03-18 2000-03-16 Application program interfaces for electronic program guide data services

Country Status (1)

Country Link
US (1) US6990677B1 (en)

Cited By (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049804A1 (en) * 2000-06-29 2002-04-25 Rodriguez Arturo A. Configuration options for transaction processing
US20020186296A1 (en) * 2000-06-30 2002-12-12 Metabyte Networks, Inc. Database management system and method for electronic program guide and television channel lineup organization
US20020188956A1 (en) * 2001-06-07 2002-12-12 Michael Ficco Method and system for electronic program guide temporal content organization
US20030067554A1 (en) * 2000-09-25 2003-04-10 Klarfeld Kenneth A. System and method for personalized TV
US20030093795A1 (en) * 2000-01-26 2003-05-15 Shigeki Takahashi Electronic program guide display controller
US20030118323A1 (en) * 1998-06-12 2003-06-26 Ismail Labeeb K. Television program recording with user preference determination
US20030195891A1 (en) * 2002-04-16 2003-10-16 Marsh David J. Describing media content in terms of degrees
US20030233241A1 (en) * 2002-06-06 2003-12-18 Marsh David J. Methods and systems for generating electronic program guides
US20030231855A1 (en) * 2002-06-14 2003-12-18 Gates Matthijs A. Scalable programmable video recorder
US20030236756A1 (en) * 2001-06-21 2003-12-25 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20040001081A1 (en) * 2002-06-19 2004-01-01 Marsh David J. Methods and systems for enhancing electronic program guides
US20040168191A1 (en) * 1999-06-11 2004-08-26 Jerding Dean F. Channel control system for exiting from an interactive program guide
US20050028190A1 (en) * 2002-02-11 2005-02-03 Rodriguez Arturo A. Management of television advertising
US20050160468A1 (en) * 2004-01-21 2005-07-21 Rodriguez Arturo A. Interactive discovery of display device characteristics
US20050240961A1 (en) * 1999-06-11 2005-10-27 Jerding Dean F Methods and systems for advertising during video-on-demand suspensions
US20060026665A1 (en) * 2000-06-09 2006-02-02 Rodriguez Arturo A Media-on-demand catalog viewing preference system
US20060112434A1 (en) * 1999-06-11 2006-05-25 Arturo Rodriguez Video on demand system with selectable options of configurable random-access control
US20060259926A1 (en) * 2000-07-20 2006-11-16 Digital Deck, Inc. Adaptable programming guide for networked devices
US20070053293A1 (en) * 2005-09-07 2007-03-08 Mcdonald James F Optimizing data rate for video services
US20070136748A1 (en) * 2000-06-09 2007-06-14 Rodriguez Arturo A Supplementary data corresponding to a video presentation
US20070157270A1 (en) * 2005-12-28 2007-07-05 Lee Sean S Receiving apparatus using non-volatile memory and method of operating the same
US20070156589A1 (en) * 2005-12-30 2007-07-05 Randy Zimler Integrating personalized listings of media content into an electronic program guide
US20080022308A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Pre-populated Search Results In Electronic Program Guide Data
US20080101460A1 (en) * 2000-11-10 2008-05-01 Scientific Atlanta Systems and Methods for Dynamically Allocating Bandwidth in a Digital Broadband Delivery System
US20080107392A1 (en) * 2006-11-06 2008-05-08 Sbc Knowledge Ventures, L.P. Digital video recorder (DVR) scheduling
US20080262968A1 (en) * 2007-03-26 2008-10-23 Infosys Technologies Ltd. Software licensing control via mobile devices
US20080281968A1 (en) * 2001-06-29 2008-11-13 Rodriguez Arturo A Updating Download Options for Unavailable Media Content
US7484233B2 (en) 1999-03-18 2009-01-27 Microsoft Corporation Systems and methods for electronic program guide data services
US7516469B1 (en) * 2000-11-07 2009-04-07 Jlb Ventures, Llc Universal programming system and method for electronic programming guide
US20090112930A1 (en) * 2007-10-31 2009-04-30 Echostar Technologies Corporation Processes and systems for enhancing an electronic program guide
US20090150958A1 (en) * 2000-04-03 2009-06-11 Scientific-Atlanta, Inc. Providing alternative services based on receiver configuration and type of display device
US20090183081A1 (en) * 2001-06-29 2009-07-16 Scientific-Atlanta, Inc. System and method for characterization of purchasable and recordable media (prm)
US20090193471A1 (en) * 2001-06-29 2009-07-30 Scientific-Atlanta, Inc. Providing information pertaining to audio-visual and personal bi-directional services
US20090276808A1 (en) * 2000-05-04 2009-11-05 Scientific Atlanta, Inc. Configuration of tv services via alternate communication
US7617511B2 (en) 2002-05-31 2009-11-10 Microsoft Corporation Entering programming preferences while browsing an electronic programming guide
US20100138790A1 (en) * 2000-06-22 2010-06-03 Rashkovskiy Oleg B Electronic Programming Guide With Selectable Categories
US20100319040A1 (en) * 2004-07-30 2010-12-16 Diaz Perez Milton System for adding or updating video content from internet sources to existing video-on-demand application of a digital tv services provider system
US20110107346A1 (en) * 2009-10-09 2011-05-05 Echostar Global B.V. Dynamically determining and utilizing an application programming interface of an electronic device
EP2318999A1 (en) * 2008-07-31 2011-05-11 Hewlett-Packard Development Company, L.P. Capturing internet content
US8006262B2 (en) 2001-06-29 2011-08-23 Rodriguez Arturo A Graphic user interfaces for purchasable and recordable media (PRM) downloads
US8028313B2 (en) 2006-12-21 2011-09-27 Verizon Patent And Licensing Inc. Linear program guide for media content access systems and methods
US8051447B2 (en) 2007-12-19 2011-11-01 Verizon Patent And Licensing Inc. Condensed program guide for media content access systems and methods
US8069461B2 (en) 2006-03-30 2011-11-29 Verizon Services Corp. On-screen program guide with interactive programming recommendations
US8103965B2 (en) 2007-06-28 2012-01-24 Verizon Patent And Licensing Inc. Media content recording and healing statuses
US20120039580A1 (en) * 2000-08-08 2012-02-16 The Directv Group, Inc. Method and System for Remote Television Replay Control
US8166511B2 (en) 2000-07-20 2012-04-24 Resource Consortium Limited Mechanism for distributing content data
EP2489183A1 (en) * 2009-10-14 2012-08-22 Thomson Licensing Automatic media asset update over an online social network
US8352984B2 (en) 1998-06-12 2013-01-08 Thomson Licensing System and method for generating and managing user preference information for scheduled and stored television programs
US8418217B2 (en) 2006-09-06 2013-04-09 Verizon Patent And Licensing Inc. Systems and methods for accessing media content
US8418203B1 (en) * 1999-08-19 2013-04-09 Sony Corporation Transmission method and receiving device of program guide information including a control signal
US8464295B2 (en) 2006-10-03 2013-06-11 Verizon Patent And Licensing Inc. Interactive search graphical user interface systems and methods
US8510780B2 (en) 2006-12-21 2013-08-13 Verizon Patent And Licensing Inc. Program guide navigation tools for media content access systems and methods
US8516525B1 (en) 2000-06-09 2013-08-20 Dean F. Jerding Integrated searching system for interactive media guide
US8566874B2 (en) 2006-10-03 2013-10-22 Verizon Patent And Licensing Inc. Control tools for media content access systems and methods
US8590028B2 (en) 2007-07-09 2013-11-19 Infosys Limited Content licensing and conditional access using a mobile device
US20140053197A1 (en) * 2012-08-17 2014-02-20 Flextronics Ap, Llc Epg data functions
US8726159B2 (en) 2007-01-05 2014-05-13 Verizon Patent And Licensing Inc. Content level navigation systems and methods
US20140359684A1 (en) * 2011-12-12 2014-12-04 Sony Corporation Client terminal and operation method of client terminal, transmission server and operation method of transmission server, and program
US20150106328A1 (en) * 1999-03-30 2015-04-16 Tivo Inc. Distributed database management system
US9113228B2 (en) 2004-07-30 2015-08-18 Broadband Itv, Inc. Method of addressing on-demand TV program content on TV services platform of a digital TV services provider
US20150242244A1 (en) * 2004-08-20 2015-08-27 Adaptive Computing Enterprises, Inc. System and Method For a Workload Management and Scheduling Module to Manage Access to a Compute Environment According to Local and Non-Local User Identity Information
US9247308B2 (en) 2004-07-30 2016-01-26 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9529870B1 (en) 2000-09-14 2016-12-27 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US20170034303A1 (en) * 2015-07-28 2017-02-02 Echostar Technologies L.L.C. Methods and apparatus to create and transmit a condensed logging data file
US9584868B2 (en) 2004-07-30 2017-02-28 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
EP2035952A4 (en) * 2006-06-16 2017-03-22 Microsoft Technology Licensing, LLC Application program interface to manage media files
US9635429B2 (en) 2004-07-30 2017-04-25 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9693104B2 (en) 1999-10-20 2017-06-27 Tivo Solutions Inc. Client-side multimedia content targeting system
US9785479B2 (en) 2004-03-13 2017-10-10 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US9886322B2 (en) 2004-03-13 2018-02-06 Iii Holdings 12, Llc System and method for providing advanced reservations in a compute environment
US9959141B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of providing a self-optimizing reservation in space of compute resources
US9959140B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of co-allocating a reservation spanning different compute resources types
US10419805B2 (en) 2012-08-17 2019-09-17 Flextronics Ap, Llc Data service
US10445148B2 (en) 2004-03-13 2019-10-15 Iii Holdings 12, Llc System and method of performing a pre-reservation analysis to yield an improved fit of workload with the compute environment
US10951487B2 (en) 2004-06-18 2021-03-16 Iii Holdings 12, Llc System and method for providing dynamic provisioning within a compute environment
US11252459B2 (en) 2004-07-30 2022-02-15 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11496415B2 (en) 2005-04-07 2022-11-08 Iii Holdings 12, Llc On-demand access to compute resources
US11494235B2 (en) 2004-11-08 2022-11-08 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11522952B2 (en) 2007-09-24 2022-12-06 The Research Foundation For The State University Of New York Automatic clustering for self-organizing grids
US11526304B2 (en) 2009-10-30 2022-12-13 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11650857B2 (en) 2006-03-16 2023-05-16 Iii Holdings 12, Llc System and method for managing a hybrid computer environment
US11658916B2 (en) 2005-03-16 2023-05-23 Iii Holdings 12, Llc Simple integration of an on-demand compute environment
US11721203B2 (en) 2001-11-20 2023-08-08 Universal Electronics Inc. User interface for a remote control application
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550576A (en) * 1995-04-17 1996-08-27 Starsight Telecast Incorporated Method and apparatus for merging television program schedule information received from multiple television schedule information sources
US5557724A (en) * 1993-10-12 1996-09-17 Intel Corporation User interface, method, and apparatus selecting and playing channels having video, audio, and/or text streams
EP0751655A2 (en) 1995-06-30 1997-01-02 Thomson Consumer Electronics, Inc. Multimedia transmission system
US5635989A (en) 1996-02-13 1997-06-03 Hughes Electronics Method and apparatus for sorting and searching a television program guide
WO1997048228A1 (en) 1996-06-14 1997-12-18 Starsight Telecast, Inc. Television schedule system and method of operation
US5818935A (en) * 1997-03-10 1998-10-06 Maa; Chia-Yiu Internet enhanced video system
US5850218A (en) * 1997-02-19 1998-12-15 Time Warner Entertainment Company L.P. Inter-active program guide with default selection control
US5990883A (en) * 1997-04-28 1999-11-23 Microsoft Corporation Unified presentation of programming from different physical sources
US6157411A (en) * 1996-06-14 2000-12-05 Intel Corporation Method and apparatus for compiling a repository of entertainment system data from multiple sources
US20010000194A1 (en) * 1998-08-21 2001-04-05 Sequeira William J. System and method for a master scheduler
US6216134B1 (en) * 1998-06-25 2001-04-10 Microsoft Corporation Method and system for visualization of clusters and classifications
US6536041B1 (en) * 1998-06-16 2003-03-18 United Video Properties, Inc. Program guide system with real-time data sources

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557724A (en) * 1993-10-12 1996-09-17 Intel Corporation User interface, method, and apparatus selecting and playing channels having video, audio, and/or text streams
US5550576A (en) * 1995-04-17 1996-08-27 Starsight Telecast Incorporated Method and apparatus for merging television program schedule information received from multiple television schedule information sources
US5684525A (en) 1995-04-17 1997-11-04 Starsight Telecast Incorporated Merging multi-source information in a television system
EP0751655A2 (en) 1995-06-30 1997-01-02 Thomson Consumer Electronics, Inc. Multimedia transmission system
US5635989A (en) 1996-02-13 1997-06-03 Hughes Electronics Method and apparatus for sorting and searching a television program guide
US6157411A (en) * 1996-06-14 2000-12-05 Intel Corporation Method and apparatus for compiling a repository of entertainment system data from multiple sources
WO1997048228A1 (en) 1996-06-14 1997-12-18 Starsight Telecast, Inc. Television schedule system and method of operation
US5850218A (en) * 1997-02-19 1998-12-15 Time Warner Entertainment Company L.P. Inter-active program guide with default selection control
US5818935A (en) * 1997-03-10 1998-10-06 Maa; Chia-Yiu Internet enhanced video system
US5990883A (en) * 1997-04-28 1999-11-23 Microsoft Corporation Unified presentation of programming from different physical sources
US6536041B1 (en) * 1998-06-16 2003-03-18 United Video Properties, Inc. Program guide system with real-time data sources
US6216134B1 (en) * 1998-06-25 2001-04-10 Microsoft Corporation Method and system for visualization of clusters and classifications
US20010000194A1 (en) * 1998-08-21 2001-04-05 Sequeira William J. System and method for a master scheduler

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Firesmith, Donald, "An Expanded View of Messages", ACM Press, New York, NY, vol. 4, issue 3 (Jul. 1993), p. 2-5. *

Cited By (282)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030118323A1 (en) * 1998-06-12 2003-06-26 Ismail Labeeb K. Television program recording with user preference determination
US20050204386A1 (en) * 1998-06-12 2005-09-15 Ismail Labeeb K. Television program recording with user preference determination
US8351763B2 (en) 1998-06-12 2013-01-08 Thomson Licensing Television program recording with user preference determination
US8351765B2 (en) 1998-06-12 2013-01-08 Thomson Licensing Television program recording with user preference determination
US8352984B2 (en) 1998-06-12 2013-01-08 Thomson Licensing System and method for generating and managing user preference information for scheduled and stored television programs
US7603687B2 (en) 1999-03-18 2009-10-13 Microsoft Corporation Systems and methods for electronic program guide data services
US7484233B2 (en) 1999-03-18 2009-01-27 Microsoft Corporation Systems and methods for electronic program guide data services
US9819981B2 (en) 1999-03-30 2017-11-14 Tivo Solutions Inc. Distributed database management system
US9858334B2 (en) 1999-03-30 2018-01-02 Tivo Solutions Inc. Distributed database management system
US9552383B2 (en) * 1999-03-30 2017-01-24 Tivo Inc. Distributed database management system
US20150106328A1 (en) * 1999-03-30 2015-04-16 Tivo Inc. Distributed database management system
US7992163B1 (en) 1999-06-11 2011-08-02 Jerding Dean F Video-on-demand navigational system
US20040168191A1 (en) * 1999-06-11 2004-08-26 Jerding Dean F. Channel control system for exiting from an interactive program guide
US8020184B2 (en) 1999-06-11 2011-09-13 Jerding Dean F Channel control system for exiting from an interactive program guide
US20050240961A1 (en) * 1999-06-11 2005-10-27 Jerding Dean F Methods and systems for advertising during video-on-demand suspensions
US8037504B2 (en) 1999-06-11 2011-10-11 Jerding Dean F Video on demand system with selectable options of configurable random-access control
US20060112434A1 (en) * 1999-06-11 2006-05-25 Arturo Rodriguez Video on demand system with selectable options of configurable random-access control
US8056106B2 (en) 1999-06-11 2011-11-08 Rodriguez Arturo A Video on demand system with dynamic enablement of random-access functionality
US20060206913A1 (en) * 1999-06-11 2006-09-14 Arturo Rodriguez Video on demand system with with dynamic enablement of random-access functionality
US8418203B1 (en) * 1999-08-19 2013-04-09 Sony Corporation Transmission method and receiving device of program guide information including a control signal
US9693104B2 (en) 1999-10-20 2017-06-27 Tivo Solutions Inc. Client-side multimedia content targeting system
US20030093795A1 (en) * 2000-01-26 2003-05-15 Shigeki Takahashi Electronic program guide display controller
US20090150958A1 (en) * 2000-04-03 2009-06-11 Scientific-Atlanta, Inc. Providing alternative services based on receiver configuration and type of display device
US7992166B2 (en) 2000-04-03 2011-08-02 Jerding Dean F Providing alternative services based on receiver configuration and type of display device
US20090276808A1 (en) * 2000-05-04 2009-11-05 Scientific Atlanta, Inc. Configuration of tv services via alternate communication
US8739212B2 (en) 2000-05-04 2014-05-27 Cisco Technology, Inc. Configuration of presentations of selectable TV services according to usage
US9380347B2 (en) 2000-05-04 2016-06-28 Cisco Technology, Inc. Hypertext service guide menu display
US7934232B1 (en) 2000-05-04 2011-04-26 Jerding Dean F Navigation paradigm for access to television services
US8707153B2 (en) 2000-06-09 2014-04-22 Cisco Technology, Inc. Displaying comment data corresponding to a video presentation
US8516525B1 (en) 2000-06-09 2013-08-20 Dean F. Jerding Integrated searching system for interactive media guide
US8069259B2 (en) 2000-06-09 2011-11-29 Rodriguez Arturo A Managing removal of media titles from a list
US20070136748A1 (en) * 2000-06-09 2007-06-14 Rodriguez Arturo A Supplementary data corresponding to a video presentation
US20060026665A1 (en) * 2000-06-09 2006-02-02 Rodriguez Arturo A Media-on-demand catalog viewing preference system
US10219044B2 (en) 2000-06-22 2019-02-26 Intel Corporation Electronic programming guide with selectable categories
US10206008B2 (en) 2000-06-22 2019-02-12 Intel Corporation Electronic programming guide with selectable categories
US20100138790A1 (en) * 2000-06-22 2010-06-03 Rashkovskiy Oleg B Electronic Programming Guide With Selectable Categories
US20020049804A1 (en) * 2000-06-29 2002-04-25 Rodriguez Arturo A. Configuration options for transaction processing
US7962370B2 (en) 2000-06-29 2011-06-14 Rodriguez Arturo A Methods in a media service system for transaction processing
US8087051B2 (en) * 2000-06-30 2011-12-27 Thomson Licensing Database management system and method for electronic program guide and television channel lineup organization
US20020186296A1 (en) * 2000-06-30 2002-12-12 Metabyte Networks, Inc. Database management system and method for electronic program guide and television channel lineup organization
US8166511B2 (en) 2000-07-20 2012-04-24 Resource Consortium Limited Mechanism for distributing content data
US9398244B2 (en) 2000-07-20 2016-07-19 Resource Consortium Limited Adaptable programming guide for networked devices
US10116978B2 (en) 2000-07-20 2018-10-30 Resource Consortium Limited Mechanism for distributing content data
US9762942B2 (en) 2000-07-20 2017-09-12 Resource Consortium Limited Adaptable programming guide for networked devices
US20060259926A1 (en) * 2000-07-20 2006-11-16 Digital Deck, Inc. Adaptable programming guide for networked devices
US20110113448A1 (en) * 2000-07-20 2011-05-12 Resource Consortium Limited Adaptable Programming Guide for Networked Devices
US10244280B2 (en) 2000-07-20 2019-03-26 Resource Consortium Limited Adaptable programming guide for networked devices
US20120039580A1 (en) * 2000-08-08 2012-02-16 The Directv Group, Inc. Method and System for Remote Television Replay Control
US9654238B2 (en) * 2000-08-08 2017-05-16 The Directv Group, Inc. Method and system for remote television replay control
US9832266B1 (en) 2000-09-14 2017-11-28 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with identified action information
US10621227B1 (en) 2000-09-14 2020-04-14 Network-1 Technologies, Inc. Methods for using extracted features to perform an action
US9781251B1 (en) 2000-09-14 2017-10-03 Network-1 Technologies, Inc. Methods for using extracted features and annotations associated with an electronic media work to perform an action
US10552475B1 (en) 2000-09-14 2020-02-04 Network-1 Technologies, Inc. Methods for using extracted features to perform an action
US9883253B1 (en) 2000-09-14 2018-01-30 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a product
US10540391B1 (en) 2000-09-14 2020-01-21 Network-1 Technologies, Inc. Methods for using extracted features to perform an action
US10073862B1 (en) 2000-09-14 2018-09-11 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US10521470B1 (en) 2000-09-14 2019-12-31 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US10521471B1 (en) 2000-09-14 2019-12-31 Network-1 Technologies, Inc. Method for using extracted features to perform an action associated with selected identified image
US10108642B1 (en) 2000-09-14 2018-10-23 Network-1 Technologies, Inc. System for using extracted feature vectors to perform an action associated with a work identifier
US9805066B1 (en) 2000-09-14 2017-10-31 Network-1 Technologies, Inc. Methods for using extracted features and annotations associated with an electronic media work to perform an action
US10205781B1 (en) 2000-09-14 2019-02-12 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US9544663B1 (en) 2000-09-14 2017-01-10 Network-1 Technologies, Inc. System for taking action with respect to a media work
US9538216B1 (en) 2000-09-14 2017-01-03 Network-1 Technologies, Inc. System for taking action with respect to a media work
US9824098B1 (en) 2000-09-14 2017-11-21 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with identified action information
US10057408B1 (en) 2000-09-14 2018-08-21 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a work identifier
US9807472B1 (en) 2000-09-14 2017-10-31 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a product
US10367885B1 (en) 2000-09-14 2019-07-30 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US9558190B1 (en) 2000-09-14 2017-01-31 Network-1 Technologies, Inc. System and method for taking action with respect to an electronic media work
US9536253B1 (en) 2000-09-14 2017-01-03 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US10063936B1 (en) 2000-09-14 2018-08-28 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a work identifier
US9529870B1 (en) 2000-09-14 2016-12-27 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US10303713B1 (en) 2000-09-14 2019-05-28 Network-1 Technologies, Inc. Methods for using extracted features to perform an action
US10621226B1 (en) 2000-09-14 2020-04-14 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US10303714B1 (en) 2000-09-14 2019-05-28 Network-1 Technologies, Inc. Methods for using extracted features to perform an action
US10063940B1 (en) 2000-09-14 2018-08-28 Network-1 Technologies, Inc. System for using extracted feature vectors to perform an action associated with a work identifier
US10305984B1 (en) 2000-09-14 2019-05-28 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US8302127B2 (en) 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
US20060212904A1 (en) * 2000-09-25 2006-09-21 Klarfeld Kenneth A System and method for personalized TV
US9781478B2 (en) 2000-09-25 2017-10-03 Thomson Licensing System and method for personalized TV
US20030067554A1 (en) * 2000-09-25 2003-04-10 Klarfeld Kenneth A. System and method for personalized TV
US20060206912A1 (en) * 2000-09-25 2006-09-14 Klarfeld Kenneth A System and method for personalized TV
US8938758B2 (en) 2000-09-25 2015-01-20 Thomson Licensing System and method for personalized TV
US20090183203A1 (en) * 2000-11-07 2009-07-16 Jlb Ventures, Llc Universal Programming System and Method for Electronic Programming Guide
US8104061B2 (en) 2000-11-07 2012-01-24 Jlb Ventures Llc Universal programming system and method for electronic programming guide
US8793732B2 (en) 2000-11-07 2014-07-29 Jlb Ventures, Llc Universal programming system and method for electronic programming guide
US7516469B1 (en) * 2000-11-07 2009-04-07 Jlb Ventures, Llc Universal programming system and method for electronic programming guide
US8032914B2 (en) 2000-11-10 2011-10-04 Rodriguez Arturo A Systems and methods for dynamically allocating bandwidth in a digital broadband delivery system
US20080101460A1 (en) * 2000-11-10 2008-05-01 Scientific Atlanta Systems and Methods for Dynamically Allocating Bandwidth in a Digital Broadband Delivery System
US20020188956A1 (en) * 2001-06-07 2002-12-12 Michael Ficco Method and system for electronic program guide temporal content organization
US20090320069A1 (en) * 2001-06-07 2009-12-24 The Directv Group, Inc. Method and system for electronic program guide temporal content organization
US20030236756A1 (en) * 2001-06-21 2003-12-25 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US20060179006A1 (en) * 2001-06-21 2006-08-10 Metabyte Networks, Inc. Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US8538892B2 (en) 2001-06-21 2013-09-17 Thomson Licenging Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US8818871B2 (en) 2001-06-21 2014-08-26 Thomson Licensing Method and system for electronic purchases using an intelligent data carrier medium, electronic coupon system, and interactive TV infrastructure
US8006262B2 (en) 2001-06-29 2011-08-23 Rodriguez Arturo A Graphic user interfaces for purchasable and recordable media (PRM) downloads
US8006273B2 (en) 2001-06-29 2011-08-23 Rodriguez Arturo A Updating download options for unavailable media content
US8640172B2 (en) 2001-06-29 2014-01-28 Cisco Technology, Inc. System and method for characterization of purchasable and recordable media (PRM)
US20080281968A1 (en) * 2001-06-29 2008-11-13 Rodriguez Arturo A Updating Download Options for Unavailable Media Content
US20090183081A1 (en) * 2001-06-29 2009-07-16 Scientific-Atlanta, Inc. System and method for characterization of purchasable and recordable media (prm)
US8191093B2 (en) 2001-06-29 2012-05-29 Rodriguez Arturo A Providing information pertaining to audio-visual and personal bi-directional services
US20090193471A1 (en) * 2001-06-29 2009-07-30 Scientific-Atlanta, Inc. Providing information pertaining to audio-visual and personal bi-directional services
US11721203B2 (en) 2001-11-20 2023-08-08 Universal Electronics Inc. User interface for a remote control application
US20050028190A1 (en) * 2002-02-11 2005-02-03 Rodriguez Arturo A. Management of television advertising
US8745656B2 (en) 2002-02-11 2014-06-03 Cisco Technology, Inc. Tracking of presented television advertisements
US7640563B2 (en) 2002-04-16 2009-12-29 Microsoft Corporation Describing media content in terms of degrees
US20030195891A1 (en) * 2002-04-16 2003-10-16 Marsh David J. Describing media content in terms of degrees
US7617511B2 (en) 2002-05-31 2009-11-10 Microsoft Corporation Entering programming preferences while browsing an electronic programming guide
US7885971B2 (en) 2002-06-06 2011-02-08 Microsoft Corporation Methods and systems for generating electronic program guides
US20070299685A1 (en) * 2002-06-06 2007-12-27 Microsoft Corporation Methods and Systems for Generating Electronic Program Guides
US7836466B2 (en) * 2002-06-06 2010-11-16 Microsoft Corporation Methods and systems for generating electronic program guides
US20030233241A1 (en) * 2002-06-06 2003-12-18 Marsh David J. Methods and systems for generating electronic program guides
US20080147650A1 (en) * 2002-06-06 2008-06-19 Microsoft Corporation Methods and Systems for Generating Electronic Program Guides
US20030231855A1 (en) * 2002-06-14 2003-12-18 Gates Matthijs A. Scalable programmable video recorder
US20080021937A1 (en) * 2002-06-14 2008-01-24 Microsoft Corporation Scalable programmable video recorder
US7743032B2 (en) * 2002-06-14 2010-06-22 Microsoft Corporation Scalable programmable video recorder
US7289716B2 (en) * 2002-06-14 2007-10-30 Microsoft Corporation Scalable programmable video recorder
US20040001081A1 (en) * 2002-06-19 2004-01-01 Marsh David J. Methods and systems for enhancing electronic program guides
US9615139B2 (en) 2004-01-21 2017-04-04 Tech 5 Determining device that performs processing of output pictures
US8161388B2 (en) 2004-01-21 2012-04-17 Rodriguez Arturo A Interactive discovery of display device characteristics
US20050160468A1 (en) * 2004-01-21 2005-07-21 Rodriguez Arturo A. Interactive discovery of display device characteristics
US9785479B2 (en) 2004-03-13 2017-10-10 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US11467883B2 (en) 2004-03-13 2022-10-11 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US9959141B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of providing a self-optimizing reservation in space of compute resources
US9959140B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of co-allocating a reservation spanning different compute resources types
US10733028B2 (en) 2004-03-13 2020-08-04 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US10871999B2 (en) 2004-03-13 2020-12-22 Iii Holdings 12, Llc System and method for a self-optimizing reservation in time of compute resources
US10445148B2 (en) 2004-03-13 2019-10-15 Iii Holdings 12, Llc System and method of performing a pre-reservation analysis to yield an improved fit of workload with the compute environment
US9886322B2 (en) 2004-03-13 2018-02-06 Iii Holdings 12, Llc System and method for providing advanced reservations in a compute environment
US11652706B2 (en) 2004-06-18 2023-05-16 Iii Holdings 12, Llc System and method for providing dynamic provisioning within a compute environment
US10951487B2 (en) 2004-06-18 2021-03-16 Iii Holdings 12, Llc System and method for providing dynamic provisioning within a compute environment
US10341730B2 (en) 2004-07-30 2019-07-02 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US11259060B2 (en) * 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20100319040A1 (en) * 2004-07-30 2010-12-16 Diaz Perez Milton System for adding or updating video content from internet sources to existing video-on-demand application of a digital tv services provider system
US9420318B2 (en) * 2004-07-30 2016-08-16 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20160255404A1 (en) * 2004-07-30 2016-09-01 Broadband Itv, Inc. System for addressing on-demand tv program content on tv services platform of a digital tv services provider
US9491512B2 (en) 2004-07-30 2016-11-08 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9491511B2 (en) 2004-07-30 2016-11-08 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9491497B2 (en) 2004-07-30 2016-11-08 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9344765B2 (en) 2004-07-30 2016-05-17 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9338511B2 (en) 2004-07-30 2016-05-10 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9338487B2 (en) * 2004-07-30 2016-05-10 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9338512B1 (en) 2004-07-30 2016-05-10 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9247308B2 (en) 2004-07-30 2016-01-26 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9232275B2 (en) 2004-07-30 2016-01-05 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US10555014B2 (en) 2004-07-30 2020-02-04 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9578376B2 (en) 2004-07-30 2017-02-21 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9584868B2 (en) 2004-07-30 2017-02-28 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10785517B2 (en) * 2004-07-30 2020-09-22 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20150358682A1 (en) * 2004-07-30 2015-12-10 Broadband Itv, Inc. Method for addressing on-demand tv program content on tv services platform of a digital tv services provider
US9635429B2 (en) 2004-07-30 2017-04-25 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9635395B2 (en) * 2004-07-30 2017-04-25 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9635423B2 (en) 2004-07-30 2017-04-25 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV services subscribers
US10536751B2 (en) 2004-07-30 2020-01-14 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US9641896B2 (en) 2004-07-30 2017-05-02 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US10536750B2 (en) 2004-07-30 2020-01-14 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US9648388B2 (en) 2004-07-30 2017-05-09 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers
US10791351B2 (en) * 2004-07-30 2020-09-29 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10506269B2 (en) 2004-07-30 2019-12-10 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20150264440A1 (en) * 2004-07-30 2015-09-17 Broadband Itv, Inc. System for addressing on-demand tv program content on tv services platform of a digital tv services provider
US10491954B2 (en) 2004-07-30 2019-11-26 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US10491955B2 (en) 2004-07-30 2019-11-26 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers
US9113228B2 (en) 2004-07-30 2015-08-18 Broadband Itv, Inc. Method of addressing on-demand TV program content on TV services platform of a digital TV services provider
US9106959B2 (en) 2004-07-30 2015-08-11 Broadband Itv, Inc. Method for adding or updating video content from internet sources to existing video-on-demand application of digital TV services provider system
US10893334B2 (en) * 2004-07-30 2021-01-12 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9078016B2 (en) * 2004-07-30 2015-07-07 Broadband Itv, Inc. System for adding or updating video content from internet sources to existing video-on-demand application of a digital TV services provider system
US9066118B2 (en) * 2004-07-30 2015-06-23 Broadband Itv, Inc. System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
US10375428B2 (en) 2004-07-30 2019-08-06 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9386340B2 (en) 2004-07-30 2016-07-05 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US10349101B2 (en) 2004-07-30 2019-07-09 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10349100B2 (en) 2004-07-30 2019-07-09 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9866910B2 (en) 2004-07-30 2018-01-09 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US9866909B2 (en) 2004-07-30 2018-01-09 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US11252459B2 (en) 2004-07-30 2022-02-15 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10341699B2 (en) 2004-07-30 2019-07-02 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9888287B2 (en) 2004-07-30 2018-02-06 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers
US10306321B2 (en) 2004-07-30 2019-05-28 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US11252476B2 (en) 2004-07-30 2022-02-15 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US11259089B2 (en) * 2004-07-30 2022-02-22 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US9936240B2 (en) 2004-07-30 2018-04-03 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11601697B2 (en) 2004-07-30 2023-03-07 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11259059B2 (en) * 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US11272233B2 (en) * 2004-07-30 2022-03-08 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US9998791B2 (en) 2004-07-30 2018-06-12 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US11516525B2 (en) 2004-07-30 2022-11-29 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10028026B2 (en) 2004-07-30 2018-07-17 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10028027B2 (en) 2004-07-30 2018-07-17 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US10045084B2 (en) 2004-07-30 2018-08-07 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US10129597B2 (en) 2004-07-30 2018-11-13 Broadband Itv, Inc. Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers
US10057649B2 (en) 2004-07-30 2018-08-21 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers
US10129598B2 (en) 2004-07-30 2018-11-13 Broadband Itv, Inc. Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers
US20130254814A1 (en) * 2004-07-30 2013-09-26 Broadband iTV, Inc System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
US11630704B2 (en) * 2004-08-20 2023-04-18 Iii Holdings 12, Llc System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information
US10379909B2 (en) * 2004-08-20 2019-08-13 Iii Holdings 12, Llc System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information
US20150242244A1 (en) * 2004-08-20 2015-08-27 Adaptive Computing Enterprises, Inc. System and Method For a Workload Management and Scheduling Module to Manage Access to a Compute Environment According to Local and Non-Local User Identity Information
US11537434B2 (en) 2004-11-08 2022-12-27 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11709709B2 (en) 2004-11-08 2023-07-25 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11886915B2 (en) 2004-11-08 2024-01-30 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11494235B2 (en) 2004-11-08 2022-11-08 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11762694B2 (en) 2004-11-08 2023-09-19 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11861404B2 (en) 2004-11-08 2024-01-02 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11537435B2 (en) 2004-11-08 2022-12-27 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11656907B2 (en) 2004-11-08 2023-05-23 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11658916B2 (en) 2005-03-16 2023-05-23 Iii Holdings 12, Llc Simple integration of an on-demand compute environment
US11831564B2 (en) 2005-04-07 2023-11-28 Iii Holdings 12, Llc On-demand access to compute resources
US11496415B2 (en) 2005-04-07 2022-11-08 Iii Holdings 12, Llc On-demand access to compute resources
US11765101B2 (en) 2005-04-07 2023-09-19 Iii Holdings 12, Llc On-demand access to compute resources
US11522811B2 (en) 2005-04-07 2022-12-06 Iii Holdings 12, Llc On-demand access to compute resources
US11533274B2 (en) 2005-04-07 2022-12-20 Iii Holdings 12, Llc On-demand access to compute resources
US8189472B2 (en) 2005-09-07 2012-05-29 Mcdonald James F Optimizing bandwidth utilization to a subscriber premises
US20070053293A1 (en) * 2005-09-07 2007-03-08 Mcdonald James F Optimizing data rate for video services
US20080282308A1 (en) * 2005-09-07 2008-11-13 Mcdonald James F Optimizing Data Rates For Video Services to a Subscriber
US7961643B2 (en) 2005-09-07 2011-06-14 Mcdonald James F Optimizing data rates for video services to a subscriber
US20070157270A1 (en) * 2005-12-28 2007-07-05 Lee Sean S Receiving apparatus using non-volatile memory and method of operating the same
US20070156589A1 (en) * 2005-12-30 2007-07-05 Randy Zimler Integrating personalized listings of media content into an electronic program guide
US11650857B2 (en) 2006-03-16 2023-05-16 Iii Holdings 12, Llc System and method for managing a hybrid computer environment
US9084029B2 (en) 2006-03-30 2015-07-14 Verizon Patent And Licensing Inc. On-screen program guide with interactive programming recommendations
US8069461B2 (en) 2006-03-30 2011-11-29 Verizon Services Corp. On-screen program guide with interactive programming recommendations
US8677415B2 (en) 2006-03-30 2014-03-18 Verizon Services Corp. On-screen program guide with interactive programming recommendations
EP2035952A4 (en) * 2006-06-16 2017-03-22 Microsoft Technology Licensing, LLC Application program interface to manage media files
US20080022308A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Pre-populated Search Results In Electronic Program Guide Data
US8881217B2 (en) 2006-09-06 2014-11-04 Verizon Patent And Licensing Inc. Systems and methods for accessing media content
US8418217B2 (en) 2006-09-06 2013-04-09 Verizon Patent And Licensing Inc. Systems and methods for accessing media content
US8973040B2 (en) 2006-10-03 2015-03-03 Verizon Patent And Licensing Inc. Control tools for media content access systems and methods
US8566874B2 (en) 2006-10-03 2013-10-22 Verizon Patent And Licensing Inc. Control tools for media content access systems and methods
US8464295B2 (en) 2006-10-03 2013-06-11 Verizon Patent And Licensing Inc. Interactive search graphical user interface systems and methods
US20080107392A1 (en) * 2006-11-06 2008-05-08 Sbc Knowledge Ventures, L.P. Digital video recorder (DVR) scheduling
US8296816B2 (en) 2006-11-06 2012-10-23 At&T Intellectual Property I, L.P. Method and system for updating digital video recorder scheduling
US8584191B2 (en) 2006-11-06 2013-11-12 At&T Intellectual Property I, Lp Method and system for updating recording schedules
US8935728B2 (en) 2006-12-21 2015-01-13 Verizon Patent And Licensing Inc. Program guide navigation tools for media content access systems and methods
US8028313B2 (en) 2006-12-21 2011-09-27 Verizon Patent And Licensing Inc. Linear program guide for media content access systems and methods
US9167190B2 (en) 2006-12-21 2015-10-20 Verizon Patent And Licensing Inc. Program guide navigation tools for media content access systems and methods
US8510780B2 (en) 2006-12-21 2013-08-13 Verizon Patent And Licensing Inc. Program guide navigation tools for media content access systems and methods
US8726159B2 (en) 2007-01-05 2014-05-13 Verizon Patent And Licensing Inc. Content level navigation systems and methods
US11589093B2 (en) * 2007-03-12 2023-02-21 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20220174331A1 (en) * 2007-03-12 2022-06-02 Broadband Itv, Inc. System for addressing on-demand tv program content on tv services platform of a digital tv services provider
US11245942B2 (en) * 2007-03-12 2022-02-08 Broadband Itv, Inc. Method for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20080262968A1 (en) * 2007-03-26 2008-10-23 Infosys Technologies Ltd. Software licensing control via mobile devices
US9894417B2 (en) 2007-06-26 2018-02-13 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10149015B2 (en) 2007-06-26 2018-12-04 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9641902B2 (en) 2007-06-26 2017-05-02 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9648390B2 (en) 2007-06-26 2017-05-09 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on view preferences for minimizing navigation in VOD program selection
US9654833B2 (en) 2007-06-26 2017-05-16 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10582243B2 (en) 2007-06-26 2020-03-03 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11695976B2 (en) 2007-06-26 2023-07-04 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9973825B2 (en) 2007-06-26 2018-05-15 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10277937B2 (en) 2007-06-26 2019-04-30 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10264303B2 (en) 2007-06-26 2019-04-16 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11265589B2 (en) 2007-06-26 2022-03-01 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9888288B2 (en) 2007-06-26 2018-02-06 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11272235B2 (en) 2007-06-26 2022-03-08 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11277669B2 (en) 2007-06-26 2022-03-15 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11290763B2 (en) 2007-06-26 2022-03-29 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10567846B2 (en) 2007-06-26 2020-02-18 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9894419B2 (en) 2007-06-26 2018-02-13 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10560733B2 (en) 2007-06-26 2020-02-11 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10154296B2 (en) 2007-06-26 2018-12-11 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11570500B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US10623793B2 (en) 2007-06-26 2020-04-14 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11582498B2 (en) 2007-06-26 2023-02-14 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US8103965B2 (en) 2007-06-28 2012-01-24 Verizon Patent And Licensing Inc. Media content recording and healing statuses
US8590028B2 (en) 2007-07-09 2013-11-19 Infosys Limited Content licensing and conditional access using a mobile device
US11522952B2 (en) 2007-09-24 2022-12-06 The Research Foundation For The State University Of New York Automatic clustering for self-organizing grids
US20090112930A1 (en) * 2007-10-31 2009-04-30 Echostar Technologies Corporation Processes and systems for enhancing an electronic program guide
US7912824B2 (en) * 2007-10-31 2011-03-22 Echostar Technologies L.L.C. Processes and systems for enhancing an electronic program guide displaying particular timeslot associated with first channel and the link is not associated with other timeslots
US10222934B2 (en) 2007-12-19 2019-03-05 Verizon Patent And Licensing Inc. Condensed program guide for media content access systems and methods
US8051447B2 (en) 2007-12-19 2011-11-01 Verizon Patent And Licensing Inc. Condensed program guide for media content access systems and methods
EP2318999A1 (en) * 2008-07-31 2011-05-11 Hewlett-Packard Development Company, L.P. Capturing internet content
EP2318999A4 (en) * 2008-07-31 2011-12-14 Hewlett Packard Development Co Capturing internet content
US9374441B2 (en) * 2009-10-09 2016-06-21 Echostar Technologies L.L.C. Dynamically determining and utilizing an application programming interface of an electronic device
US20110107346A1 (en) * 2009-10-09 2011-05-05 Echostar Global B.V. Dynamically determining and utilizing an application programming interface of an electronic device
US9769414B2 (en) * 2009-10-14 2017-09-19 Thomson Licensing Automatic media asset update over an online social network
US20120221645A1 (en) * 2009-10-14 2012-08-30 Shemimon Manalikudy Anthru Automatic media asset update over an online social network
EP2489183A1 (en) * 2009-10-14 2012-08-22 Thomson Licensing Automatic media asset update over an online social network
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11526304B2 (en) 2009-10-30 2022-12-13 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US20140359684A1 (en) * 2011-12-12 2014-12-04 Sony Corporation Client terminal and operation method of client terminal, transmission server and operation method of transmission server, and program
US10687112B2 (en) * 2011-12-12 2020-06-16 Saturn Licensing Llc Client terminal and operation method of client terminal, transmission server and operation method of transmission server, and program
US20140053197A1 (en) * 2012-08-17 2014-02-20 Flextronics Ap, Llc Epg data functions
US10419805B2 (en) 2012-08-17 2019-09-17 Flextronics Ap, Llc Data service
US10003669B2 (en) * 2015-07-28 2018-06-19 DISH Technologies L.L.C. Methods and apparatus to create and transmit a condensed logging data file
US20170034303A1 (en) * 2015-07-28 2017-02-02 Echostar Technologies L.L.C. Methods and apparatus to create and transmit a condensed logging data file

Similar Documents

Publication Publication Date Title
US6990677B1 (en) Application program interfaces for electronic program guide data services
US7484233B2 (en) Systems and methods for electronic program guide data services
US6915528B1 (en) System and method for managing television programs within an entertainment system
JP4201706B2 (en) System and method for combining several EPG sources into one reliable EPG
US7624412B2 (en) Recording and playback system
US7870125B1 (en) Integrated media content server system and method for the customization of metadata that is associated therewith
EP1420591B1 (en) Electronic programme scheduling system
KR101010378B1 (en) Television receiver
US20050155067A1 (en) System and method for managing television programs within an entertainment system
US20060064721A1 (en) Method and apparatus for implementing a synchronized electronic program guide application
US20030023975A1 (en) Enhanced music services for television
US20020170068A1 (en) Virtual and condensed television programs
JP2001257975A (en) Device and method for recording program information
US20080216115A1 (en) Method and System for Inserting a New Channel Into a List of Preferred Channels
JP2003503911A (en) Interactive TV system using newsgroup
TW492252B (en) Method and apparatus for providing an interactive program guide with headend processing
EP1622371A1 (en) Methods and apparatuses providing synchronised electronic program guide
EP1166551A1 (en) Application program interfaces for electronic program guide data services
JP2002016889A (en) Reservation telerecording apparatus, telerecording reservation system and reservation image recording method
EP1954037B1 (en) Method and apparatus for storing electronic program guide (EPG), and method and apparatus for providing EPG
EP1100271A2 (en) Process for transmitting and processing an upgradable summary in a television system, receiver and transmitter in such a system
EP1784009A2 (en) Methods and apparatuses providing synchronised electronic program guide
KR100788701B1 (en) Apparatus and method for storing broadcasting program
JP2003009050A (en) Method, recorder, and system for recording reserved program
WO2003009156A1 (en) System and method for providing television program information to an entertainment device

Legal Events

Date Code Title Description
AS Assignment

Owner name: WEBTV NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PIETRASZAK, MICAEL E.;FRIES, ROBERT M.;GIBSON, ROBERT S. T.;AND OTHERS;REEL/FRAME:011313/0244;SIGNING DATES FROM 20001121 TO 20001128

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: MERGER;ASSIGNOR:WEBTV NETWORKS, INC.;REEL/FRAME:016644/0708

Effective date: 20020628

FPAY Fee payment

Year of fee payment: 4

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0001

Effective date: 20141014

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20180124