Espial Lands Patent for HTML 5-Powered Program Guide

Espial won a U.S. patent that could help it boost revenue from service providers that want to deploy interactive program guide applications built with HTML 5.

The Ottawa-based company, which has made a business developing user interfaces that leverage the RDK platform and HTML 5, announced on June 29 that it agreed to acquire Arris’s whole-home solution platform.

Espial Senior Software Architect Dat Doan and CTO Kumanan Yogaratnam are named as inventors on the “Optimized HTML 5 electronic programming guide application” patent.

This marks the sixth U.S. patent that has been assigned to Espial.

Abstract: An electronic programming guide (EPG) data manager module is provided. The EPG data module provides an event driven infrastructure to provide EPG data to a hypertext markup language 5 (HTML5) applications. The HTML5 EPG application presents an EPG data window in a user interface on a display device. The EPG data is provided to the EPG application in scriptable data objects generated to be rendered by the HTML5 EPG application based upon the EPG data window to be presented.

Patent

Claims: 
1. A system for presenting an electronic program guide (EPG) user interface (UI) on a display device, the system comprising: a processor coupled to the display device; a memory containing instructions which when executed by the processor for providing: an EPG data manager module for receiving one or more EPG data files defining EPG data from a server through a network and providing a subset of the EPG data as one or more scriptable data objects describing updated EPG data within an EPG data window, wherein the EPG data manager module decompresses EPG data from one or more files to retrieve the EPG data required for the EPG data window to generate the one or more scriptable objects; an EPG application defined in an Hypertext Markup Language 5 (HTML5) based platform, the HTML5 EPG application presenting EPG data defined within the EPG data window in the UI on the display device by receiving the one or more scriptable data objects from the EPG data manager and updating the presented EPG data in accordance with the one or more scriptable data objects, wherein the one or more scriptable data objects are determined by the EPG data manager based upon EPG events generated by the HTML5 application which will result in a change in the EPG data visible for display in the EPG data window. 

2. The system of claim 1 wherein at least one of the one or more scriptable data objects is generated in response to the EPG event, wherein the EPG event is a navigation event generated by the EPG application changing the presented EPG data defined within the EPG data window.

3. The system of claim 1 wherein at least one of the one or more scriptable data object is generated in response to the EPG event associated with a change in the EPG data which results in a change in the EPG data window.

4. The system of claim 1 wherein at least one of the one or more scriptable data object is generated in response to the EPG event associated with a change in time resulting in a change in the EPG data window.

5. The system of claim 1 further comprising an event handler for providing EPG events to the EPG data manager module and receiving scriptable data objects from the EPG data manager module and instructing the EPG application to render the EPG using data from the scriptable data objects.

6. The system of claim 5 wherein the event handler generates navigation events in response to user navigation within the UI, the navigation event provided to the EPG data manager module.

7. The system of claim 5 wherein the EPG data manager module extracts EPG data larger than the EPG data window from one or more compressed EPG data files and caches data based upon predictive cache actions based upon EPG events received from the event handler.

8. The system of claim 1 wherein the EPG data manager module determines an EPG data file from a plurality of EPG data files based upon the EPG data window, each EPG data file containing programming data for one or more content sources for a defined time period.

9. The system of claim 1 wherein the EPG data manager module decompresses one or more compressed EPG data files.

10. The system of claim 1 wherein the EPG data manager module is a compiled intermediate level language product compiled directly to a hardware instruction set.

11. The system of claim 10 wherein the EPG data manager is generated in native code compiled from C or C++.

12. A method of generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the method comprising: determining in an EPG data manager module an EPG data window to be presented in Hypertext Markup Language 5 (HTML5) EPG application executed by the processor in the user interface presented on the display device, wherein the EPG data window is determined based upon a received EPG event from the HTML5 EPG application which will result in a change in the EPG data visible for display in the user interface on the display device; generating in the EPG data manager module at least one scriptable data object from a subset of the EPG data based upon the determined EPG data window, the at least one scriptable data objects describing updated EPG data within the EPG data window, wherein EPG data is decompressed from one or more files received from a server to retrieve the EPG data required for the EPG data window to generate the at least one scriptable object; and providing the generated at least one scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device.

13. The method of claim 12 wherein the EPG data windows is determined by receiving EPG configuration parameters from the HTML5 EPG application, the configuration parameters defining the EPG data window to be presented from the EPG data.

14. The method of claim 12 wherein determining the EPG data window further comprises receiving the EPG event, wherein the EPG event is a navigation event generated by the EPG application changing EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the navigation event.

15. The method in claim 14 where each scriptable data object contains one or more Cascading Style Sheets (CSS) selectors that reflect the display state of the scriptable data object.

16. The method in claim 15 where the CSS selectors are calculated by the EPG data manager module based on the scriptable data object attributes.

17. The method of claim 12 wherein determining the EPG data window further comprises receiving the EPG event associated with a change in the EPG data therefore changing the EPG data window wherein the scriptable data object is generated in response to the EPG event.

18. The method of claim 12 wherein determining the EPG data window further comprises determining the EPG event based upon a change in time therefore changing the EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the change in time.

19. The method in claim 12 where the EPG data is provided in one or more compressed files, wherein the EPG data is decompressed from the one or more compressed files to retrieve the EPG data to generate the scriptable data objects.

20. The method in claim 19 wherein determining the EPG data window further comprises: determining one or more compressed files that are associated with the data window; retrieving the determined one or more compressed files; and decompressing the retrieved one or more compressed files.

21. The method in claim 12 where each scriptable data object contain status information NOCHANGED, ADDED, UPDATED or REMOVED to aid to the EPG application in efficiently updating rendering of the EPG data window.

22. A non-transitory computer readable memory containing instructions for generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the instructions comprising: determining in an EPG data manager an EPG data window to be presented in Hypertext Markup Language 5 (HTML5) EPG application executed by the processor in the user interface presented on the display device, wherein the EPG data window is determined based upon a received EPG event from the HTML5 EPG application which will result in a change in the EPG data visible for display in the user interface on the display device; generating in the EPG data manager at least one scriptable data object from a subset of EPG data based upon the determined EPG data window, the at least one scriptable data objects describing updated EPG data within the EPG data window, wherein EPG data is decompressed from multiple data files to retrieve the EPG data required for the EPG data window to generate the at least one scriptable object; and providing the generated at least one scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device.