The present invention is directed, in general, to network chat environment and, more specifically, to a system and method for managing the chat load in a chat room.
Communications networks, such as the Internet or World Wide Web (“Web”), have enabled people throughout the world to exchange information and ideas in real-time. One of the most popular information exchanging forums is called a “chat room.” Chat rooms are provided to members (chat clients) of an on-line service provider to allow multiple chat clients to simultaneously engage in real time text conversations with each other. A chat room is administered by a chat server that receives messages from chat clients and distributes the messages to the chat clients registered with the chat room.
Recently, interactive television systems have been developed that incorporate chat room functionality with broadcast television programming. Interactive television systems are capable of delivering conventional audio and video associated with a television program, along with text, graphic images, web pages and other information to television viewers. Such additional information can include chat lines related to the particular broadcast television program. For example, when a viewer selects a chat option while viewing a particular television program, the viewer can be placed in a chat room corresponding to the television program. Text messages from other viewers of the same television program can be superimposed over the broadcasted television program and displayed to the viewer.
However, chat rooms traditionally include only a limited number of chat clients. As the popularity of interactive television increases, the number of chat clients registered with a chat room related to a particular television program could scale well beyond the capabilities of current chat room environments. In order for chat clients to read a particular chat line, that chat line should be displayed for at least three seconds. With potentially thousands of chat clients, each sending text messages, the wait time for broadcasting and displaying the text messages may become too long, resulting in dissatisfied chat clients and unmanageable chat rooms. For example, if a particular chat client reads a chat line and sends a text message responding to the chat line, the text message may not be displayed for minutes, making chat room conversations difficult to follow.
There is therefore a need in the art for a system and method that is capable of managing the chat load in a chat room.
To address the deficiencies of the prior art mentioned above, the system and method of the present invention is capable of managing the chat load in a chat room. The system and method of the present invention is also capable of automatically dividing or merging chat rooms to manage the chat load. The system and method of the present invention is further capable of managing the chat load, while preserving ongoing chat conversations.
The system and method of the present invention comprises a chat controller in a network chat environment. The chat controller manages an initial chat room that has a set of chat clients registered therewith. The chat clients exchange information in the form of a plurality of chat lines in the initial chat room. The chat controller determines a chat load representing a statistic associated with the chat lines and modifies the initial chat room based on the chat load.
In one advantageous embodiment, the chat controller is capable of measuring the chat load against a threshold to determine whether to divide the initial chat room into multiple chat rooms or merge the initial chat room with one or more additional chat rooms.
In a further embodiment of the present invention, a thread management controller is provided in communication with the chat controller to determine one or more associations between the chat lines and identify one or more threads corresponding to the associations. The chat controller modifies the initial chat room based on the threads.
It is an object of the present invention to provide a system and method for managing the chat load in a chat room.
It is another object of the present invention to provide a system and method: for automatically dividing or merging chat rooms to manage the chat load.
It is also an object of the present invention to provide a system and method for preserving chat conversations while managing the chat load.
The foregoing has outlined rather broadly the features and technical advantages of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features and advantages of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.
Before undertaking the Detailed Description of the Invention, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise” and derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller,” “processor,” or “apparatus” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular. controller may be centralized or distributed, whether locally or remotely. In particular, a controller may comprise one or more data processors, and associated input/output devices and memory, that execute one or more application programs and/or an operating system program. Definitions for certain words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior uses, as well as future uses, of such defined words and phrases.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numbers designate like objects, and in which:
Connected to network 50 are chat server 150 and a plurality of chat terminals 10 associated with chat clients. Each chat terminal 10 comprises a monitor 20 or other type of display device for displaying chat lines to the chat client and one or more input devices 30 and 40 for receiving input (e.g., chat lines) from the chat client. For example, each chat terminal 10 can include a keyboard 30 and mouse 40 to enter chat lines into chat terminal 10 for transmission to chat server 150 via network 50. Other input devices (not shown) may include microphone, joystick, game pad, satellite dish, scanner or the like. In addition, chat terminal 10 may include other peripheral output devices (not shown), such as speakers and printers.
Chat server 150 includes input/output (I/O) unit 110 for transmitting and receiving chat lines to and from chat terminals 10 via network 50. Chat server 150 further includes chat controller 120 for facilitating communication (e.g., chat lines) between chat terminals 10 via network 50 in real time. Chat controller 120 manages one or more chat rooms, each having one or more chat terminals 10 registered therewith. Chat controller 120 receives chat lines from registered chat terminals 10 associated with a particular chat room and retransmits received chat lines to each chat terminal 10 registered with the particular chat room.
In accordance with embodiments of the present invention, chat controller 120 is further capable of managing the chat load in each of the chat rooms controlled by chat controller 120. In one embodiment, chat controller 120 is operable to determine a chat load representing a statistic associated with the chat lines in a particular chat room and modify the particular chat room based on the chat load. For example, as will be described in more detail below in connection with
In a further embodiment, chat server 150 also includes thread management controller 130 in communication with chat controller 120. Thread management controller 130 is operable to determine one or more associations between the chat lines in a particular chat room using one or more thread management techniques, which will be described in more detail below, and identify one or more threads corresponding to the associations. As used herein, the term “thread” refers to a set of chat lines in a particular time interval that are related to each other by one or more associations. A particular chat line can be related to zero (new thread) or more previous chat lines. Chat controller 120 is further operable to modify the chat room based on the threads. For example, in one embodiment, thread management controller 130 assigns each of the chat lines to one of the threads and determines the chat clients (chat terminals 10) associated with the chat lines in each of the threads. Chat controller 120 can divide or merge chat rooms based on the threads in each chat room to preserve chat conversations.
Various thread management techniques can be used by thread management controller 130 to identify threads in chat rooms. For example, in one embodiment, thread management controller 130 can determine the probability that a particular chat line relates to a previous chat line. If a chat line is sent within a predefined time interval [a,b], the probability is high that the chat line refers to an immediately preceding chat line, and therefore in the same thread. Outside of the predefined time interval [a,b], the probability is low. The predefined time interval [a,b] can be determined by the typical chat client reaction speed, taking into consideration both the time that a chat client begins to type a response and the time the chat client sends the response.
In another embodiment, thread management controller 130 can use a keyword match technique to structure chat room conversations. For example, if a chat line is sent that contains keywords of a previous chat line, there is a high probability that the chat line is a reaction to the previous chat line or at least in the same thread. In a further embodiment, thread management controller can use a frequent interaction technique to identify threads in a chat room. If two chat clients interact frequently, there is a high probability that two nearby chat lines of these two chat clients are related, and thus in the same thread. For example, if two chat clients have each other in their on-line “buddy list,” there is a high probability that chat lines of these two chat clients are related, and thus in the same thread.
In still a further embodiment, thread management controller 130 can use a same client technique to determine the associations between chat lines in a chat room. With a certain probability, the chat lines transmitted by a particular chat client relate to each other. The probability increases when an earlier chat line is unfinished (broken sentence), contains a spelling error, is very long or indicates a list. In an additional embodiment, thread management controller 130 can use a grammar analysis technique to determine threads in a chat room. For example, thread management controller 130 can identify question-answer pairs between chat lines. In a further additional embodiment, thread management controller 130 can use a “popular” chat client filter technique to determine which thread(s) a particular chat line belongs to. For example, thread management controller 130 can track “popular” chat clients that elicit numerous non-negative reactions and can splice the chat lines of a “popular” chat client into one or more threads or one or more chat rooms to keep the chat conversation lively. Any reactions to the spliced-in chat lines can be made visible to the “popular” chat client, regardless of which thread or chat room the “popular” chat client is assigned to.
In still a further additional embodiment, thread management controller 130 can use a filter technique to determine which thread a particular chat line belongs to. For example, if a thread is filtered from a particular chat client, such that the particular chat client does not see the chat lines of the thread, there is a high probability that a chat line transmitted by the particular chat client is not associated with that thread. In still a further additional embodiment, thread management controller 130 can use an identification technique to determine the association between chat lines. Chat clients can explicitly refer to a previous chat line in their chat line. For example, a chat client can click using mouse 40 on a previous chat line before sending their chat line, or a chat client can refer to a previous chat line by a chat line identifier. As an example, a single letter can be provided next to each chat line, and the letters can be reused as chat lines scroll up. As another example, thread names can be assigned by chat clients or thread management controller 130. It should be understood that the thread management techniques described herein are merely illustrative of the many types of techniques that can be used. Thus, the present invention is not limited, to the thread management techniques mentioned above.
In other embodiments, memory 16 could also store a thread management application (not shown) that is capable of providing additional local filtering based on threads to deal with temporary spikes in chat load. For example, if in a given time period, only I chat line can be shown, and there is more than one chat line in the queue, the local thread management application could filter the chat lines that are associated with a non-active thread (i.e., within a thread that the chat client has not recently submitted a chat line).
Broadcast server 320 includes transceiver 324 for transmitting broadcast signal 315 to communication device 305. Broadcast server 320 further includes chat controller 120 for facilitating communication (e.g., chat lines) between communication devices 305 in real time. Chat controller 120 manages one or more chat rooms associated with television program 322, each having one or more communications devices 305 registered therewith. Chat controller 120 receives chat lines from registered communications devices 305 associated with a particular chat room and provides chat lines to transceiver 324 for broadcast with television program 322 over broadcast signal 315 to each communications device 305 registered with the particular chat room. Chat controller 120 further managing the chat load in each of the chat rooms controlled by chat controller 120, as described above in connection with
Broadcast server 320 also includes thread management controller 130 in communication with chat controller 120. Thread management controller 328 is operable to determine one or more associations between the chat lines in a particular chat room using one or more thread management techniques, as described above, and identify one or more threads corresponding to the associations. Chat controller 120 is further operable to modify the chat rooms based on the associated threads.
Communication device 305 typically includes a receiver 330, such as a set-top box, connected to an antenna 340, a display 310, such as a monitor or television set, and a back channel interface 350 to broadcast server 320 via network 50. Receiver 330 may be integrated into display 310 or be a stand-alone device, such as a set-top box. Receiver 330 comprises transceiver 332, processor 334 and memory 337. Transceiver 332 is operable to transmit chat lines to broadcast server 320 over back channel interface 350 and receive broadcast signal 315 from broadcast server 320 via antenna 340. Processor 334 can be any microprocessor, microcontroller or programmable processing device. Memory 336 can be any type of computer readable media, including but not limited to random access memory (RAM), read only memory (ROM), flash memory, EEPROM, disk drive (e.g., hard disk drive, magnetic disk drive or optical disk drive), floppy disk, tape drive, CDROM, DVD or any other type of storage device.
Memory 336 provides non-volatile storage of computer readable instructions, data structures and other data for computer 10. For example, memory 336 can store web browser 337 and chat application 338. Processor 334 runs chat application 338 to separate the interactive portion of the signal from the AN portion of the signal. Processor 334 runs web 5 browser 337 to establish back channel interface 350 to broadcast server 320 via network 50 to register with a chat room. Processor 334 further runs chat application 338 and web browser 337 to construct a display signal that integrates the AN portion and the interactive portion of the broadcast signal in a suitable format, as requested by the chat client, and to provide the display signal to display 310 for display thereon.
In other embodiments, memory 336 could also store a thread management application (not shown) that is capable of providing additional local filtering based on threads. For example, all chat lines can be broadcast in broadcast signal 315 and the filtering can be done at the receiver 330. As another example, two signals can be broadcast to receiver 330. The normal broadcast signal 315 can include a few non-personalized chat lines relevant to the topic 15 associated with the chat room that the chat client is currently registered, and a second signal (not shown) can include the personalized (filtered) chat lines associated with the chat room that the chat client is currently registered with. Receiver 330 can replace part of the broadcasted, non-personalized chat lines with the personalized chat lines to enable the chat client to view the personalized chat lines and other relevant chat lines.
In
In
In other embodiments, chat clients registered with a low chat room (e.g., CR1610) can be distributed over multiple chat rooms (e.g., CR2612 and CR3614). In further embodiments, chat clients from CR2612 and/or CR3614 can be moved over to the low chat room CR1 to balance the load in all chat rooms 610, 612 and 614. It should be understood that the number of chat rooms 610, 612 and 614 merged and/or modified can be two or greater in any possible load balancing configuration. It should further be understood that chat clients from a low chat room can be merged with chat clients from one or more additional chat rooms based on conversation threads in the chat rooms.
While the present invention has been described in detail with respect to certain embodiments thereof, those skilled in the art should understand that they can make various changes, substitutions, modifications, alterations and adaptations in the present invention without departing from the concept and scope of the invention in its broadest form.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2005/051282 | 4/19/2005 | WO | 00 | 10/19/2006 |
Number | Date | Country | |
---|---|---|---|
60563999 | Apr 2004 | US |