WO2001090950A1 - Context sensitive configurable web content delivery - Google Patents

Context sensitive configurable web content delivery Download PDF

Info

Publication number
WO2001090950A1
WO2001090950A1 PCT/US2001/016299 US0116299W WO0190950A1 WO 2001090950 A1 WO2001090950 A1 WO 2001090950A1 US 0116299 W US0116299 W US 0116299W WO 0190950 A1 WO0190950 A1 WO 0190950A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
user
information
context
context information
Prior art date
Application number
PCT/US2001/016299
Other languages
French (fr)
Inventor
Richard T. Brownrigg, Jr.
Jeff Chasen
Original Assignee
Realnetworks, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realnetworks, Inc. filed Critical Realnetworks, Inc.
Priority to AU2001263315A priority Critical patent/AU2001263315A1/en
Publication of WO2001090950A1 publication Critical patent/WO2001090950A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Definitions

  • This invention relates to delivery of data to a user system. More specifically, this invention relates to delivery of context sensitive information to a user system. Description of the Related Art
  • the Internet has become a desirable means for making information available to individuals distributed across large geographic areas.
  • the ordinary way to do this is to provide notifications to registered users via email, or for the user to search for the information in which he is interested.
  • search engines can perform searches of textual information which is distributed across the Internet.
  • search engines are generally limited to searching for information which is in a text-based format.
  • the information which is indexed by search engines is generally not subject to any sort of editorial control, and therefore the indexes of such search engines often reference redundant or useless information.
  • search engines do not index data well which changes rapidly. Many types of information which are of interest to a user change routinely or reflect transient conditions. This type of information, while often available at various sources online, is generally not indexed usefully within search engines. Therefore, there is a need for a simplified system for providing information to a user of a computer system which is most relevant to their interests.
  • the present invention provides for delivery of dynamically aggregated data to a user system based on context information describing the user system.
  • the user system may represent the personal computer of a user, or an information display kiosk, or any other system which is being operated by a user.
  • the user system communicates with a remote system which performs a context-based search upon a set of data aggregated for delivery to user systems.
  • the relevant context of the user system is determined based upon what files are opened for use on the user system.
  • a file which is opened for use on the user system and upon which context information is based is referred to herein as a 'target file'.
  • a system for delivering dynamically aggregated web content in a context sensitive manner is comprised of a data aggregation system, a context evaluation system, and a data selection system.
  • the data aggregation system contains information which has been forwarded to it from user systems, information which has been collected from sources on the Internet, as well as links to information which is stored on other accessible systems, and links to other systems which provide information upon demand.
  • the context evaluation system determines the current context of a user system, which can include such information as what target files are currently in use and what preferences the user has set upon the system, as well as information about the target file itself. This information is sent to the data selection system which uses the context information to determine what information from the data aggregation system should be delivered to the user system for display thereon.
  • Some alternate embodiments of the present invention include configurations in which the user system has the ability to send context information to multiple data selection systems and to send different types of context information to different data selection systems. Such systems may also include the capability of receiving data from multiple remote systems and integrating such data for display upon the user system.
  • Other alternate embodiments of the present invention examine the target files on the user system and send information extracted from the target file as context information upon which the data selection systems can base their selection of what content to return to the user system.
  • Such systems may also include the ability to analyze the content of the target file in order to determine important properties of the target file which may be used to produce more useful context information, resulting in data being delivered to the user system which is of greater interest to the user.
  • Any of the systems described above may also include the capabilities to track the historical context and delivered content of a single user or of users in aggregate in order to provide more effective searches of the aggregated data. Such systems may also use human operators in order to determine what sort of information is included in the data aggregation system and provide editorial control over this information.
  • FIGURE 1 illustrates the architecture of a system configured in accordance with one preferred embodiment of the present invention.
  • FIGURE 2 illustrates a general process for delivering context sensitive information to a user system in accordance with a preferred embodiment of the present invention.
  • FIGURE 3 illustrates a general process for aggregating data under the control of a content wrangler in accordance with a preferred embodiment of the present invention.
  • FIGURE 4A illustrates a process for retrieving aggregated content from a local database in accordance with a preferred embodiment of the present invention.
  • FIGURE 4B illustrates a process for retrieving aggregated content from an external data source in accordance with a preferred embodiment of the present invention.
  • FIGURE 4C illustrates a process for retrieving information using redirected queries in accordance with a preferred embodiment of the present invention.
  • FIGURE 5 shows a typical user interface screen of a computer program which may be used to trigger the context sensitive content delivery process in accordance with one preferred embodiment of the present invention.
  • a preferred embodiment of the present invention may comprise a system having several components. Viewed most broadly, these components comprise a user system 100, remote systems 110, 120, and communications media 130 which connect the systems to each other, as well as to computers on the Internet 140.
  • Information about the user system is sent to a remote system (the data selection system 110) in order for the remote system to determine what content might be useful or interesting to the user of the user system 100 based upon the current context of that user system.
  • This content has been previously aggregated from sources 150 on the Internet 140, stored on another remote system (the data aggregation system 120) and then delivered to the user system across the communications media 130.
  • the content may be stored as either local copies of the content, or references to other systems containing that content, as will be discussed below.
  • the word 'context' is used to mean any information which characterizes the current state of a user system. This term is not limited to simply information about the user system, however. It may include information such as the current time, the location of the user system, the identity of the currently registered user of the user system, preferences which have been set upon the user system, operations which are in progress upon the user system, files which are in use upon the user system, or any other information which is related to the current user and current status of the user system.
  • context associated with the files which are currently in use on the user system particularly downloaded media files which are sent to the user system.
  • Any file which is currently opened for use upon the user system is referred to herein as a 'target file'.
  • Metadata refers to data which is associated with or describes other data on the user system.
  • the most common type of metadata is data which describes a target file. For example, if the user system were in the process of playing back a video file, the video file would be a target file.
  • Basic context information related to this target file includes the simple fact that a media file is being played, the name of the target file, and the fact that the file is a video file (as opposed to audio or text, for example).
  • Metadata associated with the video file might include information such as what genre of video the file represents (a music video clip, a movie trailer, a television advertisement, etc.), what actors appear in the video, the director of the video, the production company of the video, and so forth.
  • genre of video the file a music video clip, a movie trailer, a television advertisement, etc.
  • actors appear in the video the director of the video, the production company of the video, and so forth.
  • the 'user system' may be any system which a user controls or interacts with.
  • the exemplary user system described herein is a home computer such as a PC or Macintosh computer which is in use by at least one user.
  • a home computer such as a PC or Macintosh computer which is in use by at least one user.
  • other types of user system are possible and may be used in different circumstances. These include without limitation: multi-user computer systems, systems based upon platforms other than Macintosh or Intel architectures, enhanced telephones and pagers, personal digital assistants, interactive audio and video kiosks, interactive television systems, handheld computers, personal digital assistants, portable music players and such other devices as are known in the art.
  • a 'context evaluation system' determines the relevant context of the user system and sends this information to the necessary remote systems.
  • the context evaluation system may form software which runs on the user system and analyzes the status of the user system on demand.
  • alternate embodiments of context evaluation systems may include without limitation: software which runs remotely from the user system (e.g. across a network), firmware, separate hardware, or such other means as are known in the art.
  • Remote Systems In an embodiment of the present invention shown in FIGURE 1, the remote systems comprise a single data selection system 110 and a single data aggregation system 120. Although these will be described herein as two separate systems, they may comprise a single system which performs the functions of both systems.
  • the data selection system and data aggregation systems may comprise one or more software modules which run on a general purpose computer and carry out the functions of both data selection and data aggregation.
  • the data aggregation system 120 comprises a storage system 160 which contains data collected from other systems 150.
  • data is collected from systems accessible via the Internet 140 and stored in a database 170 upon a server 180.
  • the data aggregation system 120 may contain not only copies of data which are collected from sources through the Internet, but also links to sources of data on the Internet which are updated frequently.
  • the data selection system 110 receives context information from the user system 100 via a communications medium 130 and then determines what information to send to the user system 100 in response to the context information provided.
  • a preferred embodiment of a data selection system 110 performs a searching function upon the data which is stored within the data aggregation system 120, and delivers the data which is found to the user system via the Internet 140. This may be accomplished by including an index 190 of the data in the data aggregation system 120 on the data selection system 110.
  • the types of content stored upon the data aggregation system include information from different types of Internet systems.
  • One type is a simple data source. This is a system which is accessible to the data aggregation system, and from which data is copied by the data aggregation system into its own database for storage. Data sources can include ordinary web sites and other systems which simply provide static data. Once this data is copied into the data aggregation system database, it can be found and accessed more quickly for delivery to a user system.
  • Another type of data stored in the data aggregation system is a pointer to an external source of data.
  • Such an external source is essentially the same type of system as a basic data source described above, except that the data that it contains is updated regularly. Storing simply a link to the data, rather than a copy of the data, is advantageous when the data is updated frequently. In this way, there is no need for the data aggregation system to continually be updated with the new data; as long as the data remains at the same location on the Internet, simply storing a pointer to where the data can be located when needed is sufficient.
  • An additional type of data stored in the data aggregation system is a pointer to an external server which provides information of a specific type in response to particular queries submitted to it, much as a search engine would.
  • the difference between such an external server (referred to herein as a 'redirector') and a pointer to some external source of data is that to work with the external source of data, the pointer already points directly to the information which the data aggregation system would want. With a redirector, the exact information is not known, but the nature of the information to be returned is known, and in effect, a part of the contextual query to the data selection system is being redirected to this external server (hence the term 'redirector').
  • Such systems may be especially useful when the information which would be provided by the external server is such that the server is not publicly accessible and the information therein is licensed for distribution to the owner of the data aggregation system. While the data aggregation system would not necessarily want to go through the trouble and expense of having a local copy of the data, it would still be possible to pass along requests for the data which would be provided by the redirector and then return this data directly to the user system. In effect, the search based on the context of the user system is partially redirected to one of these external servers when appropriate.
  • An example of such a redirector system is a server that provides advance information on upcoming movie releases from a certain studio.
  • the owners of this server might decide to release such information only to members of a particular organization, or might choose to sell subscriptions to such information such that access to such information is limited.
  • an agreement or partnership is reached between the owner of such a server and the owner of the data aggregation system, then this information could be reliably redistributed through the data aggregation system.
  • the data aggregation system would determine that it had a link to a redirector for information from that particular studio and send a request for information on upcoming releases to the redirector server, with data from the redirector being forwarded directly to the user system.
  • the components and systems mentioned above may comprise hardware, firmware, software, or any combination thereof, and may not necessarily be physically part of a single machine.
  • the data storage for the user system may be located remotely from point at which the user interacts with the user system.
  • the data aggregation and data selection systems may comprise software which is run on either a single or multiple hardware units.
  • the various systems pass information to each other across communications media of different types.
  • the communications media comprise computer networks and the Internet.
  • other communications media may be used for various connections between the systems. These can include without limitation telephone lines, radio links, television cable networks, and other forms of communication as are known in the art.
  • a user may be using the user system 100 to browse web sites on the Internet or to carry out other tasks. At some point while performing whatever tasks the user is performing, he or she may decide to request more information about a file that he or she is currently working with. In order to do this, the user selects a button in the interface of their user system which triggers the context sensitive content delivery process (210).
  • This button may be part of a program on the user system which is used to open a particular target file, or may be part of the operating system of the user system itself.
  • a context sensitive search may be triggered automatically without the user's explicit command in response to various conditions on the user machine, such as opening a particular target file, visiting a particular website, or simply as a periodic process.
  • the details of when such a context sensitive search are triggered could be set as options within the context evaluation system.
  • the context sensitive search is triggered by a "Online Info" button which may be selected from with the user interface of a program for playback of media files, such as an audio player or video playback program or a catalog program for such media files. This action triggers the context evaluation system to begin the process of the context sensitive search for content.
  • the context evaluation system collects context information describing the state of the user system at that time (220). Note that this process may take place continuously in the background on the user system, or may simply occur at the time the search is initiated. In either event, the context evaluation system will determine various aspects of the current status of the user system, and will assemble this context information to be sent to a remote system.
  • this context information is sent to one or more data selection systems to which the context evaluation system has been configured to deliver such data (230).
  • the context evaluation system may be configured to send different parts of the context information to different data selection systems.
  • An especially preferred method of delivering such context information to a data selection system is via the Internet, however other methods of communicating such information are used in other preferred embodiments, such as dedicated network connections, radio communication systems, and such other systems as may be used to transfer such data.
  • the data selection system After the data selection system receives the data (240), it performs a search of the index for each data aggregation system with which it is associated (250). In this way, if any of the data which is stored within the data aggregation systems is considered to be relevant to the context information which has been received, it can be delivered to the user system.
  • the appropriate content may be delivered to the user system in real time, without the delay associated with searching for and aggregating information after a search requested has been initiated.
  • the context information representing the current status of the user system, is passed to the data selection system and is used as a search key by the data selection system for determining which of the data within the associated data aggregation systems is most significant to the current context and should therefore be forwarded to the user system.
  • the data selection system can send information to the user system which is most likely to be of interest to the user of that system. Not all of the context information which is provided to a data selection system need be used in the same way within the search.
  • the context information provided to the data selection system may represent the facts that (a) the current month is April, (b) the user system is currently playing a downloaded recording of a Bach concerto performed by the London Symphony Orchestra, (c) the user system is located in the state of Wisconsin, and (d) the context evaluation system software was distributed under license from the manufacturer of that software through a hypothetical internet retailer of books and music, IRBM company.
  • the data selection system can select information from the data aggregation system regarding (i) Bach, (ii) the particular concerto being played, and (iii) the London Symphony Orchestra.
  • the data selection system generally would not perform a search based on the month of April or the state of Wisconsin. However, these latter concepts may be useful to determine whether or not the information located regarding Bach, the concerto and the orchestra are relevant to this user or not. For instance, if information is found about visiting the London Symphony Orchestra for a free afternoon concert at their home stage in London, the data selection system, knowing that the user system is located in Wisconsin, may evaluate this information as less relevant than information regarding recordings by this orchestra which are available through IRBM.
  • this list of content to deliver will be sent from the data selection system (260) to the data aggregation system.
  • the data aggregation system upon receiving this list (272), will collect the content for delivery (274) and then send the content to the user system (276) where it is received (280) and viewed in accordance with the known preferences of the user system.
  • the delivered content need not be passed through the data selection system itself in every case.
  • the information also need not actually be stored upon the data aggregation system; the data may come from redirectors or external data sources and be sent directly to the user system.
  • This process of receiving the list of content to deliver and actually delivering it (270 in FIGURE 2) to the user system may take place in slightly different ways, depending on whether the data to be delivered is stored locally on the data aggregation system, available externally from the data aggregation system, or delivered via a redirected request to another server.
  • User preferences may include what total amount of data to forward in response to a single request for online information and what types of data to deliver to the user system. (E.g. Does the user wish to receive a list of relevant content from which to select, or does the user simply wish to receive the most relevant three pieces of available content? Does the user wish to receive video clips, or only audio and text information? Should actual video clips be delivered, or should links to video clips be provided, but not the clips themselves?) Content from the data aggregation system (or links thereto) are delivered to the user system in accordance with the preferences set in the context evaluation system.
  • this content is received by the user system (280), it is presented to the user of the system by the context evaluation system. This may involve presenting the information within a web browser, in a text viewer program, in an audio/video player, or any other type of display method that is required for the particular content which is delivered to the user system.
  • the program which triggered the context sensitive content delivery request will be capable of displaying the delivered content.
  • the information is sent between the user system and the data selection and data aggregation systems via the Internet. This makes possible the use of existing technologies for transport and display of Web-based content, such as HTML formatted text pages and audio and video in various downloadable and streaming formats.
  • the data aggregation system may comprise an indexed storage system containing data which has been collected, or 'aggregated' from various sources accessible to the aggregation system.
  • a significant advantage of such an aggregated collection of data over an indiscriminate search over the entire breadth of information available via the Internet is that the set of data included within or referenced by the data aggregation system need not be indiscriminate, i.e., it can be subjected to editorial control.
  • One means used to produce a desirable collection of data within a data aggregation system is to have the set of information which is being included within the system be reviewed by one or more human operators. Such a process is shown in FIGURE 3. These operators, referred to as 'content wranglers', review information and pointers to content which are being considered for inclusion within the database of the data aggregation system and determine whether or not to include such data within the database.
  • the content wranglers may also determine what portions of the chosen data to include within the database, as well as whether or not the information will be included as a copy of the data from its original source, a link to the original source, or as a redirected service.
  • the content wrangler aggregates content from various sources so as to provide sufficient appropriate data for the data selection system to dynamically create a relevant, interesting, and entertaining program of information which is related to the context of the user system at the time when the user system requests online information to be provided.
  • the content wrangler may review content directly before determining whether it merits inclusion within the data aggregation system. However, not all content to be included within the data aggregation system need be individually reviewed by a content wrangler.
  • the content wrangler upon determining that the contents of a particular system is worthy of inclusion may then proceed to use an automated process to copy the desired content and links off of this system for inclusion automatically within the data aggregation system. In this way, once a site has been determine to be of value to include, further effort on the part of the content wrangler is limited to oversight and review, rather than the tedious process of individually verifying every bit of content which is to be included.
  • Another tool which may simplify the task of the content wrangler are programs that automatically search out content from systems on the Internet related to various topics. Such programs, known as 'crawlers' or 'bots', will traverse known systems searching for information or content which matches various criteria. Such a bot may be used as described above to get the information off of a system once it is identified by the content wrangler. A bot may also be used to continually search for systems which should be reviewed by the content wrangler for consideration for inclusion within the data aggregation system. A bot or crawler may also locate additional content on a system already known by a content wrangler, but whose complete contents have not been reviewed directly.
  • Bots may also be used to periodically revisit systems whose content is already included within the data aggregation system to check for new or updated content. Through the use of automated processes such as bots and crawlers, a small number of content wranglers may effectively maintain and exercise editorial control over a large amount of aggregated content.
  • a content wrangler 300 searches for content which is available for inclusion in the data aggregation system. Such content may be searched for directly by the content wrangler, brought to the content wrangler's attention through agreements with various content providers, or located through the use of variously programmed bots as described above. Such content is available via the Internet in a preferred embodiment, but may also be made available via other means and then transferred into the data aggregation system (e.g., via videotape which can then be digitized). The content wrangler may review this content via the Internet before deciding whether to include such content within the data aggregation system if the data or source is unfamiliar to the content wrangler.
  • the content may be located on several different types of Internet systems: sources from which data may be copied, such as ordinary websites 310; external data sources directly accessible by the user system 320; and servers to which specialized content requests may be redirected 330 (redirectors).
  • sources from which data may be copied such as ordinary websites 310
  • external data sources directly accessible by the user system 320 such as external data sources directly accessible by the user system 320
  • directors redirected 330
  • the content wrangler decides that some particular content is appropriate for inclusion in his aggregated data, he puts an appropriate reference to the data into the database 170 of the data aggregation system 120. If necessary, the content wrangler may also need to contact the provider of the content in order to secure appropriate rights to include such data (for example, if access to the data is licensed, or restricted by copyright).
  • Each type of data is stored in a slightly different manner.
  • content from ordinary data sources 310 such as websites can simply be copied into the database 170 of the data aggregation system.
  • the content wrangler 300 determines that the content 340 labeled "A”, “X”. and “Z” is desirable, but the content labeled "B”, “C”, and “Y” is not, then copies of the desirable data 350 corresponding to "A”, "X”, and “Z” are placed into the database.
  • the content wrangler 300 may choose to store the data as an external source instead. In this case, after determining which content 360 from such sources is desirable for inclusion in the data aggregation system 120, he adds simply a pointer 370 to the address where the information can be located (i.e. on the external sources 320). As shown, if the content labeled "1" and "3" is to be included on the data aggregation system 120, pointers 370 to "1" and "3" on their respective external sources is included in the database 170 rather than actual copies of the content.
  • the content wrangler can choose to include a pointer 380 to the redirector itself, rather than a reference to the content which will come from the redirector.
  • This pointer should also comprise some information regarding what type of request must be passed to the redirector in order to extract the desired content. This is advantageous when not only the content itself, but the location of the content or even the type of content available, may change as the information is updated.
  • the content wrangler 300 will also be responsible for periodically reviewing the existing content of the data aggregation system to eliminate material which is no longer desirable to keep. Such content could include schedules for events which have already happened, news coverage which is out of date, or information which has been changed.
  • the corresponding index of the data within the data aggregation system 120 changes. These updated indices must be sent to the data selection system 110 and a copy of this index 190 stored there so that the search for relevant content may be performed on the data selection system 110 before the data aggregation system 120 is contacted.
  • the content wrangler 300 By placing the content wrangler 300 between the vast breadth of content available online and the actual content which is aggregated on the data aggregation system 120, the content wrangler will have control over the set of content which is contained within the aggregation database 190, making the task of locating relevant information within the data aggregation system simpler. This is desirable because it makes it more likely that the data selection system will be able to provide meaningful information in response to context information it receives.
  • the content wrangler may also provide for filtering of the data to serve various purposes. For example, all the data within the data aggregation system may be selected to relate to particular topics, as described below. Content wranglers may also review the content included to provide either ratings (e.g. "G,"
  • PG which may be used by the user in setting delivery preferences, or to ensure the suitability of all content for various audiences, for example, ensuring that all content is suitable for delivery to minors.
  • Ratings which are set by the content wrangler may be ratings based upon any aspect of the content. Examples without limitation include: ratings based upon the suitability of the content for various audiences; ratings based upon the type of content (audio, video, etc.); ratings based upon the aesthetic quality of the content provided (audio fidelity, video resolution, etc.); and ratings based upon the reliability of the source of the content (will it be consistently available? Is the information contained within that content trustable?).
  • a content wrangler may maintain particular types of content in the data aggregation system while excluding other types of data.
  • a particular content wrangler could be responsible for a data aggregation system which maintains information related to various musical artists, but which does not contain any information related to movies or books or video games or any other fields outside of musical artists and their works.
  • This sort of specialized aggregated data system may be advantageous because it is simpler for a given data aggregation system to contain a single type of data and keep this content up-to-date than it would be for a content wrangler to maintain a broad set of data related to a broad variety of topics.
  • Such specialized data aggregations can be useful in that the information available within such systems can be made available as redirectors to less specialized data selection systems.
  • An agreement between a general data selection system's operator and a specialized data aggregation system's operator makes it possible for the data selection system to redirect all inquiries related to a specialized topic to that particular redirector. This frees the operator of the general data aggregation system from having to maintain such data within his own system, allowing his content wranglers to be more effective.
  • the context of a user system describes the current state of the system.
  • Various aspects of the status of the user system can be considered part of the context of the user system. These can include, without limitation: the current time, the current location of the user system, the name of the user of the system, the address or other personally identifiable information about the user, the files which are opened for use on the user system, and various properties of the files which are opened for use upon the user system.
  • This context information is sent to data selection systems for use in determining which content to deliver to the user system.
  • the context information generally falls into four categories: information describing the local environment of the user system, information describing the preferences set by the user of the system, information describing which files are in use upon the user system, and information describing other data which is in use on the user system. This data about other information is referred to as metadata (data regarding data).
  • Information regarding the local environment includes such basic information as the current time and date, the location of the user system, the operating system being run on the user system, the physical configuration of the user system, the type of connection between the user system and the remote systems, and other information which describes the configuration of the user system. This information is advantageous in determining what data will be useful to a user.
  • Such information is particularly useful when time or location sensitive data is available in the data aggregation system. For example, if the user system is known to be located on the East Coast and the current date is April 4, 2000, there is less value to providing information regarding tour dates of a band which precede April 4, 2000, or which relate to venues located on the West Coast.
  • Another type of useful context information for sending to data selection systems is user preference information.
  • preference information may be set by the user of a user system
  • types of preferences which are of particular advantage in determining which content will be delivered to the user system include: preferences regarding how the delivered content will be displayed; preferences determining to which data selection systems context data will be sent; and preferences which determine what types of context information will be sent to the data selection system.
  • Preferences can be set upon the user system which specify what types of delivered content will be displayed. Such preferences may also be used to specify how this content will be displayed. For example, the user could specify that on the user system, there will be separate areas for display of video information, textual information, and links to related information.
  • video information should only be delivered in response to certain types of context information, or perhaps that audio and video information should not be delivered at all (e.g. if the user system was a kiosk that did not support audio output, there would be no reason to deliver audio data to the user system).
  • Another preference specifies which remote system or systems to which to send context information.
  • different data selection and aggregation systems may be available, each collecting or preparing and analyzing data in different ways.
  • different systems may be distinguished by specializing in different types of data. For example, one could be primarily concerned with music-related information, and another with video related information.
  • the context evaluation system By choosing to which remote system the context information will be sent from the context evaluation system, the user has control over who is going to be selecting content to be delivered to the user system.
  • the context evaluation system could also be configured so that different types of context information are sent to different remote systems.
  • the context evaluation system may advantageously be configured such that context information which is related to audio target files will be sent to a first data selection system by the context evaluation system, while context information which is related to video and HTML target files will be sent to a second data selection system.
  • the user might also configure the context evaluation system such that certain information is sent to more than one data selection system. In this way, data from different remote systems may be delivered to the user system at the discretion and control of the user.
  • Preferences which allow the user to control what information is sent from the user system to the data selection system provide several advantages. They allow the user to have control over what sort of context is being used to determine what they are interested in. For instance, the user might set the context evaluation system so that only metadata is sent, and furthermore, only the metadata describing the name of the author of the content which is being viewed is to be sent to the data selection system. Such a preference would be of use to a user who has no concern with aspects of content other than authorship.
  • the specific information included within any given transmission of context information for a user machine is dynamically within the control of the user of the system through the setting of appropriate preferences regarding the data to be sent.
  • information returned from the data selection system and data aggregation systems may be used to alter the context information which is sent overtime. This may be done in response to the availability of new types of content from the data aggregation system, as well as in response to new types of metadata from the context evaluation system.
  • the data selection system may query the context evaluation system as to whether or not to include such information in future context transmissions.
  • the context information may be updated not only upon the wishes of the user of the context evaluation system, but also dynamically in response to changes in the available level of information and technology which is being used to select and deliver information to the user system.
  • a target file is a file which is opened for use on the user system. These may be files located locally on the user system, files which have been downloaded from various online systems, or a file which is currently being transferred to the user system from some other machine and being used as it is transferred. A file being opened and used as it is transferred from another machine is referred to as being 'streamed' to the user system.
  • a common type of file is a media file, such as an audio or video file.
  • Such files may be either downloaded locally to the user system or opened as streamed files.
  • Media files are often advantageous to stream rather than download because the file may take some time to transfer entirely to the user system.
  • the nature of the file is often such that it is used sequentially from beginning to end once it is opened. Therefore, it is possible to begin usage (i.e. playback) of such a streaming media file as soon as a portion of the file is received.
  • the file can be played as if the entire file were present upon the user system the entire time.
  • target file is a file which is opened for use on the user system, and stored on the local system itself.
  • a file could be stored locally in non-volatile memory of the user system, such as on a flash disk or memory stick, or could be written to some form of storage media connected to the user system, such as the hard drive of the user system.
  • Other types of locally stored files include files on DVD or CD- ROM, as well as files on other removable media types, such as removable hard drives, Zip drives, floppy disks, PC Cards, Compact Flash cards and other forms of removable media.
  • An important type of context information is information about what target files are in use upon the user system. This information can be used to determine what the user is currently doing with the user system. For instance, if a streaming video file is opened, then this shows that the user is connected to a service which provides video clips. If instead an audio track off of a local CD drive is open, then the user system is being used to play music.
  • Metadata refers to all information about a target data file
  • much of what is technically metadata is not especially useful for context purposes.
  • a typical piece of metadata is the size of a target file.
  • this information is very important to the user system in how it needs to handle and store the file, this information does not give much information that is useful in providing customized context sensitive content delivery.
  • metadata There are many other types of such basic metadata which, although they may be useful, are not generally meaningful in characterizing the user system or the user, such as the creation date of the target file, the modification time of the target file, and so forth.
  • Metadata actually describe the content of the information within a target file.
  • significant metadata might include the composer of the music in the target file, or the performer of the music in the file.
  • General types of this metadata can include without limitation: the creator of the file, the creator of the content of the file (artist, composer, singer, author, etc.), any featured performers (such as soloists, actors, etc.), and other types of information.
  • a useful metaphor for the relation of a target file to this type of metadata is the relation between a movie or book and the credits at the end of the movie or on the title page of the book.
  • the credits include information which describes, among other things, those that were involved in producing the work. They also may include information such as who inspired the work, and even relevant notices, such as copyright or ASPCA notices (e.g., "no animals were harmed in the filming of this motion picture").
  • This type of metadata is most relevant to target files which themselves represent some form of expression.
  • Similar metadata may be associated with almost any target file, and is neither limited to files which describe 'artistic' data such as movie clips or music files, nor are the types of metadata available limited to those which are traditionally used with movies or books.
  • This type of metadata is often stored in some manner which is associated with the target file itself.
  • One way in which this is done is to embed the metadata information within the target file. In this way, any copy of the target file automatically brings the metadata with it.
  • an audio file it is possible to include information which designates certain parts of the data within the file as metadata, rather than audio information. By designating the data in such a way, it is possible for a program which has access to the file to read the file, and extract the metadata information from within the file. This technique is used in the current ID3v2 specification for embedding fields of metadata within MP3 format audio files.
  • Metadata can be stored and associated with target files is through data which is maintained separately from the target files and contains the metadata.
  • One way to accomplish this is to have a metadata database which is accessible to the user system. Within this database, any metadata related to known target files is stored and indexed according to which target file it belongs to. In this way, if particular information is needed about a target file which does not contain its own metadata, it may be looked up by searching the metadata database for the name (or other identifier) of the target file.
  • a metadata database may itself be stored remotely from the user system and accessible via the Internet. For example, when a user inserts a music CD into their computer's CD-ROM drive, an identifier may be read from the disk which is shared by all copies of that recording. This identifier is then looked up via the Internet on a server which provides metadata related to the particular CD. This information may include such data as the title of the album, the titles of the tracks on the album, the artist featured on the album, and other credits for that music CD.
  • a local copy of metadata which has been accessed may be stored on the user system in order to speed metadata searches for information which has already been requested once from the remote system.
  • a local metadata database can be created which provides quick access to the most commonly used information.
  • Another type of metadata which can be associated with a target file is data which is generated by analyzing the target file in some way. For example, an audio file could be analyzed to determine what the tempo of the song is, and this metadata could be used to generate context information. Another audio example is analyzing music files based on various acoustic qualities of the sound, ; ' .e. its intensity, speed, bass / treble balance, and so forth.
  • Products which can conduct such analysis based upon the actual sound of audio data are produced by various companies including Cantametrix of Seattle, Washington and Mongo Music LTD of Menlo Part, California. Similar types of information can be generated for video files as well. For example, the amount of dialogue in a video clip, the darkness or brightness of the images, as well as the amount and rate of motion within the video frame are all metadata aspects of a video clip which can be determined through analysis of the data comprising the target video file. This analysis to generate metadata can be performed for all types of target files, including text files.
  • the information generated can be used to determine additional search keys which may form useful context information. For example, analysis could be performed on the text of web pages or other text-based files that are opened in a web browser. By analyzing the words which are used, meaningful context information based upon that text could be used in the search which would be performed by the data selection system of the aggregated data. For example, if the recent history of web paged opened on the user system all included the term "aircraft" repeatedly, content related to upcoming local airshows or flight schools might be delivered.
  • the context information of the user system is sent by the context evaluation system to the data selection systems specified in the preferences as described above.
  • the data selection system or systems will receive this information and will determine what content should be delivered to the user system based upon this context information.
  • the goal of the data selection process is to provide content to the user system in response to a request by a user to get related information.
  • searching using the context information provided as search keys it becomes possible to extract information from a data aggregation system which is related to the context information, and therefore, related to the current status and usage of the user system itself.
  • the data selection system would search the index of the information available to it within the aggregated storage and might request that other information about that band be delivered to the user system. It might also deliver information about another music video by the same band, or bands with a similar sound.
  • the data selection system determines which data should be sent to the user system, and then contacts the data aggregation system with instructions specifying specifically which data to send and where to send it. In this way, the management of the data to be delivered to the user system is still handled by the data selection system, but the actual transfer of data takes place solely between the data aggregation system and the user system, reducing the bandwidth requirements on the data selection system.
  • Another method which could be used to streamline the data delivery process involves the use of external data sources.
  • data is sent from an external data source, rather than bringing the information first into the data aggregation system and then relaying it to the user system, it may be advantageous to simply provide the appropriate external data source address to the user system and have the user system request the data directly.
  • the data aggregation system or data selection system it might be possible for the data aggregation system or data selection system to contact the external data source and specify that the data is to be sent to the user system directly, rather than being returned to the data aggregation system.
  • Another technique which can be used when delivering data to the user system is for the data selection system to further analyze the context information which it receives from the user system before searching the aggregated data. This can allow for information which is not generally available to the user system to be used to further customize the data which will be delivered to the user system.
  • One type of processing which can be done by the data selection system is to keep track of what information is sent in response to which context information from different machines. This basic technique makes it possible to deliver information based on requests which are similar to previous context information from other user systems more quickly and without needing to perform a complete search each time.
  • Another aspect of historical information which can be useful in presenting appropriate data to the user system concerns keeping track of what information has been sent to this particular user system in the past. This may be used to track whether certain information is consistently flagged as the most relevant to this user system, and therefore constantly sent in response to different requests from this user system.
  • the data selection system can be configured so as to send different information which might be less relevant, but which has never before been sent to this user system, and therefore may be more useful and entertaining to the user of that system.
  • the data selection system may determine that sending a link to a movie trailer for another film featuring this same actor may be appropriate.
  • the function is invoked a second time while viewing this second movie clip, although the video clip of the first trailer may be the most obvious choice of data to deliver to the user, it would be more useful to the user to deliver a different movie clip featuring that actor, or perhaps biographical information about the actor, rather than the information which is known to already have been delivered to the user system in the past.
  • Another such technique is to allow certain preference based decision making to take place within the data selection system.
  • the data selection system could be configured to treat different requests differently based upon some of the context information which is received.
  • FIGURES 4A, 4B, and 4C The actual steps of delivering content selected by the data selection system will now be described with reference to FIGURES 4A, 4B, and 4C.
  • this delivery list is sent to the data aggregation system 120.
  • the data aggregation system will handle the request differently depending on whether the content to be provided is stored as a local copy within the database of the data aggregation system (FIGURE 4A), stored as an external source to the data aggregation system (FIGURE 4B), or stored as a redirector (FIGURE 4C).
  • FIGURE 4A shows the basic process which will take place for content which has been copied locally into the database 170 on the data aggregation system 120.
  • the desired content can be located (405) within the index of the data aggregation database 170 and a request made of the database (410) to send that content (276) directly to the user system 100.
  • the process is shown in FIGURE 4B.
  • the data aggregation system 120 receives the delivery list (272) and determines that the information is stored externally, the appropriate link is retrieved (430) from the data aggregation database and this link to the appropriate content is sent (435) to the user system 100.
  • the user system may request the data from the source specified in the link (445).
  • the external source will receive the request (450) and return the content to the user system (276).
  • the process is handled still differently.
  • the data aggregation system 120 receives the list of content to deliver (272) and determines that this data must be requested from a redirector 330, the data aggregation system retrieves the pointer to the address of the redirector from the data aggregation system database (465). The data aggregation system then determines which of the search terms used in the initial search need to be used when requesting data from the redirector (470) and sends this request for content to the redirector (475). The redirector, upon receiving this request (480), will process the search terms provided (485) and then will send the appropriate content back (276).
  • the following example is used to illustrate the operation of a preferred embodiment of the present invention.
  • the exemplary user system is a home computer being used on an evening in May in Dana Point, a town on the southern California coast.
  • the user is playing an MP3 file of a radio interview with an Olympic bicyclist which is being streamed from CNN.com.
  • the user has a high speed connection to the Internet via a cable modem, and is using Real Jukebox, a playback program written by Real Networks, Inc. of Seattle, Washington and included by Sierra, a publisher of computer games, on the CD-ROM of entertainment software recently purchased by the user.
  • the user has configured his playback program to connect to the data selection system operated by Real Networks.
  • FIGURE 5 An exemplary operating screen 500 of the playback program is shown in FIGURE 5. While listening to this news clip, the user clicks on the "Online Info” button 510. When this button is clicked, Real Jukebox activates the context evaluation system within the Real Jukebox program, and the context information is collected.
  • the user has not limited the context information to be distributed in any way, so this context information includes (1) the speed of the connection between the user system and internet (greater than 128 kbps download speed), (2) the location of the user system (Dana Point), (3) the date and time (an evening in May), (4) the currently opened target file (an MP3 audio file named LANCE.MP3 ⁇ , (5) the source of the target file (CNN.com), (6) the playback program (Real Jukebox), (7) the distribution source of the edition of Real Jukebox in use (Sierra), (8) metadata related to the target file, including (a) the topic of the file (Olympic bicycling), (b) the bicyclist being interviewed (Lance Armstrong), and the nature of the audio clip (an interview). Also included within the context information would be (9) the display preferences set by the user including (a) that the user wishes to receive the most relevant content directly, and (b) links to the next two most relevant pieces of content.
  • the exemplary Real Networks data selection system is connected to a data aggregation system which is maintained by a team of content wranglers, each having responsibility for different classes of content.
  • the content wranglers have included in the aggregated data upon the server copies of the text of schedules of community events for various regions of the country, one of which includes southern California.
  • Also included in the aggregated data are pointers to a series of video clips giving a brief description of each event at the upcoming summer Olympics in Australia, stored on a different system on the Internet.
  • Other aggregated information includes audio clips of the soundtrack of the upcoming Olympic games and a pointer to a redirector which handles current sports news.
  • the data selection system upon receiving the context information from the user system, examines the information and searches the indexes of the data aggregation database. In this search it finds a lot of data which is relevant to bicycling, the Olympics, news interviews, and sports in general. From this information, the data selection system selects the upcoming Olympic overview clip for bicycling as the most relevant content to provide. A direct link to this video is sent to the user system for the user system to request the data directly from the external source with the video clips.
  • the data aggregation system also sends a request to the current sports news redirector and gets the latest news about the sport of bicycling. Most of this data is not relevant to the user, but one piece describes an upcoming velodrome racing event to be held in San Diego, less than 100 miles from the user in Dana Point. A request is sent to the redirector to forward this information to the user system.
  • the user system also discovers a link to bicycle racing computer games from Sierra, and includes a link to the Sierra games site within the list of relevant data.
  • the data selection system discovers a series of charity bicycle road races which are occurring up and down the west coast throughout the spring. Several events are within 50 miles of Dana Point, however, one of these events occurred in April, although the results of this race event are available.
  • the server decides to include a direct link to the results from the recent event in April to the user system, as well as the actual copy of the information from the data aggregation system database describing the next upcoming event, occurring in early June in Newport Beach, 20 miles north of Dana Point.
  • the user system will receive this information, and the most relevant content, as specified in the user preferences will be displayed directly. Therefore, the Olympic bicycling overview video clip will be displayed using any available player program on the user computer in real-time response to the user pressing the "Online Info" button. If the program that the user was using was capable of displaying a video clip directly, this content would show up within the same program (i.e. within the Real Jukebox program). If not, an external viewer would be spawned. The next two most relevant items, the content regarding the upcoming road race in Newport Beach, and the external information regarding the velodrome event in San Diego would be included as links.
  • the link to the road race would be a link to a particular location of the appropriate data on the Real Networks data aggregation system itself (since this data came from a copy on the data aggregation system).
  • the link to the velodrome event will be included as a link to data off of the redirector, so the link is not to the Real Networks system at all, but rather will be a link with an appropriate query that will produce the desired data if the redirector is contacted with that request.
  • the user may choose to click on the link to the road race in Newport Beach link and find out more information about this race. While viewing this information, the user could click "Online Info" again, and the process would be repeated. However, by this time additional information may have been added to the data aggregation system by the content wranglers and the context information about the user system will now be different (the target file is now the data regarding the Newport Beach road race).
  • the user could choose to view the content which was the next most relevant content as determined by the data selection system. This would include the link to the Sierra games site, as well as information regarding the results of the recent southern California road race. Because the delivery of content is dynamic and the process of aggregation is continuous, the experience which a user would have selecting the "Online Info" button will not be the same every time. Just as the context of the user system may change over that time, the set of content available on the data aggregation system may change over time as well, resulting in new information becoming available, and different sources of information becoming featured within the set of aggregated data.
  • the storage of a metadata database may be local to the user machine or accessed remotely via the Internet, but either technique may be used with the other techniques described above.
  • other known equivalents for each feature can be mixed and matched by one of ordinary skill in this art to construct systems to deliver customized context sensitive content to a user in accordance with principles of the present invention.

Abstract

A system for delivering data to a user system (100) in response to a request makes use of a context evaluation system to generate information which characterizes the current status of the user system (100). This information is sent to a data selection system (110) over the Internet (140) or other communications medium. The data selection system (110) selects data which is relevant to the context information of the user system (100) from one or more data aggregation systems (120) which contain various content which is available for delivery to user systems (100). The information which is most relevant is delivered to the user system (100) in accordance with preferences which are set on the user system (100).

Description

CONTEXT SENSITIVE CONFIGURABLE WEB CONTENT DELIVERY
Background of the Invention Field of the Invention This invention relates to delivery of data to a user system. More specifically, this invention relates to delivery of context sensitive information to a user system. Description of the Related Art
With the continued growth of the Internet and increases in the number of individuals who have access to online information from their home or office, the Internet has become a desirable means for making information available to individuals distributed across large geographic areas. However, there is a need to direct information to those users to which it will be of particular interest. The ordinary way to do this is to provide notifications to registered users via email, or for the user to search for the information in which he is interested.
Existing searching solutions, such as search engines, can perform searches of textual information which is distributed across the Internet. However, search engines are generally limited to searching for information which is in a text-based format. Also the information which is indexed by search engines is generally not subject to any sort of editorial control, and therefore the indexes of such search engines often reference redundant or useless information. When using such a search engine, it is also necessary for the user to construct a search query that will return the information in which he is most interested; an improperly crafted query may return useless results.
A further difficulty with search engines is that they do not index data well which changes rapidly. Many types of information which are of interest to a user change routinely or reflect transient conditions. This type of information, while often available at various sources online, is generally not indexed usefully within search engines. Therefore, there is a need for a simplified system for providing information to a user of a computer system which is most relevant to their interests.
Summary of the Invention
The present invention provides for delivery of dynamically aggregated data to a user system based on context information describing the user system. The user system may represent the personal computer of a user, or an information display kiosk, or any other system which is being operated by a user. The user system communicates with a remote system which performs a context-based search upon a set of data aggregated for delivery to user systems. In many cases, the relevant context of the user system is determined based upon what files are opened for use on the user system. A file which is opened for use on the user system and upon which context information is based is referred to herein as a 'target file'. In one preferred embodiment of the present invention, a system for delivering dynamically aggregated web content in a context sensitive manner is comprised of a data aggregation system, a context evaluation system, and a data selection system. The data aggregation system contains information which has been forwarded to it from user systems, information which has been collected from sources on the Internet, as well as links to information which is stored on other accessible systems, and links to other systems which provide information upon demand. The context evaluation system determines the current context of a user system, which can include such information as what target files are currently in use and what preferences the user has set upon the system, as well as information about the target file itself. This information is sent to the data selection system which uses the context information to determine what information from the data aggregation system should be delivered to the user system for display thereon.
Some alternate embodiments of the present invention include configurations in which the user system has the ability to send context information to multiple data selection systems and to send different types of context information to different data selection systems. Such systems may also include the capability of receiving data from multiple remote systems and integrating such data for display upon the user system.
Other alternate embodiments of the present invention examine the target files on the user system and send information extracted from the target file as context information upon which the data selection systems can base their selection of what content to return to the user system. Such systems may also include the ability to analyze the content of the target file in order to determine important properties of the target file which may be used to produce more useful context information, resulting in data being delivered to the user system which is of greater interest to the user.
Any of the systems described above may also include the capabilities to track the historical context and delivered content of a single user or of users in aggregate in order to provide more effective searches of the aggregated data. Such systems may also use human operators in order to determine what sort of information is included in the data aggregation system and provide editorial control over this information.
Brief Description of the Drawings FIGURE 1 illustrates the architecture of a system configured in accordance with one preferred embodiment of the present invention.
FIGURE 2 illustrates a general process for delivering context sensitive information to a user system in accordance with a preferred embodiment of the present invention.
FIGURE 3 illustrates a general process for aggregating data under the control of a content wrangler in accordance with a preferred embodiment of the present invention. FIGURE 4A illustrates a process for retrieving aggregated content from a local database in accordance with a preferred embodiment of the present invention.
FIGURE 4B illustrates a process for retrieving aggregated content from an external data source in accordance with a preferred embodiment of the present invention.
FIGURE 4C illustrates a process for retrieving information using redirected queries in accordance with a preferred embodiment of the present invention. FIGURE 5 shows a typical user interface screen of a computer program which may be used to trigger the context sensitive content delivery process in accordance with one preferred embodiment of the present invention.
Detailed Description of the Preferred Embodiments The following description and examples illustrate preferred embodiments of the present invention in detail. Those of skill in the art will recognize that there are numerous variations and modifications of this invention that are encompassed within its scope. Accordingly, the description of preferred embodiments should not be deemed to limit the scope of the present invention. Reference numbers are used to indicate items in the included figures. Reference numbers are reused between figures to indicate the same item. Reference numbers in parentheses, e.g. (270), indicate the steps of a process. Reference numbers without parentheses, e.g. 170, indicate components of a system.
OVERVIEW
As illustrated in FIGURE 1, a preferred embodiment of the present invention may comprise a system having several components. Viewed most broadly, these components comprise a user system 100, remote systems 110, 120, and communications media 130 which connect the systems to each other, as well as to computers on the Internet 140. Information about the user system is sent to a remote system (the data selection system 110) in order for the remote system to determine what content might be useful or interesting to the user of the user system 100 based upon the current context of that user system. This content has been previously aggregated from sources 150 on the Internet 140, stored on another remote system (the data aggregation system 120) and then delivered to the user system across the communications media 130. The content may be stored as either local copies of the content, or references to other systems containing that content, as will be discussed below.
As used herein, the word 'context' is used to mean any information which characterizes the current state of a user system. This term is not limited to simply information about the user system, however. It may include information such as the current time, the location of the user system, the identity of the currently registered user of the user system, preferences which have been set upon the user system, operations which are in progress upon the user system, files which are in use upon the user system, or any other information which is related to the current user and current status of the user system.
An important type of context is context associated with the files which are currently in use on the user system, particularly downloaded media files which are sent to the user system. Any file which is currently opened for use upon the user system is referred to herein as a 'target file'.
One type of context information is known as 'metadata'. As used herein, metadata refers to data which is associated with or describes other data on the user system. The most common type of metadata is data which describes a target file. For example, if the user system were in the process of playing back a video file, the video file would be a target file. Basic context information related to this target file includes the simple fact that a media file is being played, the name of the target file, and the fact that the file is a video file (as opposed to audio or text, for example). However, metadata associated with the video file (i.e., data which describes the target file), might include information such as what genre of video the file represents (a music video clip, a movie trailer, a television advertisement, etc.), what actors appear in the video, the director of the video, the production company of the video, and so forth. The use of metadata will be discussed in greater detail below.
The 'user system' may be any system which a user controls or interacts with. The exemplary user system described herein is a home computer such as a PC or Macintosh computer which is in use by at least one user. However, those skilled in the art will recognize that other types of user system are possible and may be used in different circumstances. These include without limitation: multi-user computer systems, systems based upon platforms other than Macintosh or Intel architectures, enhanced telephones and pagers, personal digital assistants, interactive audio and video kiosks, interactive television systems, handheld computers, personal digital assistants, portable music players and such other devices as are known in the art.
A 'context evaluation system' determines the relevant context of the user system and sends this information to the necessary remote systems. In a particularly preferred embodiment, the context evaluation system may form software which runs on the user system and analyzes the status of the user system on demand. However, alternate embodiments of context evaluation systems may include without limitation: software which runs remotely from the user system (e.g. across a network), firmware, separate hardware, or such other means as are known in the art. Remote Systems In an embodiment of the present invention shown in FIGURE 1, the remote systems comprise a single data selection system 110 and a single data aggregation system 120. Although these will be described herein as two separate systems, they may comprise a single system which performs the functions of both systems. For example, in particularly preferred embodiments the data selection system and data aggregation systems may comprise one or more software modules which run on a general purpose computer and carry out the functions of both data selection and data aggregation. Furthermore, it is also possible to use multiple data selections systems and / or multiple data aggregation systems, as will be described below.
As shown in FIGURE 1 and described below, the data aggregation system 120 comprises a storage system 160 which contains data collected from other systems 150. In this embodiment, data is collected from systems accessible via the Internet 140 and stored in a database 170 upon a server 180. The data aggregation system 120 may contain not only copies of data which are collected from sources through the Internet, but also links to sources of data on the Internet which are updated frequently.
The data selection system 110 receives context information from the user system 100 via a communications medium 130 and then determines what information to send to the user system 100 in response to the context information provided. A preferred embodiment of a data selection system 110 performs a searching function upon the data which is stored within the data aggregation system 120, and delivers the data which is found to the user system via the Internet 140. This may be accomplished by including an index 190 of the data in the data aggregation system 120 on the data selection system 110. Aggregated Data
The types of content stored upon the data aggregation system include information from different types of Internet systems. One type is a simple data source. This is a system which is accessible to the data aggregation system, and from which data is copied by the data aggregation system into its own database for storage. Data sources can include ordinary web sites and other systems which simply provide static data. Once this data is copied into the data aggregation system database, it can be found and accessed more quickly for delivery to a user system. Another type of data stored in the data aggregation system is a pointer to an external source of data.
Such an external source is essentially the same type of system as a basic data source described above, except that the data that it contains is updated regularly. Storing simply a link to the data, rather than a copy of the data, is advantageous when the data is updated frequently. In this way, there is no need for the data aggregation system to continually be updated with the new data; as long as the data remains at the same location on the Internet, simply storing a pointer to where the data can be located when needed is sufficient.
An additional type of data stored in the data aggregation system is a pointer to an external server which provides information of a specific type in response to particular queries submitted to it, much as a search engine would. The difference between such an external server (referred to herein as a 'redirector') and a pointer to some external source of data is that to work with the external source of data, the pointer already points directly to the information which the data aggregation system would want. With a redirector, the exact information is not known, but the nature of the information to be returned is known, and in effect, a part of the contextual query to the data selection system is being redirected to this external server (hence the term 'redirector').
Such systems may be especially useful when the information which would be provided by the external server is such that the server is not publicly accessible and the information therein is licensed for distribution to the owner of the data aggregation system. While the data aggregation system would not necessarily want to go through the trouble and expense of having a local copy of the data, it would still be possible to pass along requests for the data which would be provided by the redirector and then return this data directly to the user system. In effect, the search based on the context of the user system is partially redirected to one of these external servers when appropriate.
An example of such a redirector system is a server that provides advance information on upcoming movie releases from a certain studio. The owners of this server might decide to release such information only to members of a particular organization, or might choose to sell subscriptions to such information such that access to such information is limited. However, if an agreement or partnership is reached between the owner of such a server and the owner of the data aggregation system, then this information could be reliably redistributed through the data aggregation system. For instance, if a user system were to send context information which indicated that a video clip of a movie from that studio was being watched on the user system, the data aggregation system would determine that it had a link to a redirector for information from that particular studio and send a request for information on upcoming releases to the redirector server, with data from the redirector being forwarded directly to the user system. Those skilled in the art will appreciate that the components and systems mentioned above may comprise hardware, firmware, software, or any combination thereof, and may not necessarily be physically part of a single machine. For instance, in distributed computing environments, the data storage for the user system may be located remotely from point at which the user interacts with the user system. Similarly, the data aggregation and data selection systems may comprise software which is run on either a single or multiple hardware units.
In all of the embodiments described herein, the various systems pass information to each other across communications media of different types. In a preferred embodiment, the communications media comprise computer networks and the Internet. However, other communications media may be used for various connections between the systems. These can include without limitation telephone lines, radio links, television cable networks, and other forms of communication as are known in the art.
OPERATION One preferred embodiment of how the above systems work together to provide context sensitive content delivery will now be described with reference to FIGURE 2. A user may be using the user system 100 to browse web sites on the Internet or to carry out other tasks. At some point while performing whatever tasks the user is performing, he or she may decide to request more information about a file that he or she is currently working with. In order to do this, the user selects a button in the interface of their user system which triggers the context sensitive content delivery process (210).
This button may be part of a program on the user system which is used to open a particular target file, or may be part of the operating system of the user system itself. In an alternate embodiment, a context sensitive search may be triggered automatically without the user's explicit command in response to various conditions on the user machine, such as opening a particular target file, visiting a particular website, or simply as a periodic process. In such embodiments, the details of when such a context sensitive search are triggered could be set as options within the context evaluation system.
In a particular preferred embodiment, the context sensitive search is triggered by a "Online Info" button which may be selected from with the user interface of a program for playback of media files, such as an audio player or video playback program or a catalog program for such media files. This action triggers the context evaluation system to begin the process of the context sensitive search for content.
When this context sensitive search process is triggered (210), the context evaluation system collects context information describing the state of the user system at that time (220). Note that this process may take place continuously in the background on the user system, or may simply occur at the time the search is initiated. In either event, the context evaluation system will determine various aspects of the current status of the user system, and will assemble this context information to be sent to a remote system.
Once assembled, this context information is sent to one or more data selection systems to which the context evaluation system has been configured to deliver such data (230). As will be discussed below, the context evaluation system may be configured to send different parts of the context information to different data selection systems. An especially preferred method of delivering such context information to a data selection system is via the Internet, however other methods of communicating such information are used in other preferred embodiments, such as dedicated network connections, radio communication systems, and such other systems as may be used to transfer such data. After the data selection system receives the data (240), it performs a search of the index for each data aggregation system with which it is associated (250). In this way, if any of the data which is stored within the data aggregation systems is considered to be relevant to the context information which has been received, it can be delivered to the user system.
Because the information has already been aggregated and stored (either as local copies or pointers to information located elsewhere) within the data aggregation system and an index of this information is available to the data selection system, the appropriate content may be delivered to the user system in real time, without the delay associated with searching for and aggregating information after a search requested has been initiated.
The context information, representing the current status of the user system, is passed to the data selection system and is used as a search key by the data selection system for determining which of the data within the associated data aggregation systems is most significant to the current context and should therefore be forwarded to the user system. By performing searches 'based on the relevant parts of this context information, the data selection system can send information to the user system which is most likely to be of interest to the user of that system. Not all of the context information which is provided to a data selection system need be used in the same way within the search. For example, the context information provided to the data selection system may represent the facts that (a) the current month is April, (b) the user system is currently playing a downloaded recording of a Bach concerto performed by the London Symphony Orchestra, (c) the user system is located in the state of Wisconsin, and (d) the context evaluation system software was distributed under license from the manufacturer of that software through a hypothetical internet retailer of books and music, IRBM company.
The data selection system can select information from the data aggregation system regarding (i) Bach, (ii) the particular concerto being played, and (iii) the London Symphony Orchestra. The data selection system generally would not perform a search based on the month of April or the state of Wisconsin. However, these latter concepts may be useful to determine whether or not the information located regarding Bach, the concerto and the orchestra are relevant to this user or not. For instance, if information is found about visiting the London Symphony Orchestra for a free afternoon concert at their home stage in London, the data selection system, knowing that the user system is located in Wisconsin, may evaluate this information as less relevant than information regarding recordings by this orchestra which are available through IRBM. Similarly, if information about baroque music concerts in Wisconsin were located in the data aggregation system, those concerts that would be most relevant would be the ones that had not already happened in February and March. Geographic data about Wisconsin is less likely to be useful information to the user. By using the different types of context information which are sent to the data selection system in this manner, it becomes possible for the data selection system to make a more useful and context sensitive selection of the data available to deliver to the user system.
Referring again to FIGURE 2, once the data selection system has determined what data is relevant to the current context of the user system by searching the index (250) of the data aggregation system, this list of content to deliver will be sent from the data selection system (260) to the data aggregation system. The data aggregation system, upon receiving this list (272), will collect the content for delivery (274) and then send the content to the user system (276) where it is received (280) and viewed in accordance with the known preferences of the user system.
As will be discussed below, the delivered content need not be passed through the data selection system itself in every case. The information also need not actually be stored upon the data aggregation system; the data may come from redirectors or external data sources and be sent directly to the user system. This process of receiving the list of content to deliver and actually delivering it (270 in FIGURE 2) to the user system may take place in slightly different ways, depending on whether the data to be delivered is stored locally on the data aggregation system, available externally from the data aggregation system, or delivered via a redirected request to another server. These various processes will be discussed below with reference to FIGURES 4A, 4B and 4C. User preferences may include what total amount of data to forward in response to a single request for online information and what types of data to deliver to the user system. (E.g. Does the user wish to receive a list of relevant content from which to select, or does the user simply wish to receive the most relevant three pieces of available content? Does the user wish to receive video clips, or only audio and text information? Should actual video clips be delivered, or should links to video clips be provided, but not the clips themselves?) Content from the data aggregation system (or links thereto) are delivered to the user system in accordance with the preferences set in the context evaluation system.
When this content is received by the user system (280), it is presented to the user of the system by the context evaluation system. This may involve presenting the information within a web browser, in a text viewer program, in an audio/video player, or any other type of display method that is required for the particular content which is delivered to the user system. In a particularly preferred embodiment, the program which triggered the context sensitive content delivery request will be capable of displaying the delivered content. In particularly preferred embodiments, the information is sent between the user system and the data selection and data aggregation systems via the Internet. This makes possible the use of existing technologies for transport and display of Web-based content, such as HTML formatted text pages and audio and video in various downloadable and streaming formats. DATA AGGREGATION
As described above, the data aggregation system may comprise an indexed storage system containing data which has been collected, or 'aggregated' from various sources accessible to the aggregation system. A significant advantage of such an aggregated collection of data over an indiscriminate search over the entire breadth of information available via the Internet is that the set of data included within or referenced by the data aggregation system need not be indiscriminate, i.e., it can be subjected to editorial control.
One means used to produce a desirable collection of data within a data aggregation system is to have the set of information which is being included within the system be reviewed by one or more human operators. Such a process is shown in FIGURE 3. These operators, referred to as 'content wranglers', review information and pointers to content which are being considered for inclusion within the database of the data aggregation system and determine whether or not to include such data within the database. The content wranglers may also determine what portions of the chosen data to include within the database, as well as whether or not the information will be included as a copy of the data from its original source, a link to the original source, or as a redirected service. The content wrangler aggregates content from various sources so as to provide sufficient appropriate data for the data selection system to dynamically create a relevant, interesting, and entertaining program of information which is related to the context of the user system at the time when the user system requests online information to be provided.
The content wrangler may review content directly before determining whether it merits inclusion within the data aggregation system. However, not all content to be included within the data aggregation system need be individually reviewed by a content wrangler. The content wrangler, upon determining that the contents of a particular system is worthy of inclusion may then proceed to use an automated process to copy the desired content and links off of this system for inclusion automatically within the data aggregation system. In this way, once a site has been determine to be of value to include, further effort on the part of the content wrangler is limited to oversight and review, rather than the tedious process of individually verifying every bit of content which is to be included. Another tool which may simplify the task of the content wrangler are programs that automatically search out content from systems on the Internet related to various topics. Such programs, known as 'crawlers' or 'bots', will traverse known systems searching for information or content which matches various criteria. Such a bot may be used as described above to get the information off of a system once it is identified by the content wrangler. A bot may also be used to continually search for systems which should be reviewed by the content wrangler for consideration for inclusion within the data aggregation system. A bot or crawler may also locate additional content on a system already known by a content wrangler, but whose complete contents have not been reviewed directly. In this way additional information may be brought to the attention of the content wrangler, and a more effective set of aggregated data may be collected. Bots may also be used to periodically revisit systems whose content is already included within the data aggregation system to check for new or updated content. Through the use of automated processes such as bots and crawlers, a small number of content wranglers may effectively maintain and exercise editorial control over a large amount of aggregated content.
As shown in FIGURE 3, a content wrangler 300 searches for content which is available for inclusion in the data aggregation system. Such content may be searched for directly by the content wrangler, brought to the content wrangler's attention through agreements with various content providers, or located through the use of variously programmed bots as described above. Such content is available via the Internet in a preferred embodiment, but may also be made available via other means and then transferred into the data aggregation system (e.g., via videotape which can then be digitized). The content wrangler may review this content via the Internet before deciding whether to include such content within the data aggregation system if the data or source is unfamiliar to the content wrangler.
The content may be located on several different types of Internet systems: sources from which data may be copied, such as ordinary websites 310; external data sources directly accessible by the user system 320; and servers to which specialized content requests may be redirected 330 (redirectors). When the content wrangler decides that some particular content is appropriate for inclusion in his aggregated data, he puts an appropriate reference to the data into the database 170 of the data aggregation system 120. If necessary, the content wrangler may also need to contact the provider of the content in order to secure appropriate rights to include such data (for example, if access to the data is licensed, or restricted by copyright). Each type of data is stored in a slightly different manner.
As shown in FIGURE 3, content from ordinary data sources 310 such as websites can simply be copied into the database 170 of the data aggregation system. Thus, if the content wrangler 300 determines that the content 340 labeled "A", "X". and "Z" is desirable, but the content labeled "B", "C", and "Y" is not, then copies of the desirable data 350 corresponding to "A", "X", and "Z" are placed into the database.
If the content is such that it is updated routinely but always located at the same Internet accessible address, the content wrangler 300 may choose to store the data as an external source instead. In this case, after determining which content 360 from such sources is desirable for inclusion in the data aggregation system 120, he adds simply a pointer 370 to the address where the information can be located (i.e. on the external sources 320). As shown, if the content labeled "1" and "3" is to be included on the data aggregation system 120, pointers 370 to "1" and "3" on their respective external sources is included in the database 170 rather than actual copies of the content. If the content for inclusion comes from a redirector 330, the content wrangler can choose to include a pointer 380 to the redirector itself, rather than a reference to the content which will come from the redirector. This pointer should also comprise some information regarding what type of request must be passed to the redirector in order to extract the desired content. This is advantageous when not only the content itself, but the location of the content or even the type of content available, may change as the information is updated.
The content wrangler 300 will also be responsible for periodically reviewing the existing content of the data aggregation system to eliminate material which is no longer desirable to keep. Such content could include schedules for events which have already happened, news coverage which is out of date, or information which has been changed.
Whenever the content wrangler makes a change to the content which is aggregated within the data aggregation system, the corresponding index of the data within the data aggregation system 120 changes. These updated indices must be sent to the data selection system 110 and a copy of this index 190 stored there so that the search for relevant content may be performed on the data selection system 110 before the data aggregation system 120 is contacted.
By placing the content wrangler 300 between the vast breadth of content available online and the actual content which is aggregated on the data aggregation system 120, the content wrangler will have control over the set of content which is contained within the aggregation database 190, making the task of locating relevant information within the data aggregation system simpler. This is desirable because it makes it more likely that the data selection system will be able to provide meaningful information in response to context information it receives.
The content wrangler may also provide for filtering of the data to serve various purposes. For example, all the data within the data aggregation system may be selected to relate to particular topics, as described below. Content wranglers may also review the content included to provide either ratings (e.g. "G,"
"PG," etc.) which may be used by the user in setting delivery preferences, or to ensure the suitability of all content for various audiences, for example, ensuring that all content is suitable for delivery to minors.
Ratings which are set by the content wrangler may be ratings based upon any aspect of the content. Examples without limitation include: ratings based upon the suitability of the content for various audiences; ratings based upon the type of content (audio, video, etc.); ratings based upon the aesthetic quality of the content provided (audio fidelity, video resolution, etc.); and ratings based upon the reliability of the source of the content (will it be consistently available? Is the information contained within that content trustable?).
A content wrangler may maintain particular types of content in the data aggregation system while excluding other types of data. For example, a particular content wrangler could be responsible for a data aggregation system which maintains information related to various musical artists, but which does not contain any information related to movies or books or video games or any other fields outside of musical artists and their works.
This sort of specialized aggregated data system may be advantageous because it is simpler for a given data aggregation system to contain a single type of data and keep this content up-to-date than it would be for a content wrangler to maintain a broad set of data related to a broad variety of topics. Such specialized data aggregations can be useful in that the information available within such systems can be made available as redirectors to less specialized data selection systems. An agreement between a general data selection system's operator and a specialized data aggregation system's operator makes it possible for the data selection system to redirect all inquiries related to a specialized topic to that particular redirector. This frees the operator of the general data aggregation system from having to maintain such data within his own system, allowing his content wranglers to be more effective.
By creating such affiliated redirectors, the task of maintaining data can be simplified. Moreover, it becomes possible for a specialized data provider who is particularly well known for providing well managed data of a particular type to leverage this content by striking agreements with data selection systems, so as to provide his data to more user systems and increase awareness of his content.
CONTEXT DETERMINATION
As discussed above, the context of a user system describes the current state of the system. Various aspects of the status of the user system can be considered part of the context of the user system. These can include, without limitation: the current time, the current location of the user system, the name of the user of the system, the address or other personally identifiable information about the user, the files which are opened for use on the user system, and various properties of the files which are opened for use upon the user system.
This context information is sent to data selection systems for use in determining which content to deliver to the user system. The context information generally falls into four categories: information describing the local environment of the user system, information describing the preferences set by the user of the system, information describing which files are in use upon the user system, and information describing other data which is in use on the user system. This data about other information is referred to as metadata (data regarding data).
Information regarding the local environment includes such basic information as the current time and date, the location of the user system, the operating system being run on the user system, the physical configuration of the user system, the type of connection between the user system and the remote systems, and other information which describes the configuration of the user system. This information is advantageous in determining what data will be useful to a user.
For instance, if a user system is running Microsoft Windows as its operating system, then there is little need to provide information to this user system in a format which is only accessible to those using UNIX- based systems. Similarly, if a both a video clip and some text information in the data aggregation system are relevant given the other known context of the user system, but the connection to the user system is of a particularly low bandwidth, then it may be more appropriate to forward only the text information at first so as not to exceed the available bandwidth of the connection to the user system.
Such information is particularly useful when time or location sensitive data is available in the data aggregation system. For example, if the user system is known to be located on the East Coast and the current date is April 4, 2000, there is less value to providing information regarding tour dates of a band which precede April 4, 2000, or which relate to venues located on the West Coast.
Another type of useful context information for sending to data selection systems is user preference information. Although many types of preference information may be set by the user of a user system, types of preferences which are of particular advantage in determining which content will be delivered to the user system include: preferences regarding how the delivered content will be displayed; preferences determining to which data selection systems context data will be sent; and preferences which determine what types of context information will be sent to the data selection system.
Preferences can be set upon the user system which specify what types of delivered content will be displayed. Such preferences may also be used to specify how this content will be displayed. For example, the user could specify that on the user system, there will be separate areas for display of video information, textual information, and links to related information.
Other preferences could specify that video information should only be delivered in response to certain types of context information, or perhaps that audio and video information should not be delivered at all (e.g. if the user system was a kiosk that did not support audio output, there would be no reason to deliver audio data to the user system).
Another preference specifies which remote system or systems to which to send context information.
For instance, different data selection and aggregation systems may be available, each collecting or preparing and analyzing data in different ways. Or different systems may be distinguished by specializing in different types of data. For example, one could be primarily concerned with music-related information, and another with video related information.
By choosing to which remote system the context information will be sent from the context evaluation system, the user has control over who is going to be selecting content to be delivered to the user system. The context evaluation system could also be configured so that different types of context information are sent to different remote systems.
For example, the context evaluation system may advantageously be configured such that context information which is related to audio target files will be sent to a first data selection system by the context evaluation system, while context information which is related to video and HTML target files will be sent to a second data selection system. The user might also configure the context evaluation system such that certain information is sent to more than one data selection system. In this way, data from different remote systems may be delivered to the user system at the discretion and control of the user.
Preferences which allow the user to control what information is sent from the user system to the data selection system provide several advantages. They allow the user to have control over what sort of context is being used to determine what they are interested in. For instance, the user might set the context evaluation system so that only metadata is sent, and furthermore, only the metadata describing the name of the author of the content which is being viewed is to be sent to the data selection system. Such a preference would be of use to a user who has no concern with aspects of content other than authorship. For instance, if a user were listening to a love ballad sung by Sheena Easton and written by Prince, sending only information regarding the authorship (Prince) would successfully direct the search by the data selection system into other work by Prince, rather than other love songs, slow ballads, or songs sung by Sheena Easton. Such preferences also allow the user a degree of control over their privacy and anonymity while accessing such online content. Because context information could include information which is at least partially personally identifiable to the user of the user system, users may wish to restrict the information which is disclosed. For example, the user might wish that information about their location be limited to their state, rather than their zip code, or even limited to their nation or time zone. Similarly, information such as the source from which a downloaded media file was downloaded might be eliminated from the context information sent to data selection systems. This prevents the data selection system from profiling the online browsing history of the user.
The specific information included within any given transmission of context information for a user machine is dynamically within the control of the user of the system through the setting of appropriate preferences regarding the data to be sent. In addition, information returned from the data selection system and data aggregation systems may be used to alter the context information which is sent overtime. This may be done in response to the availability of new types of content from the data aggregation system, as well as in response to new types of metadata from the context evaluation system.
For instance, if a user has meticulously compiled a list of the recording engineer for all of the songs within the metadata database on their local user system, the user might choose to use such information for context upon which the data selection system may search. If in the future, additional categories of information become available, such as the type of equipment used in recording a given piece of audio content, the data selection system may query the context evaluation system as to whether or not to include such information in future context transmissions. In this way, the context information may be updated not only upon the wishes of the user of the context evaluation system, but also dynamically in response to changes in the available level of information and technology which is being used to select and deliver information to the user system. Target Files
A target file is a file which is opened for use on the user system. These may be files located locally on the user system, files which have been downloaded from various online systems, or a file which is currently being transferred to the user system from some other machine and being used as it is transferred. A file being opened and used as it is transferred from another machine is referred to as being 'streamed' to the user system.
A common type of file is a media file, such as an audio or video file. Such files may be either downloaded locally to the user system or opened as streamed files. Media files are often advantageous to stream rather than download because the file may take some time to transfer entirely to the user system. However, the nature of the file is often such that it is used sequentially from beginning to end once it is opened. Therefore, it is possible to begin usage (i.e. playback) of such a streaming media file as soon as a portion of the file is received. As long as the data continues to be delivered to the user system such that the playback of the file does not require part of the file which has not yet been transferred, the file can be played as if the entire file were present upon the user system the entire time.
Another type of target file is a file which is opened for use on the user system, and stored on the local system itself. Such a file could be stored locally in non-volatile memory of the user system, such as on a flash disk or memory stick, or could be written to some form of storage media connected to the user system, such as the hard drive of the user system. Other types of locally stored files include files on DVD or CD- ROM, as well as files on other removable media types, such as removable hard drives, Zip drives, floppy disks, PC Cards, Compact Flash cards and other forms of removable media.
An important type of context information is information about what target files are in use upon the user system. This information can be used to determine what the user is currently doing with the user system. For instance, if a streaming video file is opened, then this shows that the user is connected to a service which provides video clips. If instead an audio track off of a local CD drive is open, then the user system is being used to play music.
Although knowing just what type of operation is occurring is useful for context analysis, a more complete sense of the context of the user system can be developed if some further information regarding the particular target files in use can be determined. This information is the metadata of the target file. Metadata
Although metadata refers to all information about a target data file, much of what is technically metadata is not especially useful for context purposes. For example, a typical piece of metadata is the size of a target file. Although this information is very important to the user system in how it needs to handle and store the file, this information does not give much information that is useful in providing customized context sensitive content delivery. There are many other types of such basic metadata which, although they may be useful, are not generally meaningful in characterizing the user system or the user, such as the creation date of the target file, the modification time of the target file, and so forth.
More useful categories of metadata actually describe the content of the information within a target file. For example, if the target file is a file containing music data, significant metadata might include the composer of the music in the target file, or the performer of the music in the file. General types of this metadata can include without limitation: the creator of the file, the creator of the content of the file (artist, composer, singer, author, etc.), any featured performers (such as soloists, actors, etc.), and other types of information.
A useful metaphor for the relation of a target file to this type of metadata is the relation between a movie or book and the credits at the end of the movie or on the title page of the book. The credits include information which describes, among other things, those that were involved in producing the work. They also may include information such as who inspired the work, and even relevant notices, such as copyright or ASPCA notices (e.g., "no animals were harmed in the filming of this motion picture"). This type of metadata is most relevant to target files which themselves represent some form of expression.
However, similar metadata may be associated with almost any target file, and is neither limited to files which describe 'artistic' data such as movie clips or music files, nor are the types of metadata available limited to those which are traditionally used with movies or books.
This type of metadata is often stored in some manner which is associated with the target file itself. One way in which this is done is to embed the metadata information within the target file. In this way, any copy of the target file automatically brings the metadata with it. For example, in an audio file, it is possible to include information which designates certain parts of the data within the file as metadata, rather than audio information. By designating the data in such a way, it is possible for a program which has access to the file to read the file, and extract the metadata information from within the file. This technique is used in the current ID3v2 specification for embedding fields of metadata within MP3 format audio files.
Another way in which metadata can be stored and associated with target files is through data which is maintained separately from the target files and contains the metadata. One way to accomplish this is to have a metadata database which is accessible to the user system. Within this database, any metadata related to known target files is stored and indexed according to which target file it belongs to. In this way, if particular information is needed about a target file which does not contain its own metadata, it may be looked up by searching the metadata database for the name (or other identifier) of the target file. Note that it is also possible that such a metadata database may itself be stored remotely from the user system and accessible via the Internet. For example, when a user inserts a music CD into their computer's CD-ROM drive, an identifier may be read from the disk which is shared by all copies of that recording. This identifier is then looked up via the Internet on a server which provides metadata related to the particular CD. This information may include such data as the title of the album, the titles of the tracks on the album, the artist featured on the album, and other credits for that music CD.
A local copy of metadata which has been accessed may be stored on the user system in order to speed metadata searches for information which has already been requested once from the remote system. In this way, a local metadata database can be created which provides quick access to the most commonly used information. Another type of metadata which can be associated with a target file is data which is generated by analyzing the target file in some way. For example, an audio file could be analyzed to determine what the tempo of the song is, and this metadata could be used to generate context information. Another audio example is analyzing music files based on various acoustic qualities of the sound, ;'.e. its intensity, speed, bass / treble balance, and so forth. Products which can conduct such analysis based upon the actual sound of audio data are produced by various companies including Cantametrix of Seattle, Washington and Mongo Music LTD of Menlo Part, California. Similar types of information can be generated for video files as well. For example, the amount of dialogue in a video clip, the darkness or brightness of the images, as well as the amount and rate of motion within the video frame are all metadata aspects of a video clip which can be determined through analysis of the data comprising the target video file. This analysis to generate metadata can be performed for all types of target files, including text files.
The information generated can be used to determine additional search keys which may form useful context information. For example, analysis could be performed on the text of web pages or other text-based files that are opened in a web browser. By analyzing the words which are used, meaningful context information based upon that text could be used in the search which would be performed by the data selection system of the aggregated data. For example, if the recent history of web paged opened on the user system all included the term "aircraft" repeatedly, content related to upcoming local airshows or flight schools might be delivered.
DATA SELECTION The context information of the user system is sent by the context evaluation system to the data selection systems specified in the preferences as described above. The data selection system or systems will receive this information and will determine what content should be delivered to the user system based upon this context information.
The goal of the data selection process is to provide content to the user system in response to a request by a user to get related information. By searching using the context information provided as search keys, it becomes possible to extract information from a data aggregation system which is related to the context information, and therefore, related to the current status and usage of the user system itself.
For example, if the context information indicated that a video file is currently being streamed to the user system and that the file was a music video by a particular band, the data selection system would search the index of the information available to it within the aggregated storage and might request that other information about that band be delivered to the user system. It might also deliver information about another music video by the same band, or bands with a similar sound.
Note that it is also not necessary that all of the information which is to be provided to the user system pass through the data selection system. For example, in one delivery method, the data selection system determines which data should be sent to the user system, and then contacts the data aggregation system with instructions specifying specifically which data to send and where to send it. In this way, the management of the data to be delivered to the user system is still handled by the data selection system, but the actual transfer of data takes place solely between the data aggregation system and the user system, reducing the bandwidth requirements on the data selection system.
Another method which could be used to streamline the data delivery process involves the use of external data sources. When data is sent from an external data source, rather than bringing the information first into the data aggregation system and then relaying it to the user system, it may be advantageous to simply provide the appropriate external data source address to the user system and have the user system request the data directly. Alternatively, it might be possible for the data aggregation system or data selection system to contact the external data source and specify that the data is to be sent to the user system directly, rather than being returned to the data aggregation system.
Another technique which can be used when delivering data to the user system is for the data selection system to further analyze the context information which it receives from the user system before searching the aggregated data. This can allow for information which is not generally available to the user system to be used to further customize the data which will be delivered to the user system.
One type of processing which can be done by the data selection system is to keep track of what information is sent in response to which context information from different machines. This basic technique makes it possible to deliver information based on requests which are similar to previous context information from other user systems more quickly and without needing to perform a complete search each time.
Another aspect of historical information which can be useful in presenting appropriate data to the user system concerns keeping track of what information has been sent to this particular user system in the past. This may be used to track whether certain information is consistently flagged as the most relevant to this user system, and therefore constantly sent in response to different requests from this user system. By recognizing when the same data has been sent more than once, the data selection system can be configured so as to send different information which might be less relevant, but which has never before been sent to this user system, and therefore may be more useful and entertaining to the user of that system.
For example, if the context sensitive search is invoked by a user while watching a video clip of a movie trailer for a film featuring a particular actor, the data selection system may determine that sending a link to a movie trailer for another film featuring this same actor may be appropriate. However, if the function is invoked a second time while viewing this second movie clip, although the video clip of the first trailer may be the most obvious choice of data to deliver to the user, it would be more useful to the user to deliver a different movie clip featuring that actor, or perhaps biographical information about the actor, rather than the information which is known to already have been delivered to the user system in the past.
Another such technique is to allow certain preference based decision making to take place within the data selection system. In particular, the data selection system could be configured to treat different requests differently based upon some of the context information which is received.
For instance, if a particular context evaluation system was distributed by a particular retailer of music CD's, it would be possible to configure the data selection system to preferentially deliver information associated with that retailer to the users which send context data to the data selection system. However, if other users of the same data selection system are using context evaluation systems which were distributed by a different retailer of music CD's, or perhaps by a retailer of film recordings, then information related to offerings from these retailers may be treated preferentially over information from other sources. In this way, it is possible for different organizations to distributed "branded" versions of what is essentially the same context evaluation system, and have them all contact the same data selection system, and yet receive data which is customized and associated with their "brand".
DATA DELIVERY The actual steps of delivering content selected by the data selection system will now be described with reference to FIGURES 4A, 4B, and 4C. As discussed above with reference to FIGURE 2, after the data selection system 110 decides what content should be delivered to the user, this delivery list is sent to the data aggregation system 120. The data aggregation system will handle the request differently depending on whether the content to be provided is stored as a local copy within the database of the data aggregation system (FIGURE 4A), stored as an external source to the data aggregation system (FIGURE 4B), or stored as a redirector (FIGURE 4C).
FIGURE 4A shows the basic process which will take place for content which has been copied locally into the database 170 on the data aggregation system 120. After the data aggregation system 120 receives the list of content to deliver (272), the desired content can be located (405) within the index of the data aggregation database 170 and a request made of the database (410) to send that content (276) directly to the user system 100.
For data which is stored as a pointer to an external data source 320, the process is shown in FIGURE 4B. Once the data aggregation system 120 receives the delivery list (272) and determines that the information is stored externally, the appropriate link is retrieved (430) from the data aggregation database and this link to the appropriate content is sent (435) to the user system 100. Once received by the user system (440), the user system may request the data from the source specified in the link (445). The external source will receive the request (450) and return the content to the user system (276).
When a request is redirected to another server, as shown in FIGURE 4C, the process is handled still differently. When the data aggregation system 120 receives the list of content to deliver (272) and determines that this data must be requested from a redirector 330, the data aggregation system retrieves the pointer to the address of the redirector from the data aggregation system database (465). The data aggregation system then determines which of the search terms used in the initial search need to be used when requesting data from the redirector (470) and sends this request for content to the redirector (475). The redirector, upon receiving this request (480), will process the search terms provided (485) and then will send the appropriate content back (276).
EXAMPLE The following example is used to illustrate the operation of a preferred embodiment of the present invention. The exemplary user system is a home computer being used on an evening in May in Dana Point, a town on the southern California coast. The user is playing an MP3 file of a radio interview with an Olympic bicyclist which is being streamed from CNN.com. The user has a high speed connection to the Internet via a cable modem, and is using Real Jukebox, a playback program written by Real Networks, Inc. of Seattle, Washington and included by Sierra, a publisher of computer games, on the CD-ROM of entertainment software recently purchased by the user. The user has configured his playback program to connect to the data selection system operated by Real Networks.
An exemplary operating screen 500 of the playback program is shown in FIGURE 5. While listening to this news clip, the user clicks on the "Online Info" button 510. When this button is clicked, Real Jukebox activates the context evaluation system within the Real Jukebox program, and the context information is collected. The user has not limited the context information to be distributed in any way, so this context information includes (1) the speed of the connection between the user system and internet (greater than 128 kbps download speed), (2) the location of the user system (Dana Point), (3) the date and time (an evening in May), (4) the currently opened target file (an MP3 audio file named LANCE.MP3}, (5) the source of the target file (CNN.com), (6) the playback program (Real Jukebox), (7) the distribution source of the edition of Real Jukebox in use (Sierra), (8) metadata related to the target file, including (a) the topic of the file (Olympic bicycling), (b) the bicyclist being interviewed (Lance Armstrong), and the nature of the audio clip (an interview). Also included within the context information would be (9) the display preferences set by the user including (a) that the user wishes to receive the most relevant content directly, and (b) links to the next two most relevant pieces of content.
All of this information is sent to the Real Networks data selection system, as specified above. The exemplary Real Networks data selection system is connected to a data aggregation system which is maintained by a team of content wranglers, each having responsibility for different classes of content. The content wranglers have included in the aggregated data upon the server copies of the text of schedules of community events for various regions of the country, one of which includes southern California. Also included in the aggregated data are pointers to a series of video clips giving a brief description of each event at the upcoming summer Olympics in Australia, stored on a different system on the Internet. Other aggregated information includes audio clips of the soundtrack of the upcoming Olympic games and a pointer to a redirector which handles current sports news.
The data selection system, upon receiving the context information from the user system, examines the information and searches the indexes of the data aggregation database. In this search it finds a lot of data which is relevant to bicycling, the Olympics, news interviews, and sports in general. From this information, the data selection system selects the upcoming Olympic overview clip for bicycling as the most relevant content to provide. A direct link to this video is sent to the user system for the user system to request the data directly from the external source with the video clips.
The data aggregation system also sends a request to the current sports news redirector and gets the latest news about the sport of bicycling. Most of this data is not relevant to the user, but one piece describes an upcoming velodrome racing event to be held in San Diego, less than 100 miles from the user in Dana Point. A request is sent to the redirector to forward this information to the user system. The user system also discovers a link to bicycle racing computer games from Sierra, and includes a link to the Sierra games site within the list of relevant data.
Finally, the data selection system discovers a series of charity bicycle road races which are occurring up and down the west coast throughout the spring. Several events are within 50 miles of Dana Point, however, one of these events occurred in April, although the results of this race event are available. The server decides to include a direct link to the results from the recent event in April to the user system, as well as the actual copy of the information from the data aggregation system database describing the next upcoming event, occurring in early June in Newport Beach, 20 miles north of Dana Point.
The user system will receive this information, and the most relevant content, as specified in the user preferences will be displayed directly. Therefore, the Olympic bicycling overview video clip will be displayed using any available player program on the user computer in real-time response to the user pressing the "Online Info" button. If the program that the user was using was capable of displaying a video clip directly, this content would show up within the same program (i.e. within the Real Jukebox program). If not, an external viewer would be spawned. The next two most relevant items, the content regarding the upcoming road race in Newport Beach, and the external information regarding the velodrome event in San Diego would be included as links. The link to the road race would be a link to a particular location of the appropriate data on the Real Networks data aggregation system itself (since this data came from a copy on the data aggregation system). The link to the velodrome event will be included as a link to data off of the redirector, so the link is not to the Real Networks system at all, but rather will be a link with an appropriate query that will produce the desired data if the redirector is contacted with that request.
Note that all of this content is delivered in real time to the user system. As soon as the user clicks on the "Online Info" button, the context is immediately forwarded to the data selection system, the existing index searched, and the appropriate content delivered to the user system. All of these steps happen and the content is available to the user system while the user is still viewing the original target file (the audio of the radio interview with Lance Armstrong). In this way, a seamless presentation of appropriate content can be provided to the user without interruption.
As the user watches the video clip regarding Olympic bicycling events at the 2000 Olympic games, the user may choose to click on the link to the road race in Newport Beach link and find out more information about this race. While viewing this information, the user could click "Online Info" again, and the process would be repeated. However, by this time additional information may have been added to the data aggregation system by the content wranglers and the context information about the user system will now be different (the target file is now the data regarding the Newport Beach road race).
Alternatively, the user could choose to view the content which was the next most relevant content as determined by the data selection system. This would include the link to the Sierra games site, as well as information regarding the results of the recent southern California road race. Because the delivery of content is dynamic and the process of aggregation is continuous, the experience which a user would have selecting the "Online Info" button will not be the same every time. Just as the context of the user system may change over that time, the set of content available on the data aggregation system may change over time as well, resulting in new information becoming available, and different sources of information becoming featured within the set of aggregated data.
Through this process, not only is the experience of each individual user different from the experience of another user viewing similar content or contacting the same system, but the experience also changes for the same user over time. In this way the user is delivered a continuously updated and dynamically customized program of content which is configured to respond to the user's interests as represented by the context of the user system .
It is to be understood that not necessarily all objects or advantages described above may be achieved in accordance with any particular embodiment of the invention. Thus, for example, those skilled in the art will recognize that the invention may be embodied or carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein. For example, context determination techniques which are based on reading metadata from a target file may not be used on all types of target files (e.g. some target files may contain no metadata).
Furthermore, the skilled artisan will recognize the interchangeability of various features from different embodiments. For instance, the storage of a metadata database may be local to the user machine or accessed remotely via the Internet, but either technique may be used with the other techniques described above. In addition to the variations described herein, other known equivalents for each feature can be mixed and matched by one of ordinary skill in this art to construct systems to deliver customized context sensitive content to a user in accordance with principles of the present invention.
Although this invention has been disclosed in the context of certain preferred embodiments and examples, it will be understood by those skilled in the art that the present invention extends beyond the specifically disclosed embodiments to other alternative embodiments and/or uses of the invention and obvious modifications and equivalents thereof. Thus, it is intended that the scope of the present invention herein disclosed should not be limited by the particular disclosed embodiments described above, but should be determined only by a fair reading of the claims that follow. In the claims below, reference characters used to denote process steps are provided for convenience of description only, and not to imply a particular order for performing the steps.

Claims

WHAT IS CLAIMED IS:
1. A method of providing a large number of individual viewers of content with a dynamically generated program of additional content related to the content currently being viewed, where the resulting program of content which is delivered to each viewer is different and customized to the context of that viewer, said method comprising the steps of: generating context information for the viewer; sending the context information to a data selection system; selecting content from a data aggregation system based on the context information; and delivering the selected content to the viewer.
2. A method as in Claim 1 wherein the viewer views the content using a user system which is connected to the data selection system and data aggregation system, and the program of content delivered to the viewer comprises dynamically selected subsets of aggregated data from within the data aggregation system.
3. A method as in Claim 2 wherein the user system comprises a computer running a content viewing program.
4. A method as in Claim 2 wherein the request for the dynamically generated program of content is triggered from within a program for viewing content upon the user system.
5. A system for delivering dynamically aggregated data based on context information of a user system comprising: a data aggregation system which is configured to store data, links to data, and links to data sources; a context evaluation system which determines the current context of a user system and reports this context as context information to a data selection system; and a data selection system which evaluates the context information received from the context evaluation system and selects data from the data aggregation system for delivery to the user system.
6. A system as in Claim 5 wherein the data aggregation system comprises a database of information, the information in the database being collected from other systems, and where the information comprises data read from other computers, pointers to data which reside on other computers, and pointers to other computers which act as servers and provide data upon request.
7. A system as in Claim 6 wherein the context evaluation system is configured to send context information to more than one data selection system.
8. A system as in Claim 7 wherein the context evaluation system is configured to send different context information to different data selection systems.
9. A system as in Claim 5 wherein the context evaluation system comprises client software which runs on the user system and may be configured to monitor files which are in use upon the user system, as well as to store user preferences on which data selection system to which to send the context information and how to display the information which is delivered to the user system.
10. A system as in Claim 5 wherein the data selection system comprises server software which runs on a computer and may be configured to perform searches or other relational analysis of the information stored within the data aggregation system in order to determine which information is most relevant and desirable to send to the user system in response to any given context information received from the user system.
11. A system as in Claim 5 wherein the data aggregation system and data selection system comprise software which is running on the same general purpose computer.
12. A system as in Claim 5 wherein the data aggregation system and data selection system comprise the same system.
13. A system as in Claim 5 where the data selection system is configured to modify the data which is delivered based on customization settings which are sent to the data selection system with the context information.
14. A system as in Claim 13 where the customization settings comprise data describing the configuration of the user system.
15. A system as in Claim 13 where the customization settings comprise data describing the configuration of the context evaluation system.
16. A system as in Claim 13 where the customization settings comprise data describing the preferred manner of displaying the data delivered to the user system.
17. A system as in Claim 5 wherein the context evaluation system is configured to determine metadata associated with a target file, the target file comprising a file which is currently opened for use on the user system, and the context evaluation system is further configured to send this metadata as context information to the data selection system.
18. A system as in Claim 17 wherein the target file is delivered to the user system via a streaming channel.
19. A system as in Claim 17 wherein the target file is stored on the user system.
20. A system as in Claim 17 wherein the metadata is read from one or more data fields within the target file.
21. A system as in Claim 17 wherein the metadata is read from a database of metadata.
22. A system as in Claim 21 wherein the database of metadata is stored locally to the user system.
23. A system as in Claim 21 wherein the database of metadata is stored remotely from the user system.
24. A system as in Claim 23 wherein the database of metadata is accessed via the Internet.
25. A system as in Claim 21 wherein target file is accessed by the same program that accesses the database of metadata.
26. A system as in Claim 17 wherein the metadata may comprise values in multiple fields and data from different fields of metadata are sent to separate data selection systems.
27. A system as in Claim 17 wherein the context evaluation system is configured to generate context information based upon analysis of the target file.
28. A system as in Claim 5 wherein the selection of data, links to data, and links to data sources stored in the data aggregation system is edited and maintained in part by a human operator.
29. A system as in Claim 5 wherein the data aggregation system is further configured to read data from the sources specified in the links to data and links to data sources stored in the data aggregation system when such data is needed for delivery in response to the context information.
30. A system as in Claim 5 wherein the data selection system is configured to determine what data to request from the data aggregation system at least in part based upon customization settings which are stored within the data selection system which identify the preferences of the user system.
31. A system as in Claim 5 wherein the data selection system is configured to determine what data to request from the data aggregation system at least in part based upon historical data related to the customizations which have been previously requested by user systems searching based on similar context information.
32. A context evaluation system which is configured to send context information about a user system to a data selection system and which is configured to receive data based on this context information from a data aggregation system.
33. A system as in Claim 32 wherein the context evaluation system comprises client software which runs on the user system and may be configured to monitor files which are in use upon the user system, as well as to store user preferences on which data selection system to which to send the context information and how to display the information which is delivered to the user system.
34. A system as in Claim 32 wherein the context evaluation system is configured to send different context information to different data selection systems.
35. A system as in Claim 32 wherein the context information includes at least in part customization settings which the data selection system will use to modify the data which is delivered to the user system.
36. A system as in Claim 35 where the customization settings comprise data describing the configuration of the user system.
37. A system as in Claim 35 where the customization settings comprise data describing the configuration of the context evaluation system.
38. A system as in Claim 35 where the customization settings comprise data describing the preferred manner of displaying the data delivered to the user system.
39. A context evaluation system as in Claim 32 which is further configured to determine the context of the user system based at least in part upon a target file, the target file comprising a file which is currently opened for use on the user system.
40. A system as in Claim 39 wherein the context evaluation system is configured to generate context information based upon analysis of the target file,
41. A context evaluation system as in Claim 39 wherein the target file is delivered to the user system via a streaming channel.
42. A context evaluation system as in Claim 39 wherein the target file is stored on the user system.
43. A context evaluation system as in Claim 39 wherein the context information is based at least in part upon metadata related to the target file.
44. A context evaluation system as in Claim 43 wherein the metadata is read from one or more data fields within the target file.
45. A system as in Claim 43 wherein the metadata may comprise values in multiple fields and data from different fields of metadata are sent to separate data selection systems.
46. A context evaluation system as in Claim 43 wherein the metadata is read from a database of metadata which is available to the user system.
47. A context evaluation system as in Claim 46 wherein the database of metadata is stored locally to the user system.
48. A context evaluation system as in Claim 46 wherein the database of metadata is stored remotely from the user system.
49. A context evaluation system as in Claim 48 wherein the database of metadata is accessed via the Internet.
50. A system as in Claim 46 wherein target file is accessed by the same program that accesses the database of metadata.
51. A context sensitive web content delivery system which is configured to receive context information about a user system from a context evaluation system and which is configured to deliver data based on this context information to the user system.
52. A context sensitive web content delivery system as in Claim 51 which comprises a data aggregation system which is configured to store data, links to data, and links to data sources; and a data selection system which evaluates the context information received from the context evaluation system and selects data from the data aggregation system to deliver to the user system.
53. A system as in Claim 52 wherein the data aggregation system comprises a database of information, the information in the database being collected from electronic sources on the Internet, and the information including actual data read from other sources, pointers to data which reside on Internet sources, and pointers to Internet servers which provide data upon request.
54. A system as in Claim 52 wherein the data selection system comprises server software which runs on a computer and may be configured to perform searches or other relational analysis of the information stored within the data aggregation system in order to determine which information is most relevant and desirable to send to the user system in response to any given context information received from the user system.
55. A system as in Claim 52 wherein the data aggregation system and data selection system comprise software which is running on the same general purpose computer.
56. A system as in Claim 52 wherein the data aggregation system and data selection system comprise the same system.
57. A system as in Claim 52 where the data selection system is configured to modify the data which is delivered based on customization settings which are sent to the data selection system with the context information.
58. A system as in Claim 52 wherein the selection of data, links to data, and links to data sources stored in the data aggregation system is edited and maintained in part by a human operator.
59. A system as in Claim 52 wherein the data aggregation system is further configured to read data from the sources specified in the links to data and links to data sources stored in the data aggregation system when such data is needed for delivery in response to the context information.
60. A system as in Claim 52 wherein the data selection system is configured to determine what data to request from the data aggregation system at least in part based upon customization settings which are stored within the data selection system which identify the preferences of the user system.
61. A system as in Claim 52 wherein the data selection system is configured to determine what data to request from the data aggregation system at least in part based upon historical data related to the customizations which have been previously requested by user systems searching based on similar context information.
62. A system as in Claim 52 wherein the step of selecting data is based at least in part upon customization settings which are stored within the data selection system which identify the preferences of the user system.
63. A system as in Claim 52 wherein the step of selecting data is based at least in part upon historical data related to the customizations which have been previously requested by user systems searching based on similar context information.
64. A system as in Claim 52 wherein the step of selecting data is based at least in part upon information describing the data selection system.
65. A method for delivering dynamically selected subsets of aggregated data within a data aggregation system to a user system in response to context information about the user system, comprising: determining the context information about the user system; sending the context information to a data selection system; selecting data from the data aggregation system based on the context information; and delivering the selected data to the user system.
66. A method as in Claim 65 wherein the user system and the data selection system are located remotely from one another.
67. A method as in Claim 66 wherein the user system and the data selection system are connected to one another via the Internet.
68. A method as in Claim 65 wherein the selected data is sent to the user system via the Internet.
69. A method as in Claim 65 wherein the step of sending the context information further comprises sending the context information to more than one data selection system.
70. A method as in Claim 69 wherein different context information is sent to different data selection systems.
71. A method as in Claim 65 wherein the step of delivering the selected data to the user system further comprises delivering data from more than one data aggregation system to the user system.
72. A method as in Claim 65 wherein the context information is determined at least in part with reference to a target file, the target file comprising a file which is currently opened for use on the user system.
73. A method as in Claim 72 wherein the context information comprises at least in part metadata which is associated with the target file.
74. A method as in Claim 72 wherein the target file is delivered to the user system via a streaming channel.
75. A method as in Claim 72 wherein the target file is stored on the user system.
76. A method as in Claim 73 wherein the metadata is read from one or more data fields within the target file.
77. A method as in Claim 73 wherein the metadata is read from a database of metadata accessible by the user system.
78. A method as in Claim 77 wherein the database of metadata is stored locally to the user system.
79. A method as in Claim 77 wherein the database of metadata is stored remotely from the user system.
80. A method as in Claim 79 wherein the database of metadata is access by the user system via the Internet.
81. A method as in Claim 65 wherein the context information includes data describing the configuration of the user system.
82. A method as in Claim 73 wherein the metadata may comprise values in multiple fields and data from different fields of metadata are sent to separate data selection systems.
83. A method as in Claim 65 wherein the context information includes data describing the preferred manner of displaying the data delivered to the user system.
84. A method as in Claim 65 wherein the step of selecting data is based at least in part upon customization settings which are stored within the data selection system which identify the preferences of the user system.
85. A method as in Claim 65 wherein the step of selecting data is based at least in part upon historical data related to the customizations which have been previously requested by user systems searching based on similar context information.
86. A method as in Claim 65 wherein the step of selecting data is based at least in part upon information describing the data selection system.
87. A method as in Claim 72 where the context information comprises at least in part information generated by analysis of the target file.
88. A method for displaying context sensitive aggregated data on a user system comprising: determining context information for the user system, said context information characterizing the state of the user system at that time; sending the context information to a remote system configured to deliver data to the user system based on the context information; receiving data from the remote system; and displaying the data provided by the remote system.
89. A method as in Claim 88 where the remote system comprises a data aggregation system which is configured to store data, links to data, and links to data sources and a data selection system which evaluates the context information received from the user system and selects data from the data aggregation system for delivery to the user system.
90. A method as in Claim 88 wherein the step of sending the context information further comprises sending context information to additional remote systems.
91. A method as in Claim 88 wherein the step of receiving data from the remote system further comprises receiving data from additional remote systems.
92. A method as in Claim 90 wherein different context information is sent to different remote systems.
93. A method as in Claim 88 where determining context information for the user system comprises: analyzing the configuration of the user system; analyzing the preferences set by a user on the user system; analyzing a target file, the target file comprising a file which is currently opened for use on the user system; and preparing the context information based on the above analysis.
94. A method as in Claim 93 wherein the step of preparing the context information is performed by a context evaluation system comprising client software which runs on the user system and is configured to communicate with the remote system.
95. A method as in Claim 93 wherein the target file is delivered to the user system via a streaming channel.
96. A method as in Claim 93 wherein the target file is stored on the user system.
97. A method as in Claim 93 wherein the context information comprises at least in part metadata which is associated with the target file.
98. A method as in Claim 97 wherein the metadata is read from one or more data fields within the target file.
99. A method as in Claim 98 wherein the step of sending the context information further comprises sending the context information to additional remote systems and data from different fields of metadata are sent to separate remote systems.
100. A method as in Claim 97 wherein the metadata is read from a database of metadata accessible by the user system.
101. A method as in Claim 100 wherein target file is accessed by the same program that accesses the database of metadata.
102. A method as in Claim 100 wherein the database of metadata is stored locally to the user system.
103. A method as in Claim 100 wherein the database of metadata is stored remotely from the user system.
104. A method as in Claim 103 wherein the database of metadata is accessed from the user system via the Internet.
105. A method for providing context sensitive aggregated data to a user system comprising: receiving context information from a user system; selecting a subset of data from a data aggregation system based upon the context information received; and sending the subset of aggregated data to the user system.
106. A method as in Claim 105 wherein the data aggregation system comprises a database of information, the information in the database being collected from other systems, and where the information comprises data read from other computers, pointers to data which reside on other computers, and pointers to other computers which act as servers and provide data upon request.
107. A method as in Claim 106 wherein the data aggregation system is further configured to read data from the sources specified in the links to data and links to data sources stored in the data aggregation system when such data is needed for delivery in response to the context information.
108. A method as in Claim 106 wherein the selection of data, links to data, and links to data sources stored in the data aggregation system is edited and maintained in part by a human operator.
109. A method as in Claim 105 wherein the step of selecting a subset of data is performed by a data selection system comprising software which runs on a computer and may be configured to perform searches or other relational analysis of the information stored within the data aggregation system in order to determine which information is most relevant and desirable to send to the user system in response to any given context information received from the user system.
110. A method as in Claim 109 wherein the data aggregation system and data selection system comprise software which is running on the same general purpose computer.
111. A method as in Claim 109 wherein the data selection system is integral to the data aggregation system.
112. A method as in Claim 109 where the data selection system is configured to modify the data which is delivered based on customization settings which are part of the context information.
113. A method as in Claim 109 wherein the step of selecting a subset of data is based at least in part upon customization settings which are stored within the data selection system which identify the preferences of the user system.
114. A method as in Claim 109 wherein the step of selecting data is based at least in part upon information describing the data selection system.
115. A method as in Claim 105 wherein the step of selecting a subset of data is based at least in part upon historical data related to the customizations which have been previously requested by user systems searching based on similar context information.
116. A method as in Claim 105 where the context information comprises at least in part information generated by analysis of the target file.
PCT/US2001/016299 2000-05-22 2001-05-18 Context sensitive configurable web content delivery WO2001090950A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001263315A AU2001263315A1 (en) 2000-05-22 2001-05-18 Context sensitive configurable web content delivery

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US57540500A 2000-05-22 2000-05-22
US09/575,405 2000-05-22

Publications (1)

Publication Number Publication Date
WO2001090950A1 true WO2001090950A1 (en) 2001-11-29

Family

ID=24300190

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/016299 WO2001090950A1 (en) 2000-05-22 2001-05-18 Context sensitive configurable web content delivery

Country Status (2)

Country Link
AU (1) AU2001263315A1 (en)
WO (1) WO2001090950A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868598B2 (en) 2012-08-15 2014-10-21 Microsoft Corporation Smart user-centric information aggregation
US9014832B2 (en) 2009-02-02 2015-04-21 Eloy Technology, Llc Augmenting media content in a media sharing group
JP2015536518A (en) * 2012-12-05 2015-12-21 ロヴィ ガイズ, インコーポレイテッド Method and system for displaying contextually relevant information about media assets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787417A (en) * 1993-01-28 1998-07-28 Microsoft Corporation Method and system for selection of hierarchically related information using a content-variable list
US6014638A (en) * 1996-05-29 2000-01-11 America Online, Inc. System for customizing computer displays in accordance with user preferences
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US6236768B1 (en) * 1997-10-14 2001-05-22 Massachusetts Institute Of Technology Method and apparatus for automated, context-dependent retrieval of information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787417A (en) * 1993-01-28 1998-07-28 Microsoft Corporation Method and system for selection of hierarchically related information using a content-variable list
US6014638A (en) * 1996-05-29 2000-01-11 America Online, Inc. System for customizing computer displays in accordance with user preferences
US6236768B1 (en) * 1997-10-14 2001-05-22 Massachusetts Institute Of Technology Method and apparatus for automated, context-dependent retrieval of information
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EHRMANTRAUT M.: "The personal electronic program guide- towards the pre-selection of individual TV programs", ACM, 1996, pages 243 - 250, XP002944583 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014832B2 (en) 2009-02-02 2015-04-21 Eloy Technology, Llc Augmenting media content in a media sharing group
US8868598B2 (en) 2012-08-15 2014-10-21 Microsoft Corporation Smart user-centric information aggregation
JP2015536518A (en) * 2012-12-05 2015-12-21 ロヴィ ガイズ, インコーポレイテッド Method and system for displaying contextually relevant information about media assets

Also Published As

Publication number Publication date
AU2001263315A1 (en) 2001-12-03

Similar Documents

Publication Publication Date Title
US7720686B2 (en) Method and system for providing listener-requested music over a network
US9552428B2 (en) System for generating media recommendations in a distributed environment based on seed information
US7343384B2 (en) Methods and systems for processing playlists
US7672975B2 (en) Methods and systems for repairing playlists
US7262357B2 (en) Systems for per persona processing media content-associated metadata
US7096234B2 (en) Methods and systems for providing playlists
US8117193B2 (en) Tunersphere
US7363372B2 (en) System and method for managing content delivered to a user over a network
US20040261040A1 (en) Method and apparatus for media access control
US20070078713A1 (en) System for associating an advertisement marker with a media file
US20070078712A1 (en) Systems for inserting advertisements into a podcast
US20060173825A1 (en) Systems and methods to provide internet search/play media services
US20020129693A1 (en) Interactive audio distribution system
US20060155754A1 (en) Playlist driven automated content transmission and delivery system
US7617296B2 (en) Data compilation system and method
WO2001090950A1 (en) Context sensitive configurable web content delivery

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ CZ DE DE DK DK DM DZ EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP