RELATED APPLICATIONSThis application is a divisional of U.S. patent application Ser. No. 09/465,547, filed on Dec. 16, 1999, entitled “Live Presentation Searching” and naming Nosakhare D. Omoigui as inventor, the disclosure of which is hereby incorporated herein by reference.[0001]
TECHNICAL FIELDThis invention relates to networked client/server systems and to methods of delivering and rendering live content in such systems. More particularly, the invention relates to searching for live presentations.[0002]
BACKGROUND OF THE INVENTIONThe advent of computers and their continued technological advancement has revolutionized the manner in which people work and live. Information that used to be available only in written or verbal form is becoming increasingly available in electronic form. Furthermore, presentations which used to be available only on particular recording media (e.g., film or tape) or via television broadcasts are now available in digital form (e.g., over the Internet).[0003]
One problem encountered by users when faced with this continually increasing mass of digital information is the ability to locate particular information that the user is interested in. For example, trying to locate a particular presentation can be difficult and cumbersome for users. Various search mechanisms exist for pre-recorded “on-demand” presentations (e.g., various world wide web search engines). On-demand presentations are fairly easily searchable because the underlying data of the presentation is already known. However, in the case of live presentations, such underlying data is not known because, as the presentation is live, the underlying data is not available yet.[0004]
Some systems do exist that allow a user to identify scheduled live presentations. For example, a television programming guide may be available over the Internet that allows a user to search for television programs that are scheduled to be broadcast (e.g., via cable, satellite system, or typical television broadcast frequencies, such as UHF or VHF) and their associated broadcast times. However, such programming guides typically do not provide the flexibility to allow non-scheduled programs to be identified to the user. Furthermore, such programming guides are typically limited to television broadcasts and do not allow users to identify presentations from any of the wide variety of alternate sources (such as via the Internet).[0005]
The invention described below addresses these disadvantages, providing a way to search for live presentations.[0006]
SUMMARY OF THE INVENTIONIn a networked client/server system, live presentations can be streamed from an encoder or other server to a client computer. Additionally, information describing the presentation is registered with a search server. This information is made available for user searches only for as long as the information properly describes the live presentation. When the information no longer describes a current live presentation, the information is no longer available for searching.[0007]
According to one aspect of the invention, the information describes the entire presentation. The information is available in the search server for user searches for the duration of the presentation. Once the presentation is over, the information is deleted from the search server, preventing any subsequent user search requests from being satisfied using the information describing that presentation.[0008]
According to another aspect of the invention, the information describes a particular characteristic(s) of the presentation (e.g., the current topic). The information for a characteristic is available in the search server for user searches for as long as that characteristic describes the portion of the presentation currently being presented. Once that characteristic no longer describes the portion currently being presented, the information describing that characteristic is deleted from the search server, preventing any subsequent user search requests from being satisfied using the information describing that characteristic.[0009]
According to another aspect of the invention, a user can register a notification request with the search server. The notification request identifies a set of search criteria as well as a manner in which the user should be notified in the event a live presentation matches the search criteria. The search server continues to compare new information regarding available live presentations to the search criteria. If a match is found, the search server notifies the user in whatever manner the user requested.[0010]
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 shows a client/server network system and environment in accordance with one embodiment of the invention.[0011]
FIG. 2 shows a general example of a computer that can be used in accordance with the invention.[0012]
FIG. 3 illustrates an exemplary search server in more detail.[0013]
FIG. 4 illustrates entries of an exemplary content database in more detail.[0014]
FIG. 5 shows exemplary steps in a process for allowing searching of live presentations.[0015]
FIG. 6 shows exemplary steps in a process for allowing searching of current characteristics information in live presentations.[0016]
DETAILED DESCRIPTIONGeneral Network Structure[0017]
FIG. 1 shows a client/server network system and environment in accordance with one embodiment of the invention. Generally, the system includes multiple (n)[0018]network client computers102, multiple (m)encoders104, and asearch server106. Thecomputers102,encoders104, andserver106 communicate with each other over a data communications network. The communications network in FIG. 1 is apublic network108, such as the Internet. The data communications network might also include local-area networks and/or private wide-area networks, and can include both wired and wireless sections.Client computers102,encoders104, andserver106 can communicate with one another via any of a wide variety of known protocols, such as the Hypertext Transfer Protocol (HTTP).
[0019]Encoders104 receive live content or presentations in the form ofdifferent media streams110.Encoders104 can be dedicated media servers, or alternatively other more general-purpose computer systems. Thesemedia streams110 can be individual media streams (e.g., audio, video, graphical, etc.), or alternatively can be composite media streams including two or more of such individual streams. Themedia streams110 are provided to encoders on a “live” basis from other data source components through dedicated communications channels or through the Internet itself. Encoders104 coordinate the streaming of the live content to other components on thenetwork108 that request the content, such asclient computers102. It is to be appreciated that although the media streams are referred to as being “live”, there may be a delay (e.g., between one second and thirty seconds) between the time of the actual event and the time the media streams reach the encoder(s).
There are various standards for streaming media content and composite media streams. “Advanced Streaming Format” (ASF) is an example of such a standard, including both accepted versions of the standard and proposed standards for future adoption. ASF specifies the way in which multimedia content is stored,[0020]11 streamed, and presented by the tools, servers, and clients of various multimedia vendors. ASF provides benefits such as local and network playback, extensible media types, component download, scalable media types, prioritization of streams, multiple language support, environment independence, rich inter-stream relationships, and expandability. Further details about ASF are available from Microsoft Corporation of Redmond, Wash.
[0021]Encoders104 can transmit any type of presentation over thenetwork108. Examples of such presentations include audio/video presentations (e.g., television broadcasts or presentations from a “NetShow™” server (available from Microsoft Corp. of Redmond, Wash.)), video-only presentations, audio-only presentations, graphical or animated presentations, etc.
[0022]Search server106 maintains acontent database112, anotification database114, and a scheduledpresentations database116. Incontent database112,server106 maintains descriptive information regarding the current live content available fromencoders104. A user of aclient computer102 can accesssearch server106 to search for particular live content. Innotification database114,server106 maintains information regarding users ofclient computers102 that have registered to be notified when particular live content is available. In scheduledpresentations database116,server106 maintains information regarding future live presentations that have been registered withserver106.
Exemplary Computer Environment[0023]
In the discussion below, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by one or more conventional personal computers. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. In a distributed computer environment, program modules may be located in both local and remote memory storage devices.[0024]
Alternatively, the invention could be implemented in hardware or a combination of hardware, software, and/or firmware. For example, the invention could be implemented in one or more application specific integrated circuits (ASICs).[0025]
FIG. 2 shows a general example of a[0026]computer142 that can be used in accordance with the invention.Computer142 is shown as an example of a computer that can perform the functions of any ofclient computers102,server encoders104, orserver106 of FIG. 1.
[0027]Computer142 includes one or more processors orprocessing units144, a system memory124, and asystem bus148 that couples various system components including the system memory124 toprocessors144.
The[0028]bus148 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM)150 and random access memory (RAM)152. A basic input/output system (BIOS)154, containing the basic routines that help to transfer information between elements withincomputer142, such as during start-up, is stored inROM150.Computer142 further includes ahard disk drive156 for reading from and writing to a hard disk, not shown, amagnetic disk drive158 for reading from and writing to a removablemagnetic disk160, and anoptical disk drive162 for reading from or writing to a removableoptical disk164 such as a CD ROM or other optical media. Thehard disk drive156,magnetic disk drive158, andoptical disk drive162 are connected to thesystem bus148 by anSCSI interface166 or some other appropriate interface. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data forcomputer142. Although the exemplary environment described herein employs a hard disk, a removablemagnetic disk160 and a removableoptical disk164, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs) read only memories (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk,[0029]magnetic disk160,optical disk164,ROM150, orRAM152, including anoperating system170, one ormore application programs172,other program modules174, andprogram data176. A user may enter commands and information intocomputer142 through input devices such askeyboard178 andpointing device180. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to theprocessing unit144 through aninterface182 that is coupled to the system bus. Amonitor184 or other type of display device is also connected to thesystem bus148 via an interface, such as avideo adapter186. In addition to the monitor, personal computers typically include other peripheral output devices (not shown) such as speakers and printers.
[0030]Computer142 operates in a networked environment using logical connections to one or more remote computers, such as aremote computer188. Theremote computer188 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative tocomputer142, although only amemory storage device190 has been illustrated in FIG. 2. The logical connections depicted in FIG. 2 include a local area network (LAN)192 and a wide area network (WAN)194. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. In the described embodiment of the invention,remote computer188 executes an Internet Web browser program such as the “Internet Explorer” Web browser manufactured and distributed by Microsoft Corporation of Redmond, Wash.
When used in a LAN networking environment,[0031]computer142 is connected to thelocal network192 through a network interface oradapter196. When used in a WAN networking environment,computer142 typically includes amodem198 or other means for establishing communications over thewide area network194, such as the Internet. Themodem198, which may be internal or external, is connected to thesystem bus148 via aserial port interface168. In a networked environment, program modules depicted relative to thepersonal computer142, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Generally, the data processors of[0032]computer142 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described below. Furthermore, certain sub-components of the computer may be programmed to perform the functions and steps described below. The invention includes such sub-components when they are programmed as described. In addition, the invention described herein includes data structures, described below, as embodied on various types of memory media.
For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.[0033]
Search Server[0034]
FIG. 3 illustrates an exemplary search server in more detail.[0035]Search server106 includes aquery interface210, aregistration interface212, asearch engine214, and adatabase controller216. Client computers102 (FIG. 1) communicate withsearch server106 viaquery interface210.Query interface210 allows users ofclient computers102 to enter search criteria for live content. Upon receipt of a search request viaquery interface210,search engine214 accessescontent database112 to search for live content that matches the search criteria.
Encoders[0036]104 (FIG. 1) communicate withsearch server106 viaregistration interface212.Registration interface212 allowsencoders104 to provide descriptive information regarding the live content that they can stream to client computers. This descriptive information can then be added tocontent database112 and used for searches bysearch engine214. Descriptive information can be maintained byserver106 for any live content that can be provided byencoders104.
[0037]Database controller216 manages thedatabases112,114, and116. This management includes both adding entries to and removing entries fromdatabases112,114, and116.
Live content or presentations available from[0038]encoders104 can be either pre-scheduled or non-scheduled. Pre-scheduled presentations refer to presentations that have been registered withsearch server106 as occurring in the future (e.g., not already in progress and not starting within the next five minutes). Descriptive information regarding pre-scheduled presentations (e.g., presentation title, key words describing the content of the presentation, and encoder(s) from which the presentation will be available) can be provided toserver106 from one of theencoders104 or some other source, either via the network108 (FIG. 1) or alternatively some other delivery mechanism (e.g., a magnetic or optical disk).
Non-scheduled presentations refer to presentations that have not been registered with[0039]search server106 as occurring in the future. A non-scheduled presentation is registered withserver106 as the presentation is about to begin (e.g., within the next five minutes) or shortly after it has begun. The presentation can be registered by an encoder104 (e.g., theencoder104 that will be streaming the live content), or alternatively some other source. As part of the registration process,server106 is provided with descriptive information regarding the presentation.
FIG. 4 illustrates entries of an exemplary content database in more detail. FIG. 4 is described with additional reference to components in FIG. 3. Each entry in[0040]content database112 includes data for one or more of the following fields:title230,source232,duration234, current characteristic(s)236, anddescriptive information238.Content database112 can be stored in volatile memory (e.g., RAM), non-volatile memory (e.g., a magnetic disk drive), or a combination thereof.
[0041]Title field230 includes a descriptive title of the presentation.Source field232 identifies the encoder(s)104 from which the presentation can be obtained.Duration field234 identifies, for some entries, the duration of the presentation; in other entries, the duration data is not included. Characteristics field236 optionally identifies the current characteristics for the presentation (i.e., one or more characteristics describing the portion of the presentation currently being presented or about to be presented). Any of a wide variety of characteristics can be included for the presentation, such as the current topic (as illustrated in FIG. 4), the name of the current speaker, the gender of the current speaker, the color of the current speaker's clothing, etc.Descriptive information field238 provides various descriptive information that describes the content of the presentation.
[0042]Content database112 maintains information identifying each of the currently available live presentations that is registered withserver106. Information regarding pre-scheduled presentations that are not currently available (or shortly will be available) from anencoder104 is maintained in scheduleddatabase116. Alternatively, such information could be included incontent database112 and simply marked as “invalid” until the presentation is available from anencoder104.
In the illustrated example, each current live presentation has an associated entry in[0043]database112. When a pre-scheduled presentation is about to begin (e.g., it is scheduled to begin shortly, such as within two minutes), database controller216 (FIG. 3) loads descriptive information corresponding to the presentation into an entry ofdatabase112. In the case of pre-scheduled presentations, this descriptive information is loaded frompre-scheduled presentations database116. In the case of non-scheduled presentations, this descriptive information is received directly fromregistration interface212.
When a presentation is over, the entry in[0044]database112 corresponding to the presentation is deleted.Server106 is provided with an indication of the duration of a live presentation from the encoder or other device that registered the presentation withserver106. In one implementation, this indication of the duration is a time period or “run time” for the presentation. For example, an encoder may indicate that a particular live presentation is going to be available between 2:00 p.m. and 4:00 p.m. on Jan. 1, 2000, or that a particular live1 presentation is going to last for 45 minutes.Database controller216monitors content database112 for presentations whose time period or “run time” has passed, and deletes the corresponding entries fromdatabase112. According to another implementation, this indication of the duration of the presentation is simply a “presentation over” message or similar indicator. For example, an encoder may register for a current live presentation, and then send a “presentation over” message to theserver106 when the presentation has completed. Upon receipt of the “presentation over” message,database controller216 deletes the entry corresponding to the presentation fromdatabase112.
In one implementation of the invention,[0045]database controller216 also includes a timeout control that monitors the length of time that entries have been indatabase112. If a “presentation over” message is not received for a live presentation within a default period of time, thencontroller216 assumes that a “presentation over” message was mistakenly not sent (or was lost in transit) and removes the entry corresponding to the live presentation fromdatabase112.
Additionally, in another implementation of the invention a presentation that is scheduled for a particular duration (e.g., 90 minutes, or from 2:00 p.m. to 4:00 p.m.) may be extended. The duration can be extended by the encoder[0046]104 (or other device) sending a message toserver106 to change the duration in the corresponding entry ofdatabase112. For example, the message may indicate to change “90 minutes” to “110 minutes”, or to change “2:00 p.m. to 4:00 p.m.” to “2:00 p.m. to 5:00 p.m.”. Alternatively, the duration may be extended by the encoder104 (or other device) sending a message toserver106 indicating thatserver106 is to ignore the previously identified duration and that a “presentation over” message or similar indicator will be transmitted toserver106 when the presentation is over.
The[0047]descriptive information field238 of an entry includes data that describes the content of the corresponding presentation. In the illustrated example of FIG. 4, the data includes a set of one or more key words describing the presentation. Alternatively, the data could include a summary or abstract of the presentation, or a textual transcript of the presentation.
The data for[0048]descriptive information field238 can be generated manually or automatically. Manual generation refers to an individual (e.g., the presentation author) creating the data. For example, the author may write a summary or a list of key words for the presentation and provide them to server106 (either directly or via an encoder104).
Automatic generation refers to one of the components, such as an[0049]encoder104 orserver106, using any of a variety of mechanisms to generate data describing the presentation as the presentation occurs. For example, conventional key word generation processes may be employed to identify key words from the presentation. This may be carried out by anencoder104,server106, or some other component coupled tonetwork108. By way of another example, closed captioning information may be used as the data, or conventional speech-to-text conversion techniques may be used to convert audio data into text data.
The information maintained in[0050]content database112 is used bysearch engine214 to respond to search requests received from users of a client computer102 (FIG. 1). A user provides, as part of his or her search request, a set of search criteria and which fields the search criteria should be applied to. The user can provide search requests via any of a wide variety of conventional input mechanisms, such as a graphical user interface (GUI). In the illustrated example, the user is able to search any of the fields incontent database214.Search engine214 compares the user-provided search criteria to each entry in thedatabase112 to determine whether the presentation corresponding to the entry satisfies the search request. Any of a variety of conventional searching algorithms and methodologies can be used. For example, any entry with at least one word matching one of the search criteria may satisfy the search request, an entry may be required to include every word in the search criteria in order to satisfy the search request, etc.
Information regarding presentations that satisfy a search request are provided to the[0051]client computer102 of the user that placed the request. Such information may be the entire entry fromdatabase112, or alternatively a selected portion (e.g., thetitle field230 andsource field232 for the entry). Thesource field232 is provided to the client computer to allow the user to subsequently request the presentation, via the client computer, from the appropriate encoder resource locator (URL) that identifies a particular presentation available from a particular encoder.
Information from each entry that satisfies the search criteria is provided to the user and, if multiple entries satisfy the each criteria, then the user can select one or more presentations based on this information. Alternatively,[0052]server106 may rank the entries based on how well they match the search criteria and return information for only the highest ranking entry (or entries) to the user.
In addition to information describing the overall content of the presentation, current “characteristic” information is also (optionally) included in[0053]database112. Characteristic information describing one or more current characteristics of the presentation is registered withsearch server106 by theencoder104. When one or more of the current characteristics changes, theencoder104 registers the new current characteristic(s) withserver106.Server106, in response, changes the entry incontent database112 corresponding to the presentation to identify the new current characteristics (e.g., by replacing one or more of the current characteristics or by adding a new characteristic(s)). By continually updating the current characteristics, a user can search for particular characteristics without regard for which actual presentation includes the characteristics. For example, a user may be interested in discussions of Microsoft Corporation and can search for the characteristics “Microsoft” or “Bill Gates” across multiple presentations registered withserver106.
A current characteristic has a duration analogous to that of the presentation discussed above. Each characteristic may have its own duration, or multiple characters for a presentation may have the same duration. The duration of the characteristics can be identified explicitly (e.g., the author may indicate that Microsoft Corporation will be discussed from 2:07 p.m. to 2:12 p.m., or that the current characteristic of Microsoft Corporation will be accurate for the next seven minutes, or a “characteristic over” indicator (such as a “cancel characteristic” message) may be transmitted to[0054]server106 from encoder104). Alternatively, the duration of the characteristics can be identified implicitly (e.g., the previous current characteristics are over when new current characteristics information is received).
Current characteristics data can also be generated either manually or automatically, analogous to the generation of data for[0055]descriptive information field238 discussed above. For example, an algorithm may use closed captioning data or a speech-to-text conversion algorithm to obtain a textual version of the presentation. Key words can then be identified from the textual version and if their frequency is high enough (e.g., the word “Microsoft” occurs at least a threshold number of times, such as ten, within a period of time, such as sixty seconds or every 500 words), then those key words are identified as the current topic data.
Current characteristics information can be deleted from[0056]database112 in an immediate manner. That is, as soon as new current characteristics data is received, the previous current characteristics data is deleted. Alternatively, the current characteristic information may be “aged out” ofdatabase112 gradually. For example, if new current characteristics are identified and the key words that caused the identification of the previous current characteristics are not detected within a threshold amount of time (e.g., ten minutes), then the previous current characteristics are deleted fromdatabase112. This aging out can be implemented byserver106, or alternatively can be used byencoder104 in determining when to transmit a “characteristic over” indicator toserver106.
Thus, using characteristics, it can be seen that the results of a search request can vary depending on when during the presentation the search request is made.[0057]
Alternatively, the current characteristics for a presentation can be displayed to the user rather than used for searching. For example, a user may submit a search request that results in multiple live presentations with[0058]descriptive information238 satisfying the search criteria.Search server106 transmits the current characteristics for each of these matching live presentations (as well as other information, such as title230) toclient102 for display to the user. Search11server106 also transmits any changes in the current characteristics for these matching live presentations toclient102. Thus,client102 presents to the user a continually updating display of the current characteristics of the live presentations that satisfy his or her search request.
[0059]Database controller216 also maintainsnotification database114. A user can register a “notification request” withserver106 that includes a search request and a notification type. The search request includes the user's search criteria and the notification type identifies how the user wants to be notified in the event a live presentation begins that matches the search criteria. In one implementation, a user can register an email address, a pager number, a cellular phone (or other telephone) number, etc.
[0060]Database controller216 receives the notification request and places the search criteria and notification type innotification database114.Database controller216 also invokessearch engine214 to determine whether any current entry incontent database112 satisfies the search criteria. If a match is found, then the user is notified in a manner according to the notification type. The notification request may then be removed fromnotification database114, or alternatively left innotification database114 to detect subsequent matches.
If a match is not immediately found, then[0061]database controller216 continues to invokesearch engine214 each time new information is placed incontent database112. Once invoked,search engine214 determines whether the new information results in an entry that matches any of the search criteria of notification requests innotification database114. This search may be compared to all entries incontent database112, or alternatively only to the entries indatabase112 that include the new information.
FIG. 5 shows exemplary steps in a process for allowing searching of live presentations. Steps on the left side of dashed[0062]line250 are carried out by anencoder104 of FIG. 1, and steps on the right side of dashedline250 are carried out bysearch server106 of FIG. 1. These steps may be performed in software. FIG. 5 is described with additional reference to components in FIG. 1.
Initially,[0063]encoder104 sends identifying information for a current live presentation to search server106 (step252). This identifying information is received by server106 (step254), which records the information and makes the information available for user searches (step256). The identifying information is used byserver106 in responding to any subsequent search requests it receives (step258).
While[0064]server106 is performing steps254-258,encoder104 continues to stream the live presentation to any of theclient computers102 that request it until the presentation is over (steps260 and262). When the presentation is over,encoder104 stops streaming the presentation toclient computers102 and sends a “presentation over” indication to server106 (step264).
[0065]Server106 receives the “presentation over” indication from encoder104 (step266) and deletes its record of the identifying information regarding the presentation (step268). Thus, any subsequent search requests will not be compared to the identifying information for that presentation, as that presentation is over.
Alternatively, rather than relying on a “presentation over” indication in[0066]step266,server106 may be informed of the end of the presentation in other manners (such as a pre-programmed duration).
FIG. 6 shows exemplary steps in a process for allowing searching of current characteristic information in live presentations. Steps on the left side of dashed[0067]line280 are carried out by anencoder104 of FIG. 1, and steps on the right side of dashedline280 are carried out bysearch server106 of FIG. 1. These steps may be performed in software. FIG. 6 is described with additional reference to components in FIG. 1.
Initially[0068]encoder104 sends, to searchserver106, current characteristic(s) information for the portion of a live presentation currently being presented (step282).Search server106 in turn receives the current characteristic(s) information (step284).Server106 records the current characteristic(s) information and makes the information available for searching (step286). The characteristic(s) information is used byserver106 in responding to any subsequent search requests it receives (step288).
While[0069]server106 is performing steps284-288,encoder104 continues to stream the live presentation to any of theclient computers102 that request it (step290).Encoder104 also checks whether the current characteristic(s) are over (step292). When the current characteristic(s) are over (e.g., they no longer describe the portion of the live presentation currently being presented),encoder104 sends a “characteristic(s) over” indication to server106 (step294).
[0070]Server106 receives the characteristic(s) over indication from encoder104 (step296) and deletes its record of the characteristic(s) information (step298). Thus, any subsequent search requests will not be compared to the characteristic(s) information for that presentation, as those characteristic(s) are over.
CONCLUSIONThe invention allows for the searching of live presentations. An encoder providing a live presentation registers with a search server, advantageously making information identifying the presentation available for searching only for the duration of the presentation. Additionally, characteristic information identifying current characteristic(s) of the presentation can be registered with the search server only for the duration of that characteristic(s). Thus, the characteristic information is advantageously made available for only as long as that characteristic(s) describes the current portion of the live presentation.[0071]
Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.[0072]