The present invention relates to methods and apparatus for retrieving metadata for use in a content guide.
An increasing number of set-top boxes (STBs) are hybrid boxes that have both a broadcast capability (e.g. cable and/or satellite and/or terrestrial television (TV)) and an IP capability (e.g. IPTV).
In a digital TV environment, the TV platform operator typically manages a bouquet of services, and is generally responsible for operating an infrastructure capable of delivering audio/visual (AV) content to the subscribers, often protected by a Conditional Access (CA) solution. The TV platform operator typically: receives content from one or more content providers who manage one or more TV channels in the TV bouquet; ensures the programs' and/or the channels' security (if Conditional Access protection is used); and inserts the content into the broadcast system (satellite, terrestrial, cable, IPTV, etc.) for reception by the subscribers.
An Electronic Program Guide (EPG) application available via an end user digital TV device (e.g. a STB or integrated receiver decoder (IRD)) is an on-screen guide to scheduled broadcast television programs, that allows a viewer to navigate, select and discover content by time, title, channel, genre, etc. using a remote control, a keyboard, a touch screen/pad, an inertia driven device (e.g. a Wii Remote) or even a telephone keypad.
Such an EPG comprises a graphical user interface, which enables browsing the list of channels made available in the digital TV bouquet. For example, the information is typically displayed in a grid with an option to select to receive more information on each program available in the selected time slot. The grid is typically extends over a number of pages (with a predetermined number of channels per page) and is typically arranged by slot times (with a predetermined number of slot times per page, e.g. from now 1 PM until tonight 8 PM). A subscriber can browse the EPG pages (up/down) and by selecting one particular entry in the EPG grid, the subscriber can select to display descriptive information about the selected item, such as a programme synopsis, actors, directors, year of production etc. (in another dedicated part of the user interface or in a new window). The list of channels may also comprise the programs on offer from sub-channels, such as pay-per-view (PPV) and video-on-demand (VOD) services. Depending on the metadata broadcast with the programmes, some EPGs allow subscribers to navigate channel listings up to 14 days into the future. EPG metadata is typically sent within the broadcast transport stream (e.g. as Service Information (SI) as specified in the Digital Video Broadcasting
Service Information (DVB-SI) standard (“Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems”, ETSI EN 300 468)) or alongside the broadcast stream in a dedicated data channel (e.g. Really Simple Syndication (RSS) channels (RSS 2.0 Specification, www.rssboard.org)).
International Patent Application WO 2006/004170 of NDS Limited provides a solution for introducing additional content information related to events broadcast by a TV operator: it can be provided to subscribers without having an impact on the regular metadata broadcast by the TV operator and therefore without affecting the TV operator's broadcasting infrastructure. The EPG provided by a TV operator, the metadata used to construct the EPG and the method of transmitting the EPG to subscribers all remain the same. A search engine, under the control of the platform operator is used to feed the STB with additional metadata.
International Patent Application WO 02/41542 of Nokia Corporation describes a digital television system that includes service provider equipment for transmitting a digital television broadcast; and a set-top box for decoding the digital television broadcast and displaying the decoded broadcast on an analogue television. A processor arranged in the set-top box includes an agent or program for: receiving information transmitted with the digital television broadcast; searching the Internet for links based on the information; and displaying the list of links in response to a user input.
U.S. Pat. No. 6,005,565 to Legall et al. describes a search tool that enables a user to search an electronic program guide (EPG) and the Internet with one search. The search tool performs the search and modifies the display of the
EPG to identify programs identified by the search. A user can then view the EPG and select broadcasts of programs to display as well as proceed to the websites indicated by selecting corresponding elements on the display.
US published Patent Application US 2003/0226147 of Richmond et al. describes performing an Internet search based on a keyword obtained from an EPG.
The term “search engine” refers to a software program that searches the internet to find documents containing one or more specified keywords, and returns a list of documents in which the keywords were found. Broad-based search engines such as Google (www.google.com) or Yahoo (www.yahoo.com) fetch very large numbers of documents using a Web crawler. Another program called an indexer then reads these documents and creates a search index based on words contained in each document. Each search engine uses a proprietary algorithm to create its indexes so that, ideally, only meaningful results are returned for each query.
Vertical search engines, on the other hand, send crawlers out to a highly refined database, and therefore the indexes of vertical search engines contain information about a specific topic. As a result, vertical search engines are more valuable to people interested in a particular area.
The amount of metadata used to populate an EPG is growing rapidly in part because of the increasing number channels that are accessible with the hybrid STBs as described previously but also because EPGs are increasingly giving end users access not only to broadcast content but also to additional content such as VOD content, downloadable content (e.g. Pull-VOD content), user generated content (UGC) etc. Consequently, it is becoming more and more complex to collate and organize such a large amount of data and to ensure that the data is accurate, reliable and of good quality.
The metadata types related to any particular program are specified in specifications such as DVB-SI, DVB-IPI and PSIP. The ability to add additional metadata types requires additional bandwidth for carrying the additional metadata which increases the cost of the overall infrastructure. A dedicated data channel for additional metadata is a possibility but relies on a pre-determined data format (on the server side) which must be understood on STB side (e.g. HTML).
As mentioned previously, feeding an EPG with data sourced from the internet is known. However, getting relevant results is difficult since an internet search engine (e.g. Google (www.google.com)) returns search results using a ranking algorithm that is based on Internet traffic and Internet page link structure and does not, as a default, provide only those results that can be consumed on a television display device. Therefore, when searching for a movie, the first search result provided by such a search engine is typically the URL of the internet home page of that movie, which is likely not to be suitable for use by the device. The device displaying the EPG would then have to retrieve the webpage targeted by the URL and then browse that page in order to retrieve any links on the page that can be used on the device.
There is provided according to an embodiment of the present invention a method for retrieving metadata for use in a content guide, the method including: crawling one or more crawlable data sources; storing metadata extracted from the one or more crawlable data sources in an indexed cache; receiving a search request from a client according to search criteria, the search request requesting metadata for use in the content guide; searching a subset of the indexed cache according to the search criteria; extracting metadata from the indexed cache as results of the searching; identifying relevant metadata in the results, the relevant metadata including metadata suitable for use by the client in the content guide; and transmitting the relevant metadata to the client for use in the content guide.
In some embodiments, the one or more crawlable data sources comprise one or more web pages.
In some embodiments, the method further includes storing the one or more web pages in the indexed cache; and extracting one or more web pages from the indexed cache as results of the searching.
In further embodiments, the one or more crawlable data sources further includes one or more local data sources within a network to which the client has access.
In other embodiments, the method further includes identifying advertisements for display in the content guide in dependence on the relevant metadata; and transmitting the advertisements to the client with the relevant metadata.
In some embodiments, the identifying advertisements is further dependent on one or more of the search criteria, the client, a history of search requests received, and advertisements previously identified and transmitted to the client.
In further embodiments, the search criteria specifies the subset of the indexed cache.
In other embodiments, the search criteria is established from the relevant metadata.
In further embodiments, the method further includes receiving a further search request according to further search criteria, the further search request requesting content related to content selected using the content guide.
In some embodiments, the further search criteria is established from the relevant metadata.
In other embodiments, the further search criteria is specified by a user of the content guide.
There is also provided in accordance with a further embodiment of the present invention a method for retrieving metadata for use in a content guide installed on a client device, the method including: sending a search request according to search criteria to a search server, the search request requesting data for use in the content guide, wherein the search server is operable to crawl one or more crawlable data sources, store metadata extracted from the one or more crawlable data sources in an indexed cache, search a subset of the indexed cache according to the search criteria, extract metadata from the indexed cache as results of the searching, identify relevant metadata in the results, the relevant metadata including metadata suitable for use in the content guide, and transmit the relevant metadata to the client device; receiving the relevant metadata from the search server; and presenting the relevant metadata in a content guide.
In some embodiments, the one or more crawlable data sources include one or more web pages.
In other embodiments, the search server is operable to store the one or more web pages in the indexed cache; and extract one or more web pages from the indexed cache as results of the searching.
In other embodiments, the method further includes publishing content available within a network to which the client has access, wherein the search server is further operable to crawl the content and store the content in the indexed cache, wherein the content can be included in the search by the search server in response to the search request.
In some embodiments, the method further includes publishing the content directly to the search server.
In other embodiments, the method further includes publishing the content to a web page crawled by the search server.
In other embodiments, the method further includes: crawling content available within a network to which the client has access; storing the content in a local indexed cache; searching a subset of the local indexed cache according to the search criteria; extracting content from the local indexed cache as local results of the searching; identifying relevant local metadata in the local results; merging the relevant local metadata with the relevant metadata; and presenting the local relevant metadata and the relevant metadata in a content guide.
In some embodiments, the indexed cache includes the local indexed cache.
There is also provided in accordance with a further embodiment of the present invention apparatus for retrieving metadata for use in a content guide, the apparatus including: crawling means for crawling one or more crawlable data sources; indexed storage means for storing metadata extracted from the one or more crawlable data sources; searching means for receiving a search request from a client according to search criteria, the search request requesting metadata for use in the content guide, and for searching a subset of the indexed storage means according to the search criteria; and extraction means for extracting metadata from the indexed storage means as results of the searching, and for identifying relevant metadata in the results, the relevant metadata including metadata suitable for use by the client in the content guide; wherein the searching means is operable to transmit the relevant metadata to the client for use in the content guide.
There is also provided in accordance with a further embodiment of the present invention a search engine for retrieving metadata for use in a content guide, the search engine including: a global search engine operable to crawl one or more crawlable data sources; an indexed cache operable to store metadata extracted from the one or more crawlable data sources; a vertical search engine operable to receive a search request from a client according to search criteria, the search request requesting metadata for use in the content guide, and further operable to search a subset of the indexed cache according to the search criteria; and a snippet generator operable to extract metadata from the indexed cache as results of the searching, and further operable to identify relevant metadata in the results, the relevant metadata including metadata suitable for use by the client in the content guide; wherein the searching means is further operable to transmit the relevant metadata to the client for use in the content guide.
There is also provided in accordance with a further embodiment of the present invention a client device including: presentation means for presenting a content guide to a user; searching means for receiving a search request according to search criteria from the presentation means, and sending the search request to a search server, the search request requesting data for use in the content guide, wherein the search server is operable to crawl one or more crawlable data sources, store metadata extracted from the one or more crawlable data sources in an indexed cache, search a subset of the indexed cache according to the search criteria, extract metadata from the indexed cache as results of the searching, identify relevant metadata in the results, the relevant metadata including metadata suitable for use in the content guide, and transmit the relevant metadata to the client device; and receiving means for receiving the relevant metadata from the search server, and wherein the presentation means is operable to present the relevant metadata in the content guide.
There is also provided in accordance with a further embodiment of the present invention a client device including: a guide presenter operable to present a content guide to a user; and a guide engine operable to receive a search request according to search criteria from the guide presenter, and send the search request to a search server, the search request requesting data for use in the content guide, wherein the search server is operable to crawl one or more crawlable data sources, store metadata extracted from the one or more crawlable data sources in an indexed cache, search a subset of the indexed cache according to the search criteria, extract metadata from the indexed cache as results of the searching, identify relevant metadata in the results, the relevant metadata including metadata suitable for use in the content guide, and transmit the relevant metadata to the client device; wherein the guide engine is further operable to receive the relevant metadata from the search server, and send the relevant metadata to the guide presenter, and wherein the guide presenter is further operable to present the relevant metadata in the content guide.
The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
Embodiments of the present invention will now be described in the context of a content guide or Universal Program Guide (UPG). A UPG has some or all of the following properties:
Reference is now made to
STB 103 is operable to receive broadcast TV programs from either broadcast TV operator 160 or from IPTV operator 170. STB 103 offers users the ability to navigate through a list content via a UPG.
Reference is now made to
The UPG Search Engine 130 is made of several components:
On the end user device side, the UPG engine 102 supports the ranking level as a way to browse results with various depth layers. In this way, the display of content information is managed on screen for the end user. The UPG can then be used to browse several sources of content (e.g. TV broadcast content, Pay Per View services, VOD service managed by the digital TV operator, VOD service managed by a third party, content available on Internet including user generated content etc.) with ranking levels that are defined by the entity in charge of the UPG Search Engine.
In the present embodiment, snippets comply with the XDR format because:
Reference is now made to
Reference is now made to
Reference is now made to
Reference is now made to
Reference is now made to
Referring now to
VSE 133 crawls remote web sources (e.g. EPG servers 140, internet content servers 150, other users/devices 110) and/or local sources (e.g. devices within home network 101 such as home devices 105). The web source documents and local source documents are parsed and indexed by index builder 132, which produces entries in internet cache 137 and index 190. Search requests are received via front end 191, which passes the search request on to query processor 136. Query processor 136 processes the search request, searches index 190 for relevant documents and instructs snippet generator 131 which information to extract from internet cache 137.
Reference is now made to
Reference is now made to
The UPG display is not full screen, rather A/V content previously selected by the end user may still be displayed in the background graphic area. The sponsored link/advertisement in this case is displayed via a widget window 350.
From the UPG application, a search on demand feature is offered to the user, which can search for content according to criteria. This feature can be executed in a seamless way from the perspective of the end user when the end user elects to get more information about a particular event in the UPG (e.g. a trailer, movie poster, picture gallery, UGC, merchandise etc.) From the extended list of information, the user can then search for more content related to the selected event. All requests used for achieving those features are based on the Search Engine capabilities:
Reference is now made to
From the UPG main application 401, the user can also perform a search on demand 409, which offers the user the ability to:
Reference is now made to
The end user enters the UPG by choosing one of the possible entry points (e.g. a TV (broadcast) event, a VOD asset, an item of UGC, a UPG grid search request etc.) (step 501). The UPG presenter sends a request for event metadata to the UPG engine (step 503). The UPG Engine transforms this request into an HTTP request and transmits the HTTP request to the UPG Search Engine (step 505). The UPG search engine (which comprises the Vertical Search Engine, the snippet generator, and optionally the Ads inserter) performs the request within the global index using additional parameters to specify the VSE context (e.g. site restriction) and returns the results as an HTTP response to the UPG engine (step 523). The result is received by the UPG engine, parsed (step 525). Then the UPG listing is generated and transmitted to the UPG Presenter (step 527) and displayed to the end user (step 529).
Reference is now specifically made to
Reference is now made to
Reference is now made to
When an end user interacts with the UPG presenter (in order to obtain detailed information about TV events for a particular channel (e.g. Channel 1)), the UPG presenter then sends a request to the UI engine.
The UI engine forwards the request to a UPG object module. In the present embodiment, the request requests the next four TV events to be broadcast on Channel 1 (e.g. GET_EVENTS(BBC1,4)).
The UPG object module then builds the query terms of the XDR request from the received request. In the present embodiment certain criteria are automatically added to the query (e.g. the date and the preferred language for the metadata, which is useful for filtering the search results in the appropriate language when content is available in multiple languages.) The XDR request (e.g. (channelname:BBC1 and startdate>=“2006/12/31 15:00:00”)&lang=EN) is then forwarded to the UPG Core module with an indication that four results are expected.
The UPG Core Module posts the XDR request (e.g. an HTTP request) to UPG access module with optional HTTP header elements (e.g. cookies). In the present embodiment, a further criteria is added to the query: the maximum number of results expected. Although the request received from the upper layer was for four TV events, the maximum number of results is set to a higher value. An example of a typical search request posted to the UPG access module is:
http://www.ndsyse. com/tv?_q=(channelname:BBC1&startdate>=“2006/12/3115 :00:0 0”)&lang=EN&results=20.
An XDR response (e.g. an HTTP response) is received and the XML body is forwarded to the UPG core module.
The XML document is forwarded to the UPG XDR parser for decoding. The XDR parser analyzes the number of TV events returned, the advertisements associated with the search and suggestions for related assets (e.g. VOD, UGC, etc.)
The UPG Ranking Manager applies a ranking strategy to the results, i.e. from the responses, it extracts the suggested advertisements and suggested associated content.
The UPG Core Module receives from the UPG XDR parser the list of
TV events matching the request together with the associated content (e.g. advertisements, VOD, UGC, etc.)
The results are cached in UPG XDR cache.
Metadata associated with the first four TV events is returned to the UPG object module.
The search results are returned to the UPG engine.
The search results are returned to the UPG presenter and displayed to the user, optionally with the advertisements and related content suggestions.
An example of a query language used by VSE 133 in embodiments of the present invention will now be described. When receiving a search request, the VSE 133 query parses the search request into an XML object representing a query tree. Then, the query tree is expanded by query expansion modules to enrich it (synonym, semantic) or to interpret it. A new query tree is thereby generated. Custom query processing modules can then modify the query tree before it is sent to the index server to be executed.
Then, each tree leaf is associated with a collection of documents for which the corresponding predicate is true, thus producing a list of documents which are combined according to the operators (e.g. AND, OR, etc.) found in the inner nodes of the query tree. Document lists are then combined up to the root node of the tree in order to obtain a results set for the query. At the same time, documents lists are combined and a score value is computed for each predicate. The score values are then merged together to compute the overall document score. The final ranking score is added to two other score values that are assigned globally to each matching document:
Referring now to
A basic score computation example is a combination of the score class of the search term predicate (as defined in the original document when it was indexed) and the weight of the predicate in the query (e.g. the frequency of the query term).
The query operators used in the query (e.g. OR, AND etc.) may also affect the score (addition, multiplication, minimum, maximum etc.).
Indexing documents may also affect the score computation: when a search predicate matches an index field, the score value may be increase by a formula associated with this search field (in this way, search results with a genre defined as ‘sport’ can be presented before search results with ‘sport’ in the description).
Reference is now made to
In alternative embodiments, the overall architecture described above is used to build an archive UPG, i.e. a UPG used to browse past events that are no longer available in the digital TV Bouquet. As explained, by way of non-limiting example, in International Patent Application published as WO 2008/012488, by using a P2P system between end user devices such as a STB, it is possible for a user missing a broadcast event to recover it from another user's device via the P2P network. The present invention could be used to get old information related to the digital TV Bouquet by using Web archive metadata stored by the Search Engine.
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; on a tangible medium; or as a signal interpretable by an appropriate computer.
It will be 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 sub-combination.
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.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2008/051659 | 4/29/2008 | WO | 00 | 11/16/2009 |
Number | Date | Country | |
---|---|---|---|
60927247 | May 2007 | US |