# Patent

## Title
Framework for correlating content on a local network with information on an external network

## Abstract

A correlation system and method implement a framework for correlating content available from a local network with information on an external network. The system identifies information related to content available on the local network of interest to the user and also identifies one or more external sources that contain such related information. Then the system extracts data related to the identified information from the external sources, and determines correlations between the identified information and the data extracted from the external network.

## Background
FIELD OF THE INVENTION
The present invention relates to content correlation in different networks.
BACKGROUND OF THE INVENTION
The number of networked devices in local area networks, such as home networks, is on the rise, and so is the amount of content stored on them. Typically, consumers store and access several types of content (e.g., audio, video, image and other data files) in different formats using their home network devices. In addition to accessing such local content, home users also commonly access broadcast data streams via external networks such as live television/cable networks, the Internet, etc.
Media players, such as Windows Media Player, Real player, etc., extract related metadata information for music CDs (that are currently being played) from the Internet. Typically, such media players maintain a standard set of metadata types capable of being extracted and displayed, and rely on specific websites to obtain the required metadata.
However, the user cannot access other information related to the content (e.g., lyrics of a song, artist biography, etc., for a music CD). This is because such information is not among the standard metadata information available from specific Internet data sources that conventional media players are pre-configured to access. Further, the media player relies on specific Internet data sources (e.g., websites, remote data bases, etc.). If the data sources become inaccessible, the media player fails to obtain even the standard metadata information, even though the required information may be available from some other data source.
Further, since the amount of information available from the Internet is continually on the rise, a user can typically find information on the Internet that is related to content stored in his home network. The user can also find large quantities of related information in different formats (e.g., structured, semi-structured and unstructured) via multiple sources. As such, users are typically as interested in accessing information on the Internet as they are in accessing their own network content. However, conventional approaches do not enable seamless access to such related information. Conventionally, the user manually performs a search for the desired information using an Internet search engine or uses a web browser to directly access websites of interest. Thus, the user is forced to search for and analyze large quantities of information to identify/access the exact information he is looking for.
Desktop search applications such as Google Desktop Search and Copernic are extensions of Internet searches where users can search for content on their PCs. However, drawbacks of such search extensions include: (1) requiring users to form queries and to refine the queries in order to obtain desired results, (2) requiring computing resources that far exceed what consumer electronic devices provide for analyzing humongous search results, and (3) requiring input devices such as a keyboard to enter a significant amount of query text for searching. Therefore, there is a need for a method and system that enables simplified and seamless access to available content.
BRIEF SUMMARY OF THE INVENTION
The present invention provides a method and system for correlating content available from a local network with information on an external network. The correlation framework identifies information related to content available on the local network of interest to the user and also identifies one or more external sources that contain such related information. Then, the correlation framework extracts data related to the identified information from the external sources, and determines correlations between the identified information and the data extracted from the external network.
Said framework further identifies additional correlations between the various available data (local data and Internet data) to the user. Internet search engines are used to obtain related information/metadata, thereby increasing the probability of finding the required information.
The user can look up several different types of information related to the local data that the user accesses. As such, the user is not restricted to choose from a standard list of available related/metadata information. Rather, correlations between different types of data are determined and presented to the user. The users can utilize CE devices for searching information using a small number of key strokes, without requiring a typical keyboard. Information is searched and suggested to the users based on context, to augment user experience of using CE devices. Therefore, the user can obtain desired Internet information with minimum involvement in search query construction.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a functional block diagram of an example network that implements an embodiment of the present invention.
FIG. 2 shows a flowchart of an embodiment of a process in a framework for correlating local content with information on external sources, according to an embodiment of the present invention.
FIG. 3 shows a flowchart of an embodiment of the steps of identifying external information related to local content and constructing correlations therebetween, according to an embodiment of the present invention.
FIG. 4 shows a functional block diagram of a framework for correlating local content with information from external sources, according to an embodiment of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a method and system that implement a framework for correlating content available from a local network with information on an external network. This enables seamless access to content available from the local network as well as related information available from external sources.
In one implementation, the present invention provides a framework for correlating home network content with information on the Internet, providing a user with seamless access to content stored in the home network and any related data available from the Internet. The user is not restricted to choose from a standard list of metadata information. Rather, the user is enabled to look up several different types of information related to the content in the home network. Correlations between the content in the home network and related information in the Internet are determined and presented to the user. Correlations refer to associations between different information.
In one example, Internet search engines and specific Internet service providers along with specific websites (web pages) are used to access information and metadata related to the user's query. In another example, only Internet search engines are used to obtain information and metadata related to the user's query.
FIG. 1 shows a functional architecture of an example network 10 including a local network (e.g., a home network), embodying aspects of the present invention. The network 10 comprises devices 20 which may include content and consumer electronic (CE) devices 30 (e.g., TV, MP3 player, cell phone, PDA, etc.) which may include content, and an interface 40 that connects the network 10 to an external network 50 (e.g., the Internet). The external network is connected to one or more servers 51. Though the devices 20 and 30 are shown separately, a single physical device can include one or more logical devices. In this example, the present invention effectively delivers the power of the Internet to users using devices 20 and CE devices 30.
The devices 20 and 30, respectively, can implement the HTTP protocol that uses UPnP for communication therebetween. Though in the example described herein the HTTP protocol is utilized by the network 10, those skilled in the art will recognize that the present invention is useful with other network communication protocols (e.g., Jini, HAVi, IEEE 1394, etc.). The network 10 can comprise a wired network, a wireless network, or a combination thereof.
The network 10 embodies an example framework for correlating home content with information on the Internet, according to the present invention. FIG. 2 shows a process 200 which implements the example framework, including the following steps:

    
    
        Step 202: Identifying information related to content available on the local network of interest to the user.
        Step 204: Identifying Internet sources that contain such related information.
        Step 206: Extracting appropriate portions of such related information from the identified Internet sources.
        Step 208: Finding data that is most relevant to the user's interest, amongst the related information extracted from the Internet sources.
        Step 210: Determining correlations between the extracted information and the content available on the local network, of interest to the user and present the extracted information and the correlations to the user.
    
    


FIG. 3 shows an example process 300 for identifying information on the Internet that is related to local content, and then constructing correlations between the identified information and the local content. In this example, said local content comprises content of interest to the user. The process 300 includes the following steps:

    
    
        Step 302: Identifying content of interest to the user. This can be determined from a query submitted by the user, from content currently accessed by the user, from history/preferences of the user indicating the user's interests, etc.
        Step 304: Identifying context information, such as keywords, related to the identified content of interest to the user.
        Step 306: Using the identified content and context information to construct a query for information related thereto. The query is constructed so as to represent the user's intentions and context via appropriate keywords.
        Step 308: Constructing an appropriate execution plan to resolve the query by searching various information sources.
        Step 310: Executing the plan by: (a) Identifying appropriate Internet sources for extracting information based on the query; and (b) Identifying correlations between the content of interest to the user, the extracted Internet information and other locally available data.
    
    


In one example, the user is interested in purchasable albums by the artist “Sting.” The user's interest may be determined in different ways such as from a user request in a query, or from a query generated based on observations of the user's activities such as playing music by “Sting” on a MP3 player in the home network, etc. To resolve this query, the purchasable albums by “Sting” are identified by accessing the Internet. Then, based on the fact that the artist “Sting” is a member of the band “Police” (known from another Internet source), it is correlated that purchasable albums by the band “Police” are also relevant to the user's query. Therefore, the purchasable albums by “Police” are also identified. The list of purchasable albums by both “Sting” and the band “Police” are then presented to the user.
In another example, before presenting the list of purchasable albums by both “Sting” and the band “Police” to the user, it is determined if any albums by “Sting” and the “Police” are already available in the home network (e.g., on a device 20 or 30 in FIG. 1). Using this additional information, the list is modified such that the user is only presented with a listing of the purchasable albums by “Sting” and the band “Police” that are not available in the home network.
FIG. 4 shows a functional block diagram of a system 400 which implements a framework for correlating local content with information in external sources such as the Internet, according to an embodiment of the present invention. The system 400 utilizes the following components: a Client User Interface (UI) 402, a User & Device Contextual Information Gatherer (CIG) 404, a Correlation Framework (CF) 406, Data Extraction Plug-ins 408, Home Devices 410 (e.g., devices 20 or 30 in FIG. 1 such as HDTV, a VCR, a DVD player, etc.), Internet Unstructured Data Sources (e.g., web pages, etc.) 412, Internet Structured Data Sources (e.g., CDDB, etc.) 414 and Internet Semi-Structured Data Sources (e.g., IMDB, EPG, web pages, etc.) 416.
The Client UI 402 provides interfaces to the users to access local information and any related Internet information that the CF 406 identifies. The Client UI 402 also allows the user to submit specific queries (e.g., “Get purchasable albums by artist “Sting””) to the CF 406.
The CF 406 resolves the queries that are based on the content of interest to the user, and provides to the user information obtained based on the queries, along with information derived using identified correlations. The CF 406 uses the Client UI 402 to display said information on a display for user viewing and selection.
The CIG 404 and the Data Extraction Plug-ins 408 extract local and Internet information. The CIG 404 extracts information about current user activity and device activity, about content stored on devices, about user history and preferences, etc.
The CF 406 includes a Query Execution Planner (QEP) 418, a Correlation Plan Executor (CPE) 420, a Correlation Constructor 422, a Plan Library 424 and multiple RuleLets 426. The QEP 418 retrieves a plan from the Plan Library 424 to resolve a query. A plan includes the various steps to be executed in order to resolve a particular type of query. Each plan step includes one or more RuleLet-references corresponding to the RuleLets 426. RuleLets 426 are specialized processes that execute a specific task (e.g., extracting metadata information for a music album from the Internet, extracting biography of an artist, etc.). Each plan also optionally includes details about the necessary parameters and/or required output (type).
The QEP 418 obtains any available contextual information about the user from the CIG 404 and customizes the plan based on the contextual information.
An example XML plan is shown in Table 1 below, which specifies the steps to execute in order to obtain albums by an artist that are available for purchase on the Internet and not available in the home network.







TABLE 1





Sample Plan - GetPurchasableAlbumsbyArtist

















<? xml version=“1.0”?>



<Plan>



 <PlanStep>



  <RuleLet>GetDataRule</RuleLet>



  <OutputType>AllPurchasableAlbumURLs</OutputType>



  <Scope>Internet</Scope>



 </PlanStep>



 <PlanStep>



  <RuleLet>GetDataRule</RuleLet>



  <OutputType>BandList</OutputType>



  <Scope>Internet</Scope>



 </PlanStep>



 <PlanStep>



  <RuleLet>GetDataRule</RuleLet>



  <OutputType>PurchasableAlbumsByBand</OutputType>



  <Scope>Internet</Scope>



 </PlanStep>



 <PlanStep>



  <RuleLet>GetContentNotInHomeRule</RuleLet>



  <InputType>Internet-



  AllPurchasableAlbumURLs</InputType>



  <InputType>Internet-



  PurchasableAlbumsByBand</InputType>



  <InputType>Local-AlbumsByArtist</InputType>



  <OutputType>AlbumList</OutputType>



  <Scope>CIWorkspace</Scope>



 </PlanStep>



</Plan>










The CPE 420 invokes the appropriate RuleLets 426 as specified in each step of the plan. The CPE 420 executes the plan using various Data Extraction Plug-ins 408. The Data Extraction Plug-ins 408 extracts the desired data from sources including the local devices/media repository and/or the Internet (e.g., via Internet search engines such as Google, Yahoo, etc., and seed sources such as CDDB.org, allmusic.com). The CPE 420 also maintains a workspace 421 and stores the query search results from the Internet at each plan step until the whole plan is executed.
The CC 422 analyzes the search results provided by the CPE 420, and identifies correlations amongst the search results and the locally available information.
The Internet Unstructured Data Sources 412 comprise data segments (e.g., free text data segment, or marked up data segment, etc.) whose semantics cannot be analyzed (e.g., Google search ‘pope’ or <other>pope </other>, etc.). The Internet Structured Data Sources 414 comprise XML data with tags that define closely the semantics of small sections of free-form data (e.g., CD song information <artist>Sting</artist>, etc.). The Internet Semi-Structured Data Sources 416 comprises data with tags (e.g., XML) that define part of the free-form data, but do not describe the semantics of significant sections of the data (e.g., EPG data sections <review> . . . </review>, etc.).
The system 400 resolves a user query and determines correlations between local and Internet data, according to the following steps:

    
    
        1. The Client UI 402 receives the user's request (query) for information, and forwards it to the QEP 418.
        2. The QEP 418 retrieves an appropriate plan from the Plan Library 424 for resolving the query, and customizes the plan based on user contextual information from the CIG 404.
        3. The QEP 418 provides the plan to the CPE 420 for execution.
        4. The CPE 420 parses the plan and sequentially executes each step in the plan, wherein:
        
            a. The CPE 420 internally invokes appropriate RuleLets 426.
            b. The invoked RuleLets 426 execute the appropriate Data Extraction Plug-ins 408 to search for information (e.g., on the Internet) to satisfy the query.
            c. The CPE 420 stores the search results in the workspace 421 and checks if there are any other steps to be executed. Steps (a)-(c) are repeated until all steps (except the last one) in the plan are executed.
            d. The CC 422 uses the search results stored in the workspace 421 to identify correlations between the search results and the locally available data. Then, the CC 422 provides the search results and correlations to the Client UI 402 for display to the user.
        
        
    
    


An example scenario for resolving a user query in the system 400 includes the following steps:

    
    
        1. The CF 406 is installed and running on a CE device 410 (e.g., the TV) in user John's living room.
        John chooses to listen to a music album “X” by the artist “Sting.”
        2. A Client UI 402 on the TV 410 in the living room displays this information (i.e., that John is listening to album “X”). A remote control for the TV 410 allows John to access/navigate the Client UI 402.
        3. While listening to a particular track in the album, John wishes to access more information about the song and selects/enters into the Client UI 402 the information that he is interested in (e.g., more purchasable albums by artist “Sting,” etc.).
        4. The Client UI 402 on the TV 410 provides the track/album information and the user selection to the CF 406. Using the CIG 404 and the appropriate Data Extraction Plug-ins 408, the CF 406 gathers the available metadata and other information about the track/album from a local media repository or the device that the album is stored on (e.g., in John's home network).
        5. The QEP 418 retrieves an appropriate plan from the Plan Library 424 to resolve this user request.
        6. The QEP 418 passes this plan to the CPE 420 along with other contextual information obtained by the CIG 404 and from the Client UI 402.
        7. The CPE 420 parses the plan and executes each step of the plan by invoking the appropriate RuleLets 426 as specified in the plan (e.g., Table 1: “GetDataRule”, “GetContentNotInHomeRule”).
        8. The RuleLets 426 internally use appropriate Data Extraction Plug-ins 408 to retrieve the requested information (e.g., from the Internet).
        9. The CPE 420 stores the results of the execution of each of the plan steps in the workspace 421. As such, the workspace 421 now includes, e.g. a list of purchasable albums by “Sting” and the band “Police.”
        10. The CPE 420 provides to the CC 422 the details of the last plan step to be executed. The CC 422 retrieves information about locally available albums by “Sting” and the band “Police” (e.g., in the home network). Then, the CC 422 identifies in the search results stored in the workspace 421, the list of albums that are purchasable on the Internet and constructs a list of purchasable albums by “Sting” and the band “Police” that are not available locally (e.g., in the home network).
        11. The CC 422 provides this final list to the Client UI 402 for presentation to the user, John, on the TV.
    
    


The modules 404, 406 and 408 in FIG. 4 can be implemented as stand alone modules in the network 10 (FIG. 1). Further, two or more of the modules 404, 406 and 408 can be implemented in one device in the network 10 such as a correlation controller device 25, or in a device 20 or a CE device 30. The GUI 402 can be show on a device in the network 10 capable of displaying information, such as a CE device 30.
As such, the present invention enables a user to utilize a CE device, such as a TV, to search for information using a small number of keys inputs, and without a typical keyboard. Further, users can obtain desired Internet information with minimum or no involvement in query construction. Information is suggested to the users based on context extracted from the user activities and the local content, in order to augment the user experience in using CE devices to seamlessly access information available locally and in external sources.
As is known to those skilled in the art, the aforementioned example architectures described above, according to the present invention, can be implemented in many ways, such as program instructions for execution by a processor, as logic circuits, as an application specific integrated circuit, as firmware, etc.
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.

## Claims

1. A method of providing suggested content, comprising:
employing a processor in a consumer electronic (CE) device for:
providing an information gatherer for identifying information comprising context related to user activities and content available on the local network including the current media content being accessed by the user, of interest to the user, wherein the local network comprises a home network including the consumer electronic device, and
identifying one or more Internet sources that contain related information to the identified information, wherein the Internet sources are external to the local network;
providing an extractor for extracting data related to keywords associated with said identified information by using the keywords associated with the identified information to construct a query for querying the identified Internet sources, wherein the extractor includes plug-ins for extracting information from Internet structured data sources, Internet unstructured data sources, and Internet semi-structure data sources; and
providing a correlator for determining correlations between the identified information and the data extracted from the identified Internet sources;
determining suggested media content based on the determined correlations between the identified information and the data extracted from the identified Internet sources;
removing media content from the suggested content based on content already available within the local network: and
providing remaining suggested media content to a user for selection

wherein the user is provided with relevant suggestions for additional media content different than that currently being accessed and that is not already present on the local network to assist a user to search for information relevant to the user with reduced query inputs to a remote control unit.

2. The method of claim 1 wherein identifying information related to media content available on the local network, of interest to the user further includes identifying information of interest to the user based on a query submitted by the user, the query being used as a portion of the information used to determine the correlations.

3. The method of claim 1 wherein identifying information related to content available on the local network, of interest to the user further includes determining content previously accessed by the user, content stored on devices in the local network and content from user preferences.

4. The method of claim 1 wherein determining correlations further includes finding data in the extracted data that is most relevant to said identified information.

5. The method of claim 1 wherein extracting data related to said identified information from the external sources further includes:
gathering the identified information of interest to the user;
using the identified information to construct a query;
constructing a plan to resolve the query; and
executing the plan to extract data related to said identified information from the Internet sources.

6. The method of claim 5 further including determining additional correlations between the identified information and extracted data based on the context information.

7. The method of claim 1, wherein removing content from the suggested media content based on content available within the local network comprises determining whether content related to the data extracted from the external network sources is available on the local network.

8. The method of claim 1, wherein a remote control device controls searching the identified information.

9. The method of claim 1, wherein the remaining suggested content comprising content available for purchase via selection.

10. The method of claim 5, wherein the plan includes necessary parameters and required output type, and the plan is customized based on the context information.

11. A correlation system for correlating data in a local network with data in one or more external network sources and suggesting media content based on data correlations, comprising:
a processor;
a contextual information gatherer that is configured to identify information comprising context related to media content available on the local network of interest to the user and user activities wherein the local network comprise a home network including consumer electronic devices;
a data extractor that is configured to extract data related to said identified information by using the identified information construct a query for querying Internet sources, including Internet structured data sources, Internet unstructured data sources, and Internet semi-structure data sources; and
a correlation module in a device in the local network, that is configured for determining correlations between the identified information and the data extracted from the Internet sources,
determining suggested media content based on the determined correlations between the identified information and the data extracted from the external network sources, removing media content from the suggested content based on content already available within the local network, and providing remaining suggested media content to a user for selection;
wherein the user is provided with relevant suggestions for additional media content different than that currently being accessed and that is not already present on the local network to assist a user to search for information relevant to the user with reduced query inputs to a remote control unit.

12. The correlation system of claim 11 further comprising a user interface that is configured to present the correlations to the user.

13. The correlation system of claim 11 wherein the contextual information gatherer is further configured to identify information of interest to the user based on a query submitted by the user.

14. The correlation system of claim 11 wherein the contextual information gatherer is further configured to identify information of interest to the user based on content previously accessed by the user, content stored on devices in the local network and content from user preferences.

15. The correlation system of claim 11 further comprising:
a query execution planner that is configured to form a query based on the identified information, wherein the data extractor is further configured to extract data related to said identified information from the external sources based on the query.

16. The correlation system of claim 11 wherein the correlation module is further configured to determine correlations by finding data in the extracted data that is most relevant to said identified information.

17. The correlation system of claim 15 wherein:
the contextual information gatherer is further configured to gather further context information related to the identified information of interest to the user; and
the query execution planner is further configured to form a query based on the context information and said identified information, and construct a plan to resolve the query.

18. The correlation system of claim 17 further comprising a plan executor that is configured to execute the plan by controlling the data extractor to extract data related to said identified information from the external sources.

19. The correlation system of claim 18 wherein the correlation module further comprises a correlation constructor that is configured to analyze the extracted data to find correlations between the extracted data and the identified information.

20. The correlation system of claim 19 wherein the plan identifies Internet sources and the data extractor is further configured to extract data from the identified Internet sources.

21. A consumer electronics device capable of being connected to a local network to assist a user to search for information relevant to the user with reduced query inputs, comprising:
a processor;
a contextual information gatherer that is configured to identify information comprising context related to content available on the local network of interest to the user and user activities associated with the current media content being accessed by the user;
a data extractor that is configured to construct a query to extract data related to said identified information from external Internet sources; and
a correlation module that is configured to determine correlations between the identified information and the data extracted from the Internet sources, determining suggested content based on the determined correlations between the identified information and the data extracted from the Internet sources, removing content from the suggested content based on content already available within the local network, and providing remaining suggested content to a user for selection;
wherein the user is provided with relevant suggestions for additional media content different than that currently being accessed and that is not already present on the local network to assist a user to search for information relevant to the user with reduced query inputs to a remote control unit.

22. The consumer electronics device of claim 21 further comprising a user interface that is configured to present the correlations to the user.

23. The consumer electronics device of claim 21 wherein the contextual information gatherer is further configured to identify information of interest to the user based on a query submitted by the user.

24. The consumer electronics device of claim 21 wherein the contextual information gatherer is further configured to identify information of interest to the user based on content currently or previously accessed by the user, content stored on devices in the local network and user preferences.

25. The consumer electronics device of claim 21 wherein the correlation module includes a query execution planner that is configured to form a query based on the identified information, wherein the data extractor is further configured to extract data related to said identified information from the Internet sources based on the query.

26. The consumer electronics device of claim 21 wherein the correlation module is further configured to determine correlations by finding data in the extracted data that is most relevant to said identified information.

27. The consumer electronics device of claim 25 wherein:
the contextual information gatherer is further configured to gather further context information related to the identified information of interest to the user; and
the query execution planner is further configured to form a query based on the context information and said identified information, and construct a plan to resolve the query.

28. The consumer electronics device of claim 27 further comprising a plan executor that is configured to execute the plan by controlling the data extractor to extract a related to said identified information from the Internet sources.

29. The consumer electronics device of claim 28 wherein the correlation module further comprises a correlation constructor that is configured to analyze the extracted data to find correlations between the extracted data and the identified information.

30. The consumer electronics device of claim 29 wherein the plan identifies Internet sources and the data extractor is further configured to extract data from the identified Internet sources.

31. The consumer electronics device of claim 21 wherein the local network comprises a home network including consumer electronic devices.

32. A method of correlating data on a local network with data from one or more external network sources, comprising:
employing a processor in a consumer electronic device for:
providing an information gatherer for identifying information comprising context related to user activities with the consumer electronic device and user activities with media content, available on the local network, of interest to the user, and identifying one or more external network sources that contain such related information, wherein the external network sources are external to the local network;
constructing a query representing the user's intentions and context from said identified information, wherein said identified information comprises keywords;
providing an extractor having plug-ins for extracting data related to said keywords from the Internet sources, the extractor having plug-ins for Internet unstructured data sources, Internet structured data source, and Internet semi-structured data sources; and
providing a correlator for determining correlations between said keywords and the data extracted from the external network sources, determining suggested content based on the determined correlations between the identified information and the data extracted from the Internet sources, removing content from the suggested media content based on media content already available within the local network, and providing remaining suggested media content to a user for selection;
wherein the user is provided with relevant suggestions for additional media content different than that currently being accessed and that is not already present on the local network to assist a user to search for information relevant to the user with reduced query inputs to a remote control unit.