28
Printed by Jouve, 75001 PARIS (FR) Europäisches Patentamt European Patent Office Office européen des brevets (19) EP 1 209 849 A2 *EP001209849A2* (11) EP 1 209 849 A2 (12) EUROPEAN PATENT APPLICATION (43) Date of publication: 29.05.2002 Bulletin 2002/22 (21) Application number: 01308861.2 (22) Date of filing: 18.10.2001 (51) Int Cl. 7 : H04L 12/18 (84) Designated Contracting States: AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR Designated Extension States: AL LT LV MK RO SI (30) Priority: 19.10.2000 US 690460 (71) Applicant: International Business Machines Corporation Armonk, NY 10504 (US) (72) Inventors: Colson, James, c/o IBM United Kingdom Ltd. Winchester, Hampshire S021 2JN (GB) • Eagle, Brian Lee White, IBM United Kingdom Ltd. Winchester, Hampshire S021 2JN (GB) (74) Representative: Richards, John Peter IBM United Kingdom Limited Intellectual Property Department Hursley Park Winchester Hampshire SO21 2JN (GB) (54) Apparatus for persistent chat sessions (57) Method, system, apparatus, and computer pro- gram product are presented for providing persistent chat sessions. A user may select a user identifier of another user who is not a participant in the chat session and then request to invite the non-participant to join the chat ses- sion. A chat application then retrieves a chat session context for the chat session and places the chat session context into the chat session invitation. The invitation is then sent to the non-participant, who may review the chat session context in order to decide whether or not to join the chat session after reviewing the chat session context.

Apparatus for persistent chat sessions - EP 1209849 A2

Embed Size (px)

Citation preview

Printed by Jouve, 75001 PARIS (FR)

Europäisches Patentamt

European Patent Office

Office européen des brevets

(19)

EP

1 20

9 84

9A

2*EP001209849A2*(11) EP 1 209 849 A2

(12) EUROPEAN PATENT APPLICATION

(43) Date of publication:29.05.2002 Bulletin 2002/22

(21) Application number: 01308861.2

(22) Date of filing: 18.10.2001

(51) Int Cl.7: H04L 12/18

(84) Designated Contracting States:AT BE CH CY DE DK ES FI FR GB GR IE IT LI LUMC NL PT SE TRDesignated Extension States:AL LT LV MK RO SI

(30) Priority: 19.10.2000 US 690460

(71) Applicant: International Business MachinesCorporationArmonk, NY 10504 (US)

(72) Inventors:• Colson, James, c/o IBM United Kingdom Ltd.

Winchester, Hampshire S021 2JN (GB)• Eagle, Brian Lee White, IBM United Kingdom Ltd.

Winchester, Hampshire S021 2JN (GB)

(74) Representative: Richards, John PeterIBM United Kingdom LimitedIntellectual Property DepartmentHursley ParkWinchester Hampshire SO21 2JN (GB)

(54) Apparatus for persistent chat sessions

(57) Method, system, apparatus, and computer pro-gram product are presented for providing persistent chatsessions. A user may select a user identifier of anotheruser who is not a participant in the chat session and thenrequest to invite the non-participant to join the chat ses-sion. A chat application then retrieves a chat sessioncontext for the chat session and places the chat sessioncontext into the chat session invitation. The invitation isthen sent to the non-participant, who may review thechat session context in order to decide whether or notto join the chat session after reviewing the chat sessioncontext.

EP 1 209 849 A2

2

5

10

15

20

25

30

35

40

45

50

55

Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

[0001] The present invention relates to an apparatusfor multiuser communication using chat sessions.

2. Description of Related Art

[0002] The amount of digital communication hasgrown exponentially along with the growth of the Inter-net. While most Internet-based personal communica-tion is in the form of electronic mail, or e-mail, new formsof digital communication continue to be developed.Some types of communication that existed before thecommercial use of the Internet have evolved into Web-based services, such as electronic bulletin boards thatnow exist as Web-based newsgroups. Other relativelynew forms of communication, such as instant messag-ing and chat services, have also become quite common.[0003] Each of these types of digital communicationhave their own characteristics that make one form ofcommunication more desirable than another form ofcommunication in a given circumstance. For example,newsgroups have the advantage of opening a discus-sion to a wide audience, possibly all Internet users.While an open newsgroup may draw a wider range ofinformation in its posted responses, newsgroups havethe disadvantage of not being private and of not havingan implied time response period. In contrast, e-mail isrelatively secure between two or more parties, and animplied etiquette allows one to assume that an e-mailmessage will be answered by a receiver of an e-mailmessage within a relatively short time period.[0004] Instant messaging and chat services are rela-tively secure to the parties participating in a given com-munication session, yet these forms of communicationalso have the advantage of being a real-time form ofcommunication. In fact, instant messaging serviceshave become popular mainly as a real-time alternativeto e-mail. A typical instant messaging service containsa subset of the functions of a typical chat service, andan instant messaging service can usually be consideredas a type of simplified chat service between two users.[0005] In addition to their differences in an implied re-sponse period and in a presence or absence of privacy,these various forms of communication also vary in theirability to provide a context for an ongoing discussion.Newsgroup messages can be stored for long periods oftime, the length of which may be at the whim of the news-group moderator or the owner of the newsgroup server.The newsgroup messages are usually organized as ahierarchy of discussion threads that allows users to readprevious messages within a thread in order to obtain acontext for the current point of discussion.[0006] Discussions that occur through e-mail may lin-

ger for long periods of time. A user might save e-mailmessages for months in order to have an archive of adiscussion that may have evolved over a period ofmonths. These e-mail messages are usually placed intouser-created folders that provide the user with an organ-izational hierarchy of messages, and the folders thenrepresent threads and sub-threads of the discussion.While e-mail message folders do not have a self-organ-izing characteristic like newsgroups, some e-mail appli-cations provide automatic filtering functions for helpingto organize incoming e-mail.[0007] In order to preserve a discussion thread, a usermay also include an original message or string of mes-sages in a reply message. By including the e-mail mes-sage history, one maintains the context of the discussionwithin the exchanged e-mail messages.[0008] Both e-mail messages and newsgroup mes-sages can be archived. Some instant messaging andchat services have a disadvantage of lacking a historicalarchive. Without an archive of past portions of a discus-sion, i.e., without a context, a new participant in a chatsession cannot understand why a particular issue is cur-rently being discussed. In addition, instant messagingand chat services also have a disadvantage of lackinga self-organizing characteristic similar to discussionthreads in a newsgroup.[0009] Therefore, it would be advantageous to pro-vide an apparatus for generating a historical archive forinstant messaging and chat services.

SUMMARY OF THE INVENTION

[0010] This object is met by the invention claimed inthe appended claims. An embodiment of the inventionprovides persistent chat sessions. A user may select auser identifier of another user who is not a participant inthe chat session and then request to invite the non-par-ticipant to join the chat session. A chat application thenretrieves a chat session context for the chat session andplaces the chat session context into the chat sessioninvitation. The invitation is then sent to the non-partici-pant, who may review the chat session context in orderto decide whether or not to join the chat session afterreviewing the chat session context. A chat session con-text for a chat session may be stored or archived withina newsgroup, after which users may submit newsgroupmessages that are also stored within the chat sessioncontext. A stored chat session context or a portion of astored chat session context can be preloaded into anewly created chat session as a chat session contextfor the newly created chat session. A chat session con-text may be stored or presented as a hierarchically or-ganized tree in which participating users in the chat ses-sion are represented as nodes of the tree and in whichbranches in the tree represent related chat sessions. Achat session context may also be stored or presentedas a hierarchically organized tree in which discussiontopics in the chat session are represented as nodes of

1 2

EP 1 209 849 A2

3

5

10

15

20

25

30

35

40

45

50

55

the tree and in which branches in the tree represent re-lated chat topics.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] An embodiment of the invention will be de-scribed in conjunction with the accompanying drawings.

Figure 1A depicts a typical distributed dataprocessing system in which the present inventionmay be implemented;Figure 1B depicts a typical computer architecturethat may be used within a data processing systemin which the present invention may be implemented;Figure 2A shows an example of a typical graphicaluser interface for a chat session;Figure 2B shows an example of a typical invitationalert dialog box that requests a user's participationwithin a chat session;Figure 2C shows an example of a typical graphicaluser interface for a chat session that would be seenafter a new user has joined the chat session;Figure 3A shows a chat session stored in a hierar-chical tree structure in which the nodes of the treerepresent the users of a chat session in accordancewith a preferred embodiment of the present inven-tion;Figure 3B shows an expansion of the hierarchicaltree structure shown in Figure 3A;Figure 3C shows a further expansion of multiplechat sessions represented within a hierarchical treestructure;Figure 3D shows a stored chat session represent-ed as a hierarchical tree structure in which thenodes of the tree represent the topics of discussionwithin a chat session;Figure 3E shows an expansion of the hierarchicaltree structure shown in Figure 3D;Figure 3F shows a selection of a subtopic withinthe hierarchical tree structure shown in Figure 3E;Figure 3G shows a "flat view" of a stored chat ses-sion;Figure 3H shows the processing options that areavailable to a user who wants to initiate a chat ses-sion;Figure 3I shows an invitation dialog box for request-ing a user's participation within a chat session in-cluding chat session context in accordance with apreferred embodiment of the present invention;Figures 3J-3K show invitation alert dialog boxesthat request a user's participation within a chat ses-sion in which each dialog box contains a chat ses-sion context in accordance with a preferred embod-iment of the present invention;Figure 4 shows an example of an XML file contain-ing a chat session context that may be transferredbetween chat session participants or that may bestored when archiving the chat session;

Figure 5 is a block diagram depicting componentswithin a chat application or chat applet;Figures 6A-6B show graphical user interface win-dows for a messaging application that may be usedto display e-mail messages, newsgroup messages,and chat session messages;Figure 7 is a flowchart depicting a method for usinga chat session context in a chat session invitationthat is sent to a non-participant user; andFigure 8 is a flowchart depicting a method for stor-ing a chat session context within a newsgroup sothat a discussion may continue by using newsgroupmessages.

DETAILED DESCRIPTION OF THE EMBODIMENT

[0012] With reference now to the figures, Figure 1Adepicts a typical network of data processing systems,each of which may implement the present invention.Distributed data processing system 100 contains net-work 101, which is a medium that may be used to pro-vide communications links between various devices andcomputers connected together within distributed dataprocessing system 100. Network 101 may include per-manent connections, such as wire or fibre optic cables,or temporary connections made through telephone orwireless communications. In the depicted example,server 102 and server 103 are connected to network 101along with storage unit 104. In addition, clients 105-107also are connected to network 101. Clients 105-107 andservers 102-103 may be represented by a variety ofcomputing devices, such as mainframes, personal com-puters, personal digital assistants (PDAs), etc. Distrib-uted data processing system 100 may include additionalservers, clients, routers, other devices, and peer-to-peer architectures that are not shown.[0013] In the depicted example, distributed dataprocessing system 100 may include the Internet withnetwork 101 representing a worldwide collection of net-works and gateways that use various protocols to com-municate with one another, such as LDAP, TCP/IP, HT-TP, etc. Of course, distributed data processing system100 may also include a number of different types of net-works, such as, for example, an intranet, a local areanetwork (LAN), or a wide area network (WAN). For ex-ample, server 102 directly supports client 109 and net-work 110, which incorporates wireless communicationlinks. Network-enabled phone 111 connects to network110 through wireless link 112, and PDA 113 connectsto network 110 through wireless link 114. Phone 111and PDA 113 can also directly transfer data betweenthemselves across wireless link 115 using an appropri-ate technology, such as Bluetooth™ wireless technolo-gy, to create so-called personal area networks or per-sonal ad-hoc networks. In a similar manner, PDA 113can transfer data to PDA 117 via wireless communica-tion link 116.[0014] The present invention could be implemented

3 4

EP 1 209 849 A2

4

5

10

15

20

25

30

35

40

45

50

55

on a variety of hardware platforms; Figure 1A is intend-ed as an example of a heterogeneous computing envi-ronment and not as an architectural limitation for thepresent invention.[0015] With reference now to Figure 1B, a diagramdepicts a typical computer architecture of a dataprocessing system, such as those shown in Figure 1A,in which the present invention may be implemented. Da-ta processing system 120 contains one or more centralprocessing units (CPUs) 122 connected to internal sys-tem bus 123, which interconnects random access mem-ory (RAM) 124, read-only memory 126, and input/outputadapter 128, which supports various I/O devices, suchas printer 130, disk units 132, or other devices notshown, such as a sound system, etc. System bus 123also connects communication adapter 134 that providesaccess to communication link 136. User interface adapt-er 148 connects various user devices, such as keyboard140 and mouse 142, or other devices not shown, suchas a touch screen, stylus, microphone, etc. Displayadapter 144 connects system bus 123 to display device146.[0016] Those of ordinary skill in the art will appreciatethat the hardware in Figure 1B may vary depending onthe system implementation. For example, the systemmay have one or more processors and one or moretypes of non-volatile memory. Other peripheral devicesmay be used in addition to or in place of the hardwaredepicted in Figure 1B. In other words, one of ordinaryskill in the art would not expect to find similar compo-nents or architectures within a network-enabled phoneand a fully featured desktop workstation. The depictedexamples are not meant to imply architectural limitationswith respect to the present invention.[0017] In addition to being able to be implemented ona variety of hardware platforms, the present inventionmay be implemented in a variety of software environ-ments. A typical operating system may be used to con-trol program execution within each data processing sys-tem. For example, one device may run a Unix™ oper-ating system, while another device contains a simpleJava™ runtime environment. A representative compu-ter platform may include a browser, which is a wellknown software application for accessing hypertext doc-uments in a variety of formats, such as graphic files,word processing files, Extensible Markup Language(XML), Hypertext Markup Language (HTML), HandheldDevice Markup Language (HDML), Wireless MarkupLanguage (WML), and various other formats and typesof files. Hence, it should be noted that the distributeddata processing system shown in Figure 1A is contem-plated as being fully able to support a variety of peer-to-peer subnets and peer-to-peer services.[0018] The present invention may be implemented ona variety of hardware and software platforms, as de-scribed above. More specifically, though, the present in-vention is directed to providing a method and system forpersistence of chat sessions. As background, a typical

chat service is described before describing the presentinvention in more detail.[0019] A chat session is a communication session be-tween two or more users. Once a chat session has beeninitiated, a user may enter content into an applicationwindow within a graphical user interface, after which theuser-generated content is placed into an appropriatelyformatted message or messages. These messages arethen transmitted, broadcast, or delivered across a com-munication network to the other participants in the chatsession in substantially real-time.[0020] With reference now to Figure 2A, a diagramshows an example of a typical graphical user interfacefor a chat session. Chat services may support one ormore chat sessions that involve many users accessinga global communications network in many geographicalregions. Typically, a chat session is implemented usingsome type of metaphorical user interface, while chatsessions may also comprise voice messaging. For ex-ample, a chat session may occur within a chat room,which is a type of virtual conference room. A user canenter text by typing on a keyboard, and the entered textwill appear on the monitors of all of the other participantsin the chat session in a special section of an applicationwindow. The input from each participant is usuallymarked with some type of indicator showing which userhas inputted each response, such as prefixing each re-sponse with the user identifier of the responder.[0021] Window 200 is a typical browser applicationwindow, as labelled by title bar 202. In this case, themain application window is a typical browser windowrunning a chat applet within the browser. Menu bar 204contains typical menus for controlling the application.Buttons 206 provide typical controls for commonly usedbrowser functions. Alternatively, a dedicated applicationmay be used solely for chatting or messaging purposes.[0022] Label 207 provides the name of the currentchat room, while text entry field 208 provides an area inwhich a user or chatter may input text that will appearwithin the chat room. Chat text area 210 contains theprevious input in association with an identifier of the per-son who inputted a particular portion of the content.[0023] Most chat services provide the ability to inputa user identifier of a person who is not participating in achat session and to invite the person to participate in thecurrent chat session. Users can usually see a list of theparticipants who are in the chat room, and the list maychange over time as users join or disjoin the chat ses-sion.[0024] List 212 shows a list of the persons who arecurrently registered for the chat room and supposedlyparticipating in the current discussion. Each user iden-tifier may have other associated visual indicators thatprovide status information on the user's participationwithin the chat room. "User Profile" button 214 allowssomeone to obtain a user profile for a particular partici-pant in order to learn more about the person, e.g., po-sition within a company, location, etc., as appropriate for

5 6

EP 1 209 849 A2

5

5

10

15

20

25

30

35

40

45

50

55

the context of the chat room. In this particular example,the chat session might be executing on a secure chatserver within a corporation. By selecting or highlightinga user identifier in list 212 and the choosing "User Pro-file" button 214, a user profile for the selected user canbe retrieved. "Find User" button 216 performs a searchfor a user profile or user identifier, which could be per-formed by searching through an employee database.[0025] "Change Room" button 218 allows a user tomove from one chat room to another chat room. "CreateRoom" button 224 allows a user to create a new room,which may be used for spawning a related or an unre-lated discussion from the current discussion that is oc-curring in the current chat room. The person that createsa room may have special controls visible only to the per-son that created the room, such as "Close Room" button222. Some chat services provide the ability to designateone or more users as discussion moderators who pos-sess super-user privileges for controlling the participa-tion of other users. Other chat services give special priv-ileges to persons that create a chat room. In this manner,the chat room can be assumed to be self-moderating inthat specially designated persons, such as the creatorof the room, can maintain control of the execution of thechat room.[0026] Many chat services are not text-only and incor-porate other graphical, video, and audio features. Win-dow 200 contains "Talk" button 224 for inputting voicedata into a microphone that will be broadcast to the otherparticipants. "Talking" indicator 226 shows the name ofthe user who is currently talking within the chat room.Typically, the talk feature works like a radio channel inwhich the users must regulate themselves from talkingover each other. The chat session may be conductedsolely using voice input and sound output.[0027] Alternatively, the voice input may be convertedto text, either on the sending client, the receiving client,or an intermediate server, before being either broadcastor displayed to other users. Conversely, any text that isreceived by another user may be converted into voicebefore playback for a given user. It is contemplated thatthe form of the presented data may vary at the option ofthe receiving user such that the user may control themanner in which data is presented to the user: only text;only voice; a mixture of text, video, and voice dependingupon the sending user; automatic selection of data pres-entation options that depend upon the capabilities of theplayback platform, etc. Hence, one of ordinary skill inthe art will understand that the present invention is notlimited by the format of the data that is input by a givenuser or output to a given user.[0028] Instant messaging is a type of chat service thattypically only allows two users to participate. A simpleinstant message application or window may contain asimple text display/output area, a text entry field, and amenu list of persons to whom a user frequently sendsmessages. After connecting with a another user, mes-sages can be sent back and forth between the users.

Instant messaging can be combined with a chat roomso that users of the chat application can send quick mes-sages to other users without interrupting the flow of themain discussion in the chat room in a manner similar towhispering between persons within a conference room.For example, window 200 contains "Instant Message"button 228, which allows someone in the chat sessionto send another instant message to another person inthe chat session.[0029] Because a typical instant messaging servicecontains a subset of the functions of a typical chat serv-ice, instant messaging can be considered as a type ofsimplified chat service between two users. In fact, in-stant messaging services may provide voice capabilitiesand other non-text functionality. Hence, for the purposesof the present invention, an instant messaging serviceis considered to be equivalent to a chat session betweentwo users.[0030] Over time, a chat session can grow quitelengthy. Users can scroll through the text window to seepast input from the participants. Chat text area 210 con-tains scroll bar 230 for allowing chat room users to scrollbackward to read previous portions of the discussion.[0031] At times within a discussion, it may become ap-parent that a particular person is not participating in thechat session yet is needed to answers questions andprovide important input. Another user may be invited tojoin a particular chat session by using "Invite" button232. Assuming that the invited person is logged onto thesystem or has some sort of presence on a network, aspecial alert is presented to the invited person that re-quests his/her participation in the chat session.[0032] With reference now to Figure 2B, a diagramshows an example of a typical invitation alert dialog boxthat requests a user's participation within a chat session.Window 250 is an invitation alert dialog showing thename of the chat session which the user is being re-quested to join. Buttons 252 and 254 allow the user toaccept or decline the invitation, respectively.[0033] With reference now to Figure 2C, a diagramshows an example of a typical graphical user interfacefor a chat session that would be seen after a new userhas joined the chat session. After a user has acceptedan invitation to join a chat session, possibly via a dialogbox as shown in Figure 2B, a chat session window isdisplayed to the user, such as window 260 in Figure 2C.Window 260 is similar to window 200 shown in Figure2A except that window 260 is the display that would beseen by a user that has just joined the chat session. Ascan be seen, chat text area 262 in Figure 2C differs fromchat text area 210 in Figure 2A in that chat text area262 lacks a vertical scroll bar. Since the user identifiedby user identifier 264 has just joined the chat session,the chat application for this user does not have a histor-ical record of the chat session. Hence, the new userwould need to obtain a context for the current discussionby asking questions, being given a synopsis from oneof the other participants, etc. A chat session context can

7 8

EP 1 209 849 A2

6

5

10

15

20

25

30

35

40

45

50

55

be defined as the content of a chat session for someprevious period of time at a given point in time.[0034] As noted previously, discussions may occur inmany forms over different discussion periods. A news-group may support a discussion over a long period oftime while organising the threads of discussion to pro-vide an adequate context for perusing the discussion. Adiscussion conducted by e-mail may occur over a shortperiod of time, while a chat session may occur over aneven shorter time period.[0035] Typically, chat sessions are held as a substi-tute for formal conferences because of the informalityallowed by chat sessions and the ability of a chat ses-sion to quickly disseminate a limited amount of informa-tion. However, the temporary nature of chat sessionspresents certain problems.[0036] The present invention recognises the need forpersistence of chat sessions and provides for particularmethods for accomplishing persistence of chat ses-sions. The content of the chat session might contain im-portant information that is not readily available else-where. After the participants are finished with their dis-cussion within the chat session, the chat session is con-cluded by saving the content of the chat session. Chatsessions may be stored in a variety of forms that allowusers to access the content of the chat session after theactive chat session has concluded. Users may then re-fer to information within the stored chat session for avariety of purposes. Figures 3A-3G show several ex-amples of viewing a previously stored chat session. Thestructure of a stored or archived chat session and themethod by which it is stored is discussed in more detailfurther below.[0037] With reference now to Figure 3A, a diagramshows a chat session stored in a hierarchical tree struc-ture in which the nodes of the tree represent the usersof a chat session. Similar numerals throughout Figures3A-3G refer to similar features within the figures.[0038] Window 300 is a browser application window,as labelled by title bar 302. In this example, the mainapplication window is a browser window running a mes-saging services applet within the browser. Alternatively,a dedicated application may be used.[0039] Menu bar 304 contains typical menus for con-trolling the application. Buttons 306 provide typical con-trols for commonly used messaging functions. "UserView" label 307 indicates that the content of the chatsession is being displayed according to the participantsof the selected chat session. Alternatively, label 307may be replaced by a button that allows the user to se-lect a view of chat content area 308 according to otherorganisational categories rather than by the users (orchatters) that participated in a particular chat session.The significance of using the messaging services appli-cation and the user view is explained in more detail fur-ther below.[0040] Chat content area 308 contains a hierarchy ofthe participants in stored chat sessions. Label 310 pro-

vides the category of the chat session that is currentlybeing viewed. Label 312 contains the name of a partic-ular chat session, under this category, as given by thecreator of the chat session. In this example, the userindicators are the e-mail addresses of each person fora chat session that occurred amongst several compa-nies, possibly over the Internet. Alternatively, othertypes of user identifiers may be used, such as logonidentifiers, etc. The creator of the chat session, asshown by user identifier 314, is placed first; the otherparticipants of the chat session, as shown by user iden-tifiers 316-320, are placed in the chronological order inwhich the users joined.[0041] Each participant within the chat content areamay be selected to reveal the detailed content associ-ated with the selected participant. The content may bedisplayed under "Content" column 321.[0042] The hierarchical tree of user identifiers alsoshows that that the tree branch associated with useridentifier 314 is expandable to reveal further informa-tion; similar tree structures for file folder hierarchies arewell known within graphical user interfaces. In this ex-ample, user identifier 322 is included in the list of par-ticipants to show that the user who is identified by thisuser identifier was invited to join the chat session butdeclined or failed to respond. Special graphical indica-tors may be used to indicate chat-related information,and other information may also be shown within the chatsession area, such as the creation date and time for thechat session, which user was responsible for inviting an-other user, etc. This information may be obtained byopening menus, clicking alternate mouse buttons (e.g.,clicking on appropriate icons using a right mouse buttonon a right-handed mouse), etc.[0043] With reference now to Figure 3B, a diagramshows an expansion of the hierarchical tree structureshown in Figure 3A. The tree branches represent addi-tional chat sessions that were spawned from the mainchat session while the nodes of the tree represent userswho participated in the chat session represented as aparticular branch of the tree. Figure 3B differs from Fig-ure 3A in that Figure 3B shows additional branches inthe hierarchical tree, thereby revealing chat session re-lated to the parent chat session and its participating useridentifiers.[0044] As noted above with respect to Figure 3A, thehierarchical tree of user identifiers shows that the treebranch associated with user identifier 314 is expandableto reveal further information. In Figure 3B, the treebranch associated with user identifier 314 has been ex-panded to reveal a child chat session identified by label324 containing participants identified by user identifiers326 and 328. In this example, the user associated withuser identifier 314 has spawned an additional chat ses-sion from the parent chat session identified by label 312.The child chat session is then shown in a subordinatemanner within the tree.[0045] The users that are associated with user iden-

9 10

EP 1 209 849 A2

7

5

10

15

20

25

30

35

40

45

50

55

tifiers 326 and 328 are the same as the users that areassociated with user identifiers 316 and 318. In this ex-ample, these users and the user associated with useridentifier 314 have participated in multiple simultaneouschat sessions.[0046] For example, given the nature of most confer-ences, some participants are only marginally interestedin a specific topic at a given time. During a main discus-sion among a large number of people, a participant in achat session may desire to start another discussion thatis related to the main discussion but much more fo-cused. Because the new discussion may require muchfewer participants than the main discussion, a partici-pant in the main discussion can start another chat ses-sion and invite a subset of participants from the maindiscussion to participate in the new discussion. By start-ing a new discussion, the participants work more effi-ciently by being involved in two related discussions si-multaneously. In addition, since other participants wouldnot be interested in the new discussion, the logical flowof the main discussion is not disturbed by tangentialmatters.[0047] By creating a new chat session, the new dis-cussion is contained, yet the new chat session can beassociated with the main chat session in a parent-childrelationship. The event of spawning child chat sessionscan be recorded and used as branching points within ahierarchical tree of chat sessions with the nodes of thetree representing the participants in each chat session.A methodology for creating the tree of chat sessionsshown in Figures 3A-3C is described below in more de-tail.[0048] With reference now to Figure 3C, a diagramshows a further expansion of multiple related chat ses-sions represented within a hierarchical tree structure. InFigure 3C, the tree branch associated with user identi-fier 326 has been expanded to reveal user identifier 330.In this example, the user associated with user identifier326 has spawned an additional child chat session, iden-tified by user identifier 330, from its parent chat sessionidentified by label 326. The child chat session is thenshown in a subordinate manner within the tree.[0049] In this case, the additional child chat sessionis unnamed and contains only one subordinate useridentifier. The newly revealed chat session may havebeen an instant message exchange between two users,which might be shown by displaying a special graphicalindicator. In this case, user identifier 330 is the same asuser identifier 322, which might be explained by notingthat the user associated with user identifiers 322 and330 was available to participate in the main chat sessionbut declined an invitation, yet the user then communi-cated with one of the participants of the chat session byanswering queries in an exchange of instant messages.[0050] With reference now to Figure 3D, a diagramshows a stored chat session represented as a hierar-chical tree structure in which the nodes of the tree rep-resent the topics of discussion within a chat session.

Similar numerals throughout Figures 3A-3G refer tosimilar features within the figures. However, in Figure3D, chat content area 308 contains the content of a pre-viously stored chat session, similar to chat content area308 in Figure 3A. Label 310 provides the category ofthe chat session that is currently being viewed. Label312 contains the name of a particular chat session underthis category, as given by the creator of the chat sessioneither when the chat session was created or when thechat session was saved or stored.[0051] However, in Figure 3D, the content of the chatsession has been organised by the topics that were dis-cussed during the chat session, rather than the partici-pants who participated in the chat session, as in Figure3A. This display change is indicated by "Topic View" la-bel 340. Again, the user may change the displayed viewby selecting an appropriate menu, button, etc. Thepresent invention may incorporate additional or alterna-tive views of archived chat sessions other than "UserView" and "Topic View". Other types of information mayalso be stored and displayed in association with the chatsessions, and the above examples should not be inter-preted as limiting the types and views of information inthe present invention.[0052] In the example shown in Figure 3D, topics 342and 344 are shown in chat content area 308. These sub-topics have been obtained from the content of the chatsession in a manner which is explained in more detailfurther below.[0053] With reference now to Figure 3E, a diagramshows an expansion of the hierarchical tree structureshown in Figure 3D. As previously shown in Figure 3D,an archived chat session can be presented as a hierar-chical tree structure in which the nodes of the tree rep-resent the topics of discussion within a chat session. InFigure 3E, topics 342 and 344 have been expanded toreveal subtopics 346-352. The topics and subtopicswithin the chat content area may be selected to revealthe detailed content associated with the selected topicor subtopic. The content may be displayed under "Con-tent" column 321.[0054] With reference now to Figure 3F, a diagramshows a selection of a subtopic within the hierarchicaltree structure shown in Figure 3E. Subtopic 352 hasbeen selected by the user who is viewing the stored chatsession. In response, the application shows user iden-tifier 360 of the user who input the content associatedwith the selected subtopic within "From" column 362. Inaddition, the actual content entered by the user is shownas content 362.[0055] With reference now to Figure 3G, a diagramshows a "flat view" of a stored chat session. Rather thanshowing a hierarchical representation of the stored chatsession, the content of the stored chat session can beviewed in a manner similar to that experienced by theoriginal participants to the chat session, which is "flat"in comparison with a hierarchical view. "Flat View" label370 is displayed in response to an appropriate user ac-

11 12

EP 1 209 849 A2

8

5

10

15

20

25

30

35

40

45

50

55

tion, such as a menu selection, during which a user hasselected a flat view of the stored chat session.[0056] In the example in Figure 3G, the user has se-lected chat session 312 for viewing, and the content ofthe stored chat session has been displayed. The partic-ipants of the chat session who authored particular con-tent portions are displayed within "From" column 360;their user identifiers 372 may be identical to the useridentifiers used during the chat session, or the user iden-tifiers may be similar to those shown in Figure 3A inwhich an entire e-mail address for each user is shown.Alternatively, user-defined aliases or nicknames (as de-fined by the user viewing the chat session) may be usedin place of the original user identifiers.[0057] Content sections 374 have been displayedwithin "Content" column 321. Each section or portion ofthe content is associated with the user who authored orinput the content. If the content portion contains non-text information, then an appropriate icon or object maybe shown to indicate that the content contains non-textmaterial.[0058] As shown in Figures 3A-3G, the content of astored or archived chat session may be viewed in a va-riety of manners. Before the chat session is saved, how-ever, certain processing options may need to be speci-fied while creating the chat session in order to preparefor storing the chat session. Alternatively, the archivingoptions may be specified when the chat session is ter-minated. However, after the chat session is stored, otherfeatures for using a stored chat session become possi-ble, including features concerning the initiating of anoth-er chat session.[0059] With reference now to Figure 3H, a dialog boxshows the processing options that are available to a us-er who wants to initiate a chat session. Window 380 isa dialog box that appears to a user when the user re-quests to create a chat room or chat session. A creatinguser may name the chat session using text input field381; the entered name may become the name of thearchived chat session. Using radio buttons 382-383, thecreator may specify whether or not the chat session isto be archived. Alternatively, a system administratormay have previously specified that it is mandatory thatall chat sessions are archived such that an individualuser may not specify that the chat session should notbe archived.[0060] Using radio buttons 384-385, the creator mayspecify whether or not child chat sessions may be forkedfrom the chat session that is being initiated, which wouldbe considered the parent chat session. If so, then eachparticipant would have control options for spawning sub-ordinate chat sessions; if not, then these controls wouldnot appear. Alternatively, the creator of each subordi-nate chat session may be able to specify whether thesubordinate chat session is archived and whether othersubordinate chat sessions may be spawned from thesubordinate chat session. The chat session is createdafter the user selects "Create" button 386, and the user

may abort the creation of the chat session using "Can-cel" button 387.[0061] As noted above, after the chat session isstored, other features for using a stored chat sessionbecome possible. For example, using "Preload" check-box 388, a user may specify the name of an archivedchat session in text entry field 389. When the user se-lects the "Create" button, the previously stored chat ses-sion may be loaded into the chat content area in the chatapplication. In this manner, the chat session begins witha context for framing a newly revived discussion abouta particular issue. Participants in a new chat sessionmay scroll backward (or playback, as appropriate for thetype of content) through the archived chat content to re-fresh their memories about the issue or issues to be dis-cussed in the new chat session.[0062] Figures 3I-3K, described below, show anotherexample in which, after the chat session is stored, thestored chat session may be then be advantageouslyused. As shown in Figure 2C, in the prior art, when auser joins a chat session, the user begins the chat ses-sion without any context for the chat session, and theuser may have missed a significant amount of discus-sion or may have missed some discussion about a par-ticular issue that has some value or importance to theuser.[0063] In other cases, the user may have very littleinformation to decide whether he or she desires to joina particular chat session because only the name of thechat session has been provided along with the invitationto join the chat session. In some cases, a user may joina chat session and then later discover that the chat ses-sion has very little interest to the user.[0064] The present invention overcomes these prob-lems by allowing a user to preview the context of a chatsession, either an archived chat session or a live chatsession, before deciding whether to accept an invitationto join a chat session.[0065] With reference now to Figure 3I, a diagramshows an invitation dialog box for requesting a user'sparticipation within a chat session including chat ses-sion context in accordance with a preferred embodimentof the present invention. Window 390 is an invitation di-alog box that appears when a user has selected a func-tion to invite another user into a chat session. Inviteesmay be selected from list 391; one or more invitees maybe selected at the same time. "Invite" button 392 sendsthe invitation to the selected invitees, and "Cancel" but-ton 393 aborts the invitation function.[0066] "Invite with Chat Context" button 394 sends aninvitation to the selected invitees, yet button 394 addi-tionally sends a chat context to the invitee or invitees.The invitation function may be invoked either during thecreation of a main chat session or during the spawningof a child chat session as is appropriate for the chatevent requested by the inviter. Hence, a chat contextmay be retrieved either from an active chat session orfrom an archived chat session. By receiving a chat con-

13 14

EP 1 209 849 A2

9

5

10

15

20

25

30

35

40

45

50

55

text, the invitee is better able to judge whether to jointhe chat session. Other options may also be availableto the inviter, such as an instant message button for con-ducting a quick conversation between the inviter and in-vitee, which might be useful for allowing the inviter toconvince the invitee to join the chat session.[0067] With reference now to Figures 3J-3K, dia-grams show an invitation alert dialog box that requestsa user's participation within a chat session in which thedialog box contains a chat session context in accord-ance with a preferred embodiment of the present inven-tion. Figure 3J shows a first version of the dialog box,and Figure 3K shows a second version of the dialogbox.[0068] Referring to Figure 3J, window 395 is an invi-tation alert dialog box that appears on an invitee's dis-play to invite the user into a chat session. In this exam-ple, the inviter has elected to invite the invitee while si-multaneously sending the invitee a chat context. Win-dow 395 shows buttons 396 for selecting the type ofview of the chat content. In Figure 3J, the "Flat View"button is selected, and the flat view of the chat sessioncontent is shown in chat content area 397. "Accept" but-ton 398 allows the invitee to join the chat session, and"Decline" button 399 allows the invitee to decline the in-vitation to join the chat session.[0069] Referring to Figure 3K, window 395 shows thesame invitation alert dialog box after the "Topic View"button has been selected. In response, the content inchat content area 397 has been shown in a hierarchicalformat in a manner similar to that shown in Figure 3F.By being able to view a context for a chat session, aninvitee has more information for deciding whether to jointhe chat session. After accepting the invitation to jointhe chat session, the chat session context can be insert-ed into the chat content area of the chat session windowof the invitee. Alternatively, after the invitee has joinedthe chat session, the chat context can be resent to theinvitee so that the invitee has a full context of the chatsession. The format of the chat session context that issent to an invitee may be the same type of format thatis used to archive a chat session.[0070] In some configurations, a distributed chat ses-sion may be centrally controlled by executing on a chatserver with multiple subordinate chat clients, and an of-ficial chat session context may be maintained by thechat server. In that case, a person with control over thecomputer platform supporting the chat server may havecontrol over all chat sessions and chat session contexts.[0071] It should be noted, however, that if the chat ap-plication is executed in client-server architecture, thenthe chat server may exist on any computer platform withenough computational performance to support clients.For example, if the chat sessions do not demand muchperformance in the form of computational resources,then the chat server may operate on a portable comput-ing device. Alternatively, in a peer-to-peer type configu-ration, the chat session could be run equally among chat

applications at each peer.[0072] In any case, each chat session may maintainan independent chat session context. Hence, when an-other user is invited to join a chat session, each chatsession client or peer may send its chat session contextto the invitee. Alternatively, a chat session client mayrequest that the chat server send the official chat ses-sion context to the invitee.[0073] The content of the chat session may be botharchived and sent to chat session participants, such asan invitee, in a variety of formats: a simple text file con-taining line feeds/carriage returns for separating thecontributed content of each participant; a proprietary for-mat; or, preferably, a hierarchically formatted file usingXML.[0074] With reference now to Figure 4, a figure showsan example of an XML file containing a chat sessioncontext that may be transferred between chat sessionparticipants or that may be stored when archiving thechat session. XML is used in many data transfer appli-cations, and the definition and construction of XML Doc-ument Type Definitions (DTD) are well known in the art.The present invention can rely on the ubiquity of XMLtools, such as XML parsers, etc., to format the contentof a chat session as an XML document.[0075] Figure 4 shows an instance of an XML docu-ment containing a chat session context. This type ofXML document can be generated in real-time while thechat session is progressing, or the document can begenerated in a post-processing manner after the com-pletion of the chat session. Each major event within thechat application, such as the creation of a chat session,the addition of a chat session participant, the forking ofthe chat session, etc., may be recorded as an XML entityor element within the XML document. With an appropri-ate DTD, an instance of an XML document representinga chat session can be parsed to obtain a hierarchicalrepresentation of the chat session and then displayedto the user, such as the hierarchical representationsshown in Figures 3A-3F.[0076] Element 402 contains the name of the mainchat session and associated information. Element 404is an example of a portion of the chat session contentin the main chat session as contributed by a chat ses-sion participant. Element 406 records a forking eventduring which a child chat session is spawned from itsparent chat session. Element 408 contains a portion ofthe chat session content in the child chat session. Otherattributes, elements, chat events, etc., may be storedwithin an XML document representing a record of a chatsession.[0077] With reference now to Figure 5, a block dia-gram depicts components within a chat application orchat applet. Chat application 500 provides chat-relatedservices to participants of a chat session. Chat applica-tion 500 accepts user input 501, processes the chat con-tent and chat events of the user input, and sends con-tent/events 502 to other chat participants. Chat applica-

15 16

EP 1 209 849 A2

10

5

10

15

20

25

30

35

40

45

50

55

tion 500 accepts content/events 503 from other chatparticipants, processes the chat content and chatevents from the other users, and presents the proc-essed data to the user as user output 504.[0078] Content parser unit 505 parses the user inputto detect keywords entered by the participants by com-paring the input to keyword index 506. The chat appli-cation can then use the detected keywords to generatetopics and subtopics elements to be placed in the XMLrepresentation of the chat content.[0079] Chat archive/retrieval unit 507 stores and re-trieves the chat content as necessary, possibly in a va-riety of formats. Display format unit 508 processes anydata to be presented to a chat participant, which mightinclude marking content or user identifiers with graphicalsymbols, etc.[0080] The chat application may be operational witha variety of networks. Content broadcast unit 509 for-mats chat content/events for broadcast to other chatparticipants or alternatively transmits chat content/events to a chat server.[0081] In order to generate a hierarchically organisedchat session context, the chat application must keeptrack of numerous events, such as the joining and dis-joining of participants within the chat session, the open-ing and closing of chat rooms and whether those roomshave been forked from other rooms, etc. Chat eventmonitoring unit 510 receives user events, such as invi-tation requests or participant additions, and recordsthese events within the chat session context.[0082] As noted previously, different types of commu-nication services have different advantages within dif-ferent contexts. The exchange of newsgroup messag-es, e-mail messages, chat session messages, and in-stant messages occur over varying time periods, yeteach type of message has similarities.[0083] Many commercially available browsers and e-mail applications allow a user to view newsgroup mes-sages in conjunction with e-mail messages. By notingthese similarities, the present invention also enableschat session messages to be used within a messagingor communication application in a manner similar to e-mail messages and newsgroup messages. Hence, an-other useful purpose for a stored chat session, as pro-vided by the present invention, is the storage of a chatsession within a newsgroup. Referring again to Figures3A-3G, one may now understand the significance of dis-playing the hierarchically organised content from a chatsession within a messaging application or applet.[0084] With reference now to Figures 6A-6B, graph-ical user interface windows specifically show a mannerin which a messaging application may be used to displaye-mail messages, newsgroup messages, and chat ses-sion messages. Window 600 contains representationsof mail server 602, chat server 604, and newsgroupserver 606. In Figure 6A, mail server 602 contains inbox608; chat server 604 contains session 610; and news-group server 606 contains thread 612, but other mail

boxes, session, and threads could be included.[0085] In Figure 6B, chat session 610 has beenmoved to become newsgroup 614. An archived chatsession may be required to be reformatted before it canbe stored as a newsgroup. Appropriate security restric-tions may be imposed to prevent a chat session con-taining sensitive data from being converted into an opendiscussion thread in a newsgroup. Discussion topicsand subtopics can then be operated like discussionthreads and sub threads within the newsgroup. Similar-ly, parent chat sessions and child chat sessions can thenbe operated like discussion threads and subthreadswithin the newsgroup. The archived chat session canbe moved to the newsgroup under manual direction bya user who perhaps has special privileges. Alternatively,it can be moved automatically by the system under theguidance of selected optional rules, such as the age ofthe archived chat session.[0086] With reference now to Figure 7, a flowchart de-picts a method for using a chat session context in a chatsession invitation that is sent to a non-participant userin accordance with a preferred embodiment of thepresent invention. The process begins when a user ac-tivates a chat session (step 702). The chat session maybe activated in a manner that is appropriate to the dis-cussion context, either through an Internet telephonycall, an instant message, creating a chat room, etc.[0087] The user then selects a user identifier of a non-participant invitee to the chat session (step 704). If thechat session is to be an instant messaging session, thenthe invitee would be the second participant to the chatsession. Otherwise, the chat session may have been inprogress for some amount of time before the invitee ischosen. The user then invokes an "Invite" function withinthe chat application in a manner that is appropriate tothe chat application and the user interface available tothe user (step 706). For example, the selections of theuser identifier of the invitee and the invite function maybe performed through voice commands in an Internet-enabled phone or wireless PDA device using voice rec-ognition, etc.[0088] In response, the chat application retrieves thechat session context (step 708). The chat session con-text may be retrieved either from an active chat sessionor from an archived chat session. The chat applicationthen generates the chat invitation request that includesthe retrieved chat session context (step 710). The chatapplication then sends the chat invitation to the selectedinvitee (step 712).[0089] The invitee may then review the chat sessioncontext in the chat invitation to decide whether to acceptor to decline the chat invitation (step 714). If the useraccepts the invitation, then a chat application or appletis started on the invitee's device, or if the invitee is al-ready running a chat application, then the invitee be-comes a participant in the chat session to which the in-vitee was invited. It should be noted that the format ofthe chat invitation request may vary. For example, the

17 18

EP 1 209 849 A2

11

5

10

15

20

25

30

35

40

45

50

55

chat invitation request might by an XML document, orthe chat invitation request could include a Java applet,Microsoft ActiveX control, scripting code, etc., such thatthe receiving user is able to interact with the chat invi-tation in some manner, such as reviewing the contentsof the chat session context in a variety of views andmethods.[0090] With reference now to Figure 8, a flowchart de-picts a method for storing a chat session context withina newsgroup so that a discussion may continue by usingnewsgroup messages in accordance with a preferredembodiment of the present invention. The process be-gins when a set of users have decided to conclude theirdiscussion within an active chat session (step 802). Thechat session may be concluded in a manner which isappropriate for the user interface of the users or of theuser that controls the active chat session.[0091] The chat session is then archived in an appro-priate manner (step 804). For example, the chat sessioncontext may be post-processed to place the chat ses-sion content and chat application events into an XMLdocument, or if the chat session was already being proc-essed in real-time, then archiving the chat session con-text may only require storing the formatted chat sessioncontext.[0092] At some later point in time, the archived chatsession is moved to a newsgroup (step 806). Alterna-tively, the chat session may be archived by storing it im-mediately into a newsgroup. When stored in the news-group, the chat session context for the stored chat ses-sion may become a distinct newsgroup thread. Alterna-tively, when stored in the newsgroup, chat session mes-sages from each user may become distinct threads with-in the newsgroup. Alternatively, discussion topics andsubtopics from the chat session context may becomedistinct threads and subthreads within the newsgroup.[0093] Users with access to the newsgroup may thencontribute messages to the archived chat session withinthe newsgroup (step 808), thereby extending an ongo-ing discussion that may have been commenced withina chat session. Then, at some later point in time, a usermay use the archived chat session, or merely a portionof it, as a chat session context by preloading it into achat application (step 810). Participants in the chat ses-sion may then review the preloaded context to improveand focus the discussion within the chat session.[0094] The advantages of the present inventionshould be apparent in view of the detailed description ofthe invention that is provided above. Discussions aboutparticular issues tend to develop over time, whether thediscussions take place by telephone or by electronicmessages. People tend to pick a communication medi-um based on the expectations about the importance ofa given discussion and the amount and type of informa-tion to be exchanged between participants in a discus-sion.[0095] Chat sessions are usually convened amongstmultiple users for short, impromptu discussions about a

particular issue. Chat sessions are generally expectednot to involve the exchange of copious amounts of in-formation nor to endure for long periods of time. Hence,chat services have lacked methodologies for using chatsessions in ways other than short duration message ex-changes.[0096] The present invention allows a chat session tobe stored for later use. In addition, a chat session con-text, whether from an active chat session or from an ar-chived chat session, can be sent to invited participantsto provide the invitees with information for decidingwhether or not to join in a chat session. The chat sessioncontext can be formatted in a variety of ways such thatthe user can focus attention on pertinent information andextract that information from the chat session context.[0097] By archiving a chat session, the chat sessioncontext can be reused. For example, a chat session con-text may be archived so that the participants may per-form actions that were discussed in the chat session. Atsome later point in time, the users may decide to recon-vene in a chat session to discuss an ongoing issue.Rather than start another chat session, a previously ar-chived chat session context can be reloaded, therebyallowing the users to refresh their memories by review-ing the chat session context and to refer to previous por-tions of the discussion as saved within the chat sessioncontext.[0098] By relocating an archived chat session to anewsgroup, both participants to the chat session andnon-participants may review the contents of the chatsession. Users may then contribute additional messag-es to the newsgroup over time, thereby extending theoriginal discussion from the chat session and expandingthe amount of information within the archived chat ses-sion context. For example, a non-participant to the orig-inal chat session may not only review the chat sessionbut also contribute information that may have beenmissing from the original discussion. As another exam-ple, the original participants may have agreed within theoriginal chat session to report their progress on specificissues to the newsgroup-posted chat session. In thismanner, users may perform real actions over time andthen report their actions and results by posting new mes-sages to the archived chat session within the news-group. In addition, the newsgroup provides a manner forextending an original chat session by spawning morechat sessions over time. For example, a subset of par-ticipants from the original chat session may reconveneto discuss one particular issue amongst many outstand-ing issues from the original chat session. In order to fo-cus on one particular issue, this subset of participantscan reload a portion of the original chat session that isarchived within the newsgroup as a chat session contextfor the new discussion. Assuming that the chat sessioncontext is organized as a hierarchy of topics and sub-topics, the subset of users can load a single subtopicfrom the original chat session. After the discussion isconcluded, the extended discussion of the subtopic is

19 20

EP 1 209 849 A2

12

5

10

15

20

25

30

35

40

45

50

55

then incorporated into the archived chat session withinthe newsgroup. Non-participants to the discussion of thesubtopic may later review the new discussion storedwithin the newsgroup.[0099] It is important to note that while the present in-vention has been described in the context of a fully func-tioning data processing system, those of ordinary skillin the art will appreciate that the processes of thepresent invention are capable of being distributed in theform of instructions in a computer readable medium anda variety of other forms, regardless of the particular typeof signal bearing media actually used to carry out thedistribution. Examples of computer readable media in-clude media such as EPROM, ROM, tape, paper, floppydisc, hard disk drive, RAM, and CD-ROMs and trans-mission-type media, such as digital and analog commu-nications links.[0100] The description of the present invention hasbeen presented for purposes of illustration but is not in-tended to be exhaustive or limited to the disclosed em-bodiments. Many modifications and variations will beapparent to those of ordinary skill in the art. The embod-iments were chosen to explain the principles of the in-vention and its practical applications and to enable oth-ers of ordinary skill in the art to understand the inventionin order to implement various embodiments with variousmodifications as might be suited to other contemplateduses.

Claims

1. An apparatus for executing a chat session in a dis-tributed data processing system, the chat sessionhaving one or more participating users in the chatsession, the apparatus comprising:

means for selecting a user identifier of a userwho is not a participant in the chat session;means for performing an action to generate achat session invitation to the selected user;means for retrieving a chat session context forthe chat session;means for generating a chat session invitationcomprising the retrieved chat session context;andmeans for sending the chat session invitationto the selected user.

2. The apparatus of claim 1 further comprising:

means for receiving the chat session invitation;first presenting means for presenting the chatsession context from the chat session invita-tion; andmeans for responding to the chat session invi-tation after reviewing the presented chat ses-sion context.

3. The apparatus of claim 2 further comprising:

second presenting means for presenting thechat session context as a hierarchically organ-ized tree in which participating users in the chatsession are represented as nodes of the treeand in which branches in the tree represent re-lated chat sessions.

4. The apparatus of claim 2 further comprising:

third presenting means for presenting the chatsession context as a hierarchically organizedtree in which discussion topics in the chat ses-sion are represented as nodes of the tree andin which branches in the tree represent relatedchat topics.

5. The apparatus of claim 2 further comprising:

joining means for joining the selected user tothe chat session in response to the user accept-ing the chat session invitation.

6. The apparatus of claim 1 wherein the chat sessioncontext is an Extensible Markup Language (XML)document.

7. The apparatus of claim 1 wherein the chat sessioncontext comprises chat session content and chatsession events generated in response to actions byusers participating in the chat session.

8. A apparatus for extending a chat session in a dis-tributed data processing system, the chat sessionhaving one or more participating users in the chatsession, the apparatus comprising:

first storing means for storing a chat sessioncontext for a chat session in a newsgroup;receiving means for receiving a newsgroupmessage; andsecond storing means for storing the receivednewsgroup message within the chat sessioncontext stored in the newsgroup.

21 22

EP 1 209 849 A2

13

EP 1 209 849 A2

14

EP 1 209 849 A2

15

EP 1 209 849 A2

16

EP 1 209 849 A2

17

EP 1 209 849 A2

18

EP 1 209 849 A2

19

EP 1 209 849 A2

20

EP 1 209 849 A2

21

EP 1 209 849 A2

22

EP 1 209 849 A2

23

EP 1 209 849 A2

24

EP 1 209 849 A2

25

EP 1 209 849 A2

26

EP 1 209 849 A2

27

EP 1 209 849 A2

28