The present invention generally relates to the provision of content programming based on a current browsing context.
The present application claims the benefit of priority from UK Patent Application GB 1509187.9, entitled CONTEXTUAL CONTENT PROGRAMMING, and filed May 28, 2015.
A typical video service provider may provide a viewer with hundreds of channels of content programming. While such a large selection of programming options may nominally make it easier for a viewer to find and take advantage of content programming that interests him/her, in practice, the sheer number of possible options may actually make it more difficult for a viewer to select programming of interest.
The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
A method implemented on a computing device includes: analyzing textual source content from a currently presented webpage on the computing device, based on the analyzing, determining at least one content theme contextually related to the webpage, receiving details of at least one currently scheduled television program on the computing device, where the at least one currently scheduled television program is matched to the at least one content theme, and rendering the currently presented webpage to include at least an indication of the currently scheduled television program in accordance with the details.
It will be appreciated that an individual's preferences and interests do not normally exist in a vacuum. If a subject is of interest to a person in the context of one activity, it is likely that the same subject will be of interest to the person in the context of other activities. For example, a person that is reading a book about Shakespeare may be inclined to view a presentation of one of Shakespeare's plays. Similarly, a computer user that is browsing a given website may be inclined to view television programming that is contextually similar to the subject of the material on the website being browsed.
Reference is now made to
Webpage 100 also comprises temporal context section 140 which in turn comprises a multiplicity of temporal context choices 150. Temporal context choices 150 represent available content choices that are associated with a common factor such as a keyword or theme derived from the contents of webpage 100. For example, per the exemplary embodiment of
Furthermore, as shown in
It will be appreciated that temporal context choices 150 may be associated with a specific service provider. Webpage 100 may therefore also comprise a service provider indicator 160 to identify the service provider through which temporal context choices 150 are available. In the exemplary embodiment of
In operation, temporal context choices 150 and associated scheduled broadcast times 151 and broadcast channels 152 are autonomously provided in temporal context section 140 based on a contextual relationship with the contents of webpage 100. Depending on the configuration of webpage 100, temporal context choices 150 may be linked via the service provider indicated by service provider indicator 160 to present the referenced temporal context choice 150 on a current device, i.e., the device on which webpage 100 is presented. For example, a user may click on temporal context choice 150A to switch to the “Animal Plant” channel (per broadcast channel 152A) in order to view the program “It's Me or the Dog (UK)” on the current device. Alternatively, or in addition, webpage 100 may be configured to start recording from the “Animal Plant” channel at 9:00 AM EDT (per scheduled broadcast time 151A). Alternatively, or in addition, webpage 100 may be configured to present or record the program referenced by temporal context choice 150 on a second device, such as for example, a television, a set-top box (STB) and/or a DVR. Alternatively, or in addition, webpage 100 may be configured to open a different website and/or to launch another application such as, for example, an OTT application through which the underlying content may be accessed.
Reference is now made to
Computing device 200 comprises hardware and software components, such as are well-known in the art. Computing device 200 also comprises at least one processor 210, I/O module 220 and display screen 230. It will be appreciated that computing device 200 may comprise more than one processor 210. For example, one such processor 210 may be a special purpose processor operative to present and process webpage 100 according to methods described herein. Processor 210 may be operative to execute instructions stored in a memory (not shown) in order to perform the herein described methods to present and process webpage 100. I/O module 220 may be any hardware or software component operative to use protocols such as are known in the art to communicate with a service provider such as that indicated by service provider indicator 160 (
Computing device may also comprise browser 240 and temporal context engine 250. Browser 240 may be implemented as any commercially available Internet browser, such as, for example, Microsoft Explorer, Google Chrome, or Mozilla Firefox. It will be appreciated that a browser 240 may also be implemented using a proprietary browser providing generally the same functionality. As will be described hereinbelow, temporal context engine 250 may be configured to generate the information for temporal context section 140 based on the other contents of webpage 100. It will be appreciated that the representation of temporal context engine 250 as an integral component of computing device 200 may be exemplary. Alternatively, temporal context engine 250 may be implemented as in the context of a server communicating with computing devices 200 via I/O module 220 to provide similar functionality.
It will be appreciated by one of ordinary skill in the art that real-time access to the contents of webpage 100 (
In accordance with embodiments described herein, browser 240 may comprise temporal context extension 245. Temporal context extension 245 is an application that extends the functionality of browser 240 to provide temporal context engine 250 real-time access to the contents and format of webpage 100. It will be appreciated by those of skill in the art that popular Internet browsers such as Microsoft Explorer, Google Chrome and Mozilla Firefox all support the installation of such extensions. Depending on user granted permissions, temporal context extension 245 may therefore be configured: to provide access to the URL of webpage 100 as it is presented in real time; to read the body of webpage 100 as it is presented; and to modify and re-render the body of the webpage 100 using overlays or in-page modification as it is presented.
It will be appreciated that the functionality of temporal context extension 245 may alternately be provided by configuring browser 240 to surf the Internet via a proxy server, where the proxy server is configured to provide real-time access and rendering services. Alternatively, or in addition, browser API's may be used to facilitate real-time access. Alternatively, the functionality of temporal context extension 245 may be built into a custom browser.
Real-time rendering and access may also be implemented by using notifications sent to, for example, a client installed application, such as a windows shell notification application. iPhone or Android notifications may be used for smartphone or computer tablet implementations of computing device 200. Notifications may also be used for wearable devices, such as, for example, Google Glass or smartwatches such as the Apple Watch, commercially available from Apple Inc.; the Galaxy Gear commercially available from Samsung Electronics Co.; and others.
Reference is now made to
Temporal context engine 250 captures (step 310) the textual source content viewed by the end user on webpage 100. Per the exemplary embodiment of
In addition to the textual source content, temporal context engine 250 may also obtain related resources such as semantic markup information, which may be used to determine the emphasis of certain sections of the source data. It will be appreciated that the specific technique or combination of techniques used for source capture may be dependent on domain-specific rules and conditions.
Temporal context engine 250 filters (step 320) the source files retrieved in step 310 to remove segments that may be irrelevant to the data analysis to be performed. This may include removal of headers/footers/sidebars as well as also detection of other segments deemed irrelevant. For example, temporal context engine 250 may inspect the markup for appropriate HTML, tags (e.g. <header>, <footer>), and compare it with other pages on the same site to extract unique content from the page. Per the exemplary embodiment of
Temporal context engine 250 may also strip mark-up, such as marks for bullet lists and paragraphs. Alternatively, temporal context engine 250 may be configured to retain some or all mark-up in order to provide emphasis or lexical structural information for downstream analysis. Temporal context engine 250 may be configured to normalize the original mark-up information and perform analysis of cascading style sheets (CSS) to add emphasis or visibility and/or other structural information to the output of step 320 for downstream analysis. It will be appreciated that the specific technique or combination of techniques used to perform the filtering in step 320 may be dependent on domain-specific rules and conditions.
Temporal context engine 250 analyzes (step 330) the filtered source using one or more of a range of language techniques, including, for example, noun-phrase detection, keyword detection, thematic extraction, sentiment analysis, and corpus linguistic analysis. This analysis may output a range of textual outputs that may be suitable for identification of appropriate target content, for example: sets of n-grams, ordered lists of keywords, themes and sentiments. It will be appreciated that the specific technique or combination of techniques used to perform the analysis in step 330 may be dependent on domain-specific rules and conditions.
Temporal context engine 250 identifies (step 340) matches between the source analysis results and a target content set. The target content system may be any suitable collection of available content. For example, per the exemplary embodiment of
Output from the analysis stage may be compared with various attributes of the target content, for example: title, genre, actors, and/or keywords. It may also be compared against derived information from the target content, such as thematic analysis of the synopsis or description of the content. In accordance with embodiments described herein, a multiplicity of matching algorithms may be defined for use in step 340. The matching algorithms may be differentiated by the assignment of weights to component matching factors such as user behavior, environment, the content of webpage 100 and the target content set. Examples of user behavior may include click through rates and actions performed (e.g., viewing or recording associated content). Examples of environment may include geographical location, time of day, day of week, season and special events such as the Olympics or the World Cup. Over time, user behavior may be tracked to determine which of the matching algorithms is more successful at generating user interest. In accordance with embodiments described herein, the use of more successful matching algorithms may be prioritized over time. It will be appreciated that the specific technique or combination of techniques used to perform the identification in step 340 may be dependent on domain-specific rules and conditions.
Temporal context engine 250 prioritizes (step 350) the identified content in accordance to target content relevance for the end user per the current contents of webpage 100. For example, per the exemplary embodiment of
Temporal context engine 250 generates (step 360) a response containing any additional contextual information that may be relevant to the end user, such as television tune-in information, price, graphics and descriptive text. The response generation may also take into account any requested paging information received from the client to allow the end user to scroll through results.
The generated response may be provided (step 370) to browser 240 either in a pure data format (e.g., JSON, XML, etc.) or as rendered output (e.g., HTML, Image, WebGL, etc.). Alternatively, or in addition, the generated response may be provided to another webpage and/or via the operating system notification system. Browser 240 may then present the response as part of webpage 100, for example, as temporal context section 140 as depicted in
It will be appreciated that the representation of temporal context section 140 is exemplary; other representations may also be included in the context of the herein described methods. For example, the information included in temporal context section 140 may alternatively be presented in other locations on webpage 100 (e.g., on the top of the page) or as “marked up” text within the body of the page. The display of temporal context section 140 may also be initially hidden, and available for presentation based on a user-option. Alternatively, or in addition, temporal context section 140, or at least a variation thereof, may be rendered for presentation on a second device. For example, computing device 200 (on which webpage 100 is presented) on a desktop computer; temporal context section 140 may be rendered for presentation and further processing on a second device such as a television, tablet computer or smartphone connected to computing device 200 via the Internet, a home network, or other suitable means.
It will be appreciated that process 300 may be extended to provide further processing after browser 240 presents the generated response. For example, temporal context choices 150 may be presented by browser 240 as “clickable” links to open the associated content per an associated URL. Scheduled broadcast times 151 and broadcast channels 152 may also be presented as clickable links that may, for example, be operable to open associated content such as electronic program guides associated with a given scheduled broadcast time 151 or broadcast channel 152.
In accordance with embodiments of the present invention, computing device 200 may comprise a media player for playing video content and/or a storage device suitable for recording video content. Browser 240 may detect (step 380) selection of a clickable link and process (step 390) the selection by opening up, recording or downloading/saving the associated content on computing device 200 and/or a second device, such as, for example, a television or STB. In accordance with embodiments of the present invention display screen 230 may be implemented as a touchscreen; the user selection may therefore be entered via display screen 230. Alternatively, or in addition, the selection may be input via any other suitable user interface (UI) device, such as, for example, a mouse, a pointing device, a voice command receiver or a keyboard.
Reference is now made to
It will be appreciated that the depiction of temporal context engine 250 as a component of device 200 in
In accordance with embodiments described herein, a range of caches may be employed to reduce the overhead of multiple calculation steps for the same source content. Furthermore, depending on the amount of personalization and time/location dependence in the selected content/processing rules, it may be feasible to provide a previously generated response directly from cache.
It will be appreciated by one of ordinary skill in the art that the methods described herein may not be limited only to implementation in the context of temporal availability of television programming. For example, process 300 may also be configured to provide currently available products and prices based on the contents of a webpage such as webpage 100. Process 300 may be configured to analyze the body of a webpage in a generally similar manner to find products and prices. Temporal context engine 250 may be configured to find more competitive deals, which may be presented in temporal context section 140.
Process 300 may also be configured to provide currently available background Information. Temporal context engine 250 may be configured to surface key nouns, events, themes, etc. Step 340 may be configured to find links to background information articles in a corpus such as Wikipedia.
It will be appreciated by one of ordinary skill in the art that per the description of process 300, the information presented by browser 240 in temporal context section 140 is determined as a function of temporally available content that is in some way thematically related to the current contents of webpage 100. It will similarly be appreciated that this functionality may be provided independent of the identity, history, and/or previously defined preferences of the user.
In according with embodiments described herein, this functionality may be extended by a number of personalization options. For example, users of computing device 200 may choose to identify themselves and their preferences. In this mode, the user may input preferences for the set or type of content to be presented in temporal context section 140. For example, a user may enter preferences such as: “never this show”, “prefer content on this channel/from this broadcaster” etc. These preferences may be used by temporal context engine 250 in step 350 to change the set of content or the relative priority of content presented in temporal context section 140.
Alternatively, or in addition, a user may choose to link an additional identity to the system. Such an identity may include additional information about the user; for example a social network identity may include preferences for content, the user's location, demographic information, etc. which may also be used to change the set of content or the relative priority of content presented in temporal context section 140. Such an identity may also trigger downstream actions on the associated content. For example a television identity may trigger “play now” or “record for later” actions by computing device 200 and/or second device 400. A social network identity may similarly trigger actions to “share” or “like” the associated content within the network.
Alternatively, or in addition, temporal context extension 245 and/or temporal context engine 250 may be configured to track the history of the websites viewed by the user, and/or some derived “themes” or “keywords” of the sites, and store this information over time. This information could also be used by the various steps of process 300 to personalize its output for a particular viewer or set of viewers.
It will be appreciated that the embodiments described hereinabove focus primarily on the analysis of textual source on webpage 100. Alternatively, or in addition, other media, such as, for example, images, videos and audio clips may be used in an analogous manner to produce temporal context choices 150. By way of example, an image search engine such as Google Images may be used to return a name or description of an image; an audio recognition service such as provided by Shazam Entertainment Ltd. may be used to return a name and/or lyrics for an audio clip. The resulting text (i.e., the returned name, description or lyrics) may be processed by process 300 in generally the same manner as textual source directly harvested from webpage 100.
It is appreciated that software components of the present invention may, if desired, be implemented in ROM (read only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. It is further appreciated that the software components may be instantiated, for example: as a computer program product or on a tangible medium. In some cases, it may be possible to instantiate the software components as a signal interpretable by an appropriate computer, although such an instantiation may be excluded in certain embodiments of the present invention.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention is defined by the appended claims and equivalents thereof:
Number | Date | Country | Kind |
---|---|---|---|
1509187.9 | May 2015 | GB | national |