J.T. Colby & Company, Inc. et al v. Apple, Inc.

Filing 89

DECLARATION of Partha P. Chattoraj in Support re: 87 MOTION for Partial Summary Judgment.. Document filed by Ipicturebooks LLC, J.Boyston & Company, J.T. Colby & Company, Inc., Publishers LLC. (Attachments: # 1 Exhibit 1, # 2 Exhibit 2, # 3 Exhibit 3, # 4 Exhibit 4, # 5 Exhibit 5, # 6 Exhibit 6, # 7 Exhibit 7, # 8 Exhibit 8, # 9 Exhibit 9, # 10 Exhibit 10, # 11 Exhibit 11, # 12 Exhibit 12, # 13 Exhibit 13, # 14 Exhibit 14, # 15 Exhibit 15, # 16 Exhibit 16, # 17 Exhibit 17, # 18 Exhibit 18, # 19 Exhibit 19, # 20 Exhibit 20, # 21 Exhibit 21, # 22 Exhibit 22, # 23 Exhibit 23, # 24 Exhibit 24, # 25 Exhibit 25, # 26 Exhibit 26, # 27 Exhibit 27, # 28 Exhibit 28, # 29 Exhibit 29, # 30 Exhibit 30, # 31 Exhibit 31, # 32 Exhibit 32, # 33 Exhibit 33, # 34 Exhibit 34, # 35 Exhibit 35, # 36 Exhibit 36, # 37 Exhibit 37, # 38 Exhibit 38, # 39 Exhibit 39, # 40 Exhibit 40, # 41 Exhibit 41, # 42 Exhibit 42, # 43 Exhibit 43, # 44 Exhibit 44, # 45 Exhibit 45, # 46 Exhibit 46, # 47 Exhibit 47, # 48 Exhibit 48, # 49 Exhibit 49, # 50 Exhibit 50, # 51 Exhibit 51, # 52 Exhibit 52, # 53 Exhibit 53, # 54 Exhibit 54, # 55 Exhibit 55, # 56 Exhibit 56, # 57 Exhibit 57, # 58 Exhibit 58, # 59 Exhibit 59, # 60 Exhibit 60, # 61 Exhibit 61, # 62 Exhibit 62, # 63 Exhibit 63, # 64 Exhibit 64, # 65 Exhibit 65, # 66 Exhibit 66, # 67 Exhibit 67, # 68 Exhibit 68, # 69 Exhibit 69, # 70 Exhibit 70, # 71 Exhibit 71, # 72 Exhibit 72, # 73 Exhibit 73, # 74 Exhibit 74, # 75 Exhibit 75, # 76 Exhibit 76, # 77 Exhibit 77, # 78 Exhibit 78, # 79 Exhibit 79, # 80 Exhibit 80, # 81 Exhibit 81, # 82 Exhibit 82, # 83 Exhibit 83, # 84 Exhibit 84, # 85 Exhibit 85, # 86 Exhibit 86, # 87 Exhibit 87, # 88 Exhibit 88, # 89 Exhibit 89, # 90 Exhibit 90)(Chattoraj, Partha)

Download PDF
EXHIBIT68 1111~ 111111111111111111111111~ 111111111111111111111111111 US007571212B2 United States Patent (10) Reynolds et al. (12) (45) (54) Inventors: Brian Reynolds, Hanover (JM); Mark J. Conway, Newbury (GB) (73) Assignee: Family Systems, Ltd., Isle of Man (GB) (•) Notice: (21) Appl. No.: 10/439,143 (22) Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 960 days. (Continued) (60) Provisional application No. 60/381,060, filed on May 14,2002. (51) Int.Cl. G06F 15/16 (2006.01) U.S. Cl. ....................................... 709/206; 715/738 Field of Classification Search ......... 709/218-219, 709/206; 715/738 See application file for complete search history. References Cited (56) U.S. PATENT DOCUMENTS 5,796,393 5,809,250 5,862,330 5,870,744 5,878,233 5,944,791 5,991,796 A * 811998 A • 9/1998 A * 1/1999 A • 211999 A • 3/1999 A * 811999 A * ll/1999 4/2000 Reynolds et at. A A * 1112000 Palmer et al. .. ............. 715n33 81 * 1/2001 Kirk et al .................... 715/205 81 * 5/2001 Ludwig et al ............... 709/204 81 * 3/2002 Anupam et al. .. ........... 709/204 81 * 4/2002 Aditham et al. .. ........... 7191313 81 * 7/2002 Shelton et al. .. ............ 709/227 81 * 812002 Kay et al. .. ................. 709/206 81 * 1/2003 Atkinson et al ............. 4341350 81 • 1212003 Rust ........................... 709/204 81 • 3/2004 Wongetal .................... 707/10 (Continued) Mar. 11, 2004 Related U.S. Application Data (52) (58) Aug. 4, 2009 OfHER PUBLICATIONS Prior Publication Data US 2004/0049539 AI US 7,571,212 B2 Neil W. Van Dyke, Henry Lieberma, Pattie Maes, Butterfly: a conversation-finding agent for Internet relay chat, Los Angeles, California, United States Jan. 5-8, 1999, Proceedings of the 4th international conference on Intelligent user interface, pp. 39-41.* May 14, 2003 Filed: (65) MacNaughton et al ...... Kisor ......•.................. Anupam et al .............. Sprague ...................... Schloss ...................... Scherpbier .................. Anupam et al .............. 709/218 709/227 709/204 709/206 709/225 709/218 709/206 Chat lloom - Illest ~IT~~--~-~~:-.. • 6,052,717 6,151,020 6,175,842 6,237,025 6,353,851 6,378,001 6,418,471 6,430,602 6,507,726 6,668,273 6,708,172 INTERACTIVE WEB COLLABORATION SYSTEMS AND MEmODS (75) Patent No.: Date of Patent: Primary Examiner-Larry D Donaghue Assistant Examiner-Ajay Bhatia (74) Attorney, Agent, or Firm-Ropes & Gray LLP (57) ABSTRACT A topic room is provided in which one or more individuals or other entities may collaborate on topics of mutual interest. Multiple individuals or participants may use the topic room to communicate in real or non-real time and may work together to create, browse, modifY, comment on, and perform any other suitable action on content. A chat room within the topic room receives, records, and transmits the communications and all activity in the topic room to all participants as messages. Client processes at a participant's user equipment may listen to the messages and take particular actions. For example, one participant can follow another participant as that participant browses through material by using the messages received from that participant. 8 Claims, 8 Drawing Sheets US 7,571,212 B2 Page2 U.S. PATENT DOCUMENTS 6,748,420 Bl * 612004 6,785,708 Bl • 812004 6,901,438 Bl • 5/2005 6,938,212 B2 • 812005 6,950,852 Bl • 9/2005 7,051,068 Bl • 5/2006 7,139,795 B2 • 1112006 1/2007 7,167,142 B2 • 2001/0037365 AI* 11/2001 200210002586 AI * 1/2002 200210032731 AI • 3/2002 200210046253 AI • 4/2002 200210103917 AI * 812002 Quatra.no et al. .... .... .. .. 709/20 5 Busey et al. .. .............. 709/204 Davis et al .................. 709/219 Nakamura .................. 7151748 Kobayaghi et al ........... 709/204 Kawase et al. .. ............ 709/203 Davis ......................... 709/204 Buckley et al. .. ............ 345/2.1 Montague et al ............ 709/204 Rafal et al. .. ............... 709/205 Qian et al. .. ................ 709/204 Uchida et al. .. ............. 709/217 Kay et al. .. ................. 709/229 OfHER PUBLICATIONS David Vronay, Marc Smith, Steven Drucker, Symposium on User Interface Software and Technology, Proceedings of the 12th annual ACM symposium on User interface software and technology, Asheville, North Carolina, United States Nov. 7-10, 1999, pp. 19-26.• McNeill, Brian L, Deiregno, Christopher N, W0009944149Al, Sep. 2, 1999.• de Jesus Hoyos Rivera, G.; Courtiat, J.-P.; Villemur, T., "A design framework for collaborative browsing," Enabling Technologies: Infrastructure for Collaborative Enteiprises, 2001. Wet Ice 2001. Proceedings. Tenth IEEE International Workshops on, vol., No., pp. 362-367' 2001.. Roseman, M. and Greenberg, S. 1996. TeamRooms: network places for collaboration. In Proceedings of the 1996 ACM Conference on Computer Supported Cooperative Work (Boston, Massachusetts, United States, Nov. 16-20, 1996). M. S. Ackerman, Ed CSCW '96. ACM, New York, NY, 325-333.* H. Lieberman, N. van Dyke, A. VIVacqua, Let's browse: a collaborative browsing agent, Knowledge-Based Systems, vol. 12, Issue 8, Dec.l999,pp.427-431, ISSN0950-7051.* "DreamChat-StreamingAvatar Photo Chat-Glossary of Chat Features," (Jan. 25, 2001), at web.archive.org/web/20010817025834/ www.drearnchat.com/products/features.html. Ulrich Gall & Franz Hauck, "Promondia: a Java-based framework for real-time group communication in the Web," Computer Networks and ISDN Systems, North Holland Publishing, Amsterdam, NL, vol. 29, No. 8-13, (Sep. I, 1997), pp. 917-926. Peter Hartwell, "Using !book Chat," (May 5, 2002) at www.ibook. com/documentationlug!ug-chat.htm. Twidale, M.B.; Nichols, D.M. & Paice, C.D., Browsing is a Collaborative Process, Information Processing & Management, vol. 33, No. 6, pp. 761-783 (1997). Steinfield, C.; Jang, C.Y. & Pfaff, B., "Supporting Virtual Team Collaboration: The TearnSCOPE System," Group '99, Phoenix, Arizona, USA, pp. 81-90 (1999). * cited by examiner U.S. Patent Sheet 1 of8 Aug. 4, 2009 8 0 0 0 N I s I u ..... b C.O'"I!;I oo- E-q:i:: Cl) 12 vJ ~ '- '--- 0 0 0 ..... I <P ~ u .!14 IU f/1 I ~ CU Cl.) ·=0 ~ ~ J5JSff c c .oo- ,., 00 '- .Q '--- l >·-= ~ ~ 50'"1!;1 o_ I Q,) -oJSO ,....... ~ ~ ...... L- ~ 0 0 0 ...... US 7,571,212 B2 ' ;: U.S. Patent Aug. 4, 2009 US 7,571,212 B2 Sheet 2 of8 r Topic Room r---- 1000 Identity or Subject !book Folder 11100 11200 Verbol Chat Room l Fig 2 __.!..-- \ \ 10 2000 /?.ooo ~~-t~ Ibook{S:erver Com)2uter , 2100 ~;-- f'J.').OO 1'1.1 fj Topic e . Room ~ I messages ~ Q) c:l.l ..:.: Topil: Room y 0 ~ '---- 'C/). • '-fOoo ~ = ~ Enrolled User #N+l I * a '-tooo Enrolled User #T •••• 1:1.. X ~ ibook ~ <tO .i'- ~I I I I c;-ooo [1:] m X Ito 1'1.1 til Q) tl e .~ ~ 1;/.l ::r y !M ~ u j •••• Chat Server Comnuter L~ooo ~· ~ chat messages "'"' QC .,z;~o ~ II) Room ~ Chat Room Participant #1 IZI Chat IC tD 3100 r-:s'"ob = = N ~ .... Chat Room Participant #N - d 00 ... .....:a u-. .....:a ~ Fig 3 'N ~ N t:C N ~ ')OOO rJj • ~ = a Chat Room Participant Client Computer ;- vl)loo !book controller J ..-1 \. Web Browser (-~ 100 ... ~ r;~o .... "'" .. ~ ~ Verbol Wrapper ~ ~ ~ ' \. . Chat Client --,.. a loC =- rJ".} - ... t'D 0 u . I ""' = oc """ ~ri· chat messages Fig4 1'7.1 N ~ .. < "" ....- rc;'too Verbol ... ... :E Other Verbol Objects = = ~ G"~OO d 00 :-l ~ """"" 'N N """"" cc N ~ user message User Chat Message rJJ. • 1-d 'roo I • = f"'to. ~ I user name : timestamp : ---------------------- user message contents--------------------1 I a ~ \_(;tOO !tO IRCwrapper ~ = = N \C IR.Cwrapper 6~00 Verbol Chat Message Verbol message t7.l =" ft> ~ 6600 Ul c::> user name ! timestamp ! VERBOL! ! Command I I I Command Arguments e.g. e.g. BROWSE, REVISE, or CREATE http://www.ibook.orglisitelfopicRoomA/ipage.htm 'QO "" ~ 00. "''I U'l 'I ~ 'N ~ Fig 5 N l:d N U.S. Patent Aug. 4, 2009 Sheet 6 of8 7000 F t G-. 6 US 7,571,212 B2 U.S. Patent Aug. 4, 2009 Sheet 7 of8 FIG. 7 US 7,571,212 B2 U.S. Patent Aug. 4,2009 Apr 24.2002 22:32:14 Apr 19 200215:41:02 Apr 19 200215:26:54 Apr 19 200215:26:34 Apr 17 2002 20:57:12 Apr 16 2002 20: 2S: 47 Apr 03 2002 21:50.31 Mar 28 200219:33:46 Sheet 8 of8 US 7,571,212 B2 Rec20020424·223i14.~70.wav Oh 4m 9s Oh 13m... Oh Om 9s Oh 42m ... Oh Om 17' Oh Om 37s FlG-. <g Rec20020419-154051.810.wav Rec2002041 S.152643.970.wav Rec20020419-152630.640.wav Rec20020417·205712.590.wav Rec20020416·202647.900.wav Rec20020403·215010.510.wav US 7,571,212 B2 1 2 laborate on topics of mutual interest. A topic room is a collaborative framework built upon an interactive web site, in which multiple individuals may carry out live or non-real time written, verbal, or multimedia conversations, and may work CROSS-REFERENCE TO RELATED together to discuss, create, browse, modifY, comment on, APPLICATION disagree about, create enhancements to or alternative versions of, and otherwise contribute to content or material. Ibis application claims the benefit of U.S. provisional Within the framework of the topic room, such discussions are application No. 60/381,060, filed May 14, 2002, which is recorded and logged, as are all elements of the collaboration, hereby incorporated-by-reference herein in its entirety. 10 interactions between participants, and individual contribuREFERENCE TO A COMPUTER PROGRAM tions of those participants. LISTING APPENDIX A topic room includes a chat room. A chat room holds all of the currently active participants in the topic room, and supIbis application contains a computer program listing ports their interactions. The chat room records the activity in appendix submitted on two copies (i.e., copy I and copy 2) of 15 the topic room, makes that activity visible to the participants, a compact disc, which is hereby incorporated-by-reference monitors topic room activity, and carries out various support herein in its entirety. The computer listing appendix is subtasks as requested by the chat room participants. mitted as a Word file named Appendix A, which is a 570 kb in Activity in a topic room is a sequence of actions. A record size and was created on May 14, 2003. of topic room activity comprises a log of topic room actions, 20 created by the chat room. Ibis log becomes part of the conBACKGROUND OF THE INVENTION tents of the topic room, and may be selectively inspected, reproduced, and animated. A recorded topic room action can This invention relates to the Internet, and more particularly, be animated. Animating a recorded action reproduces the to techniques for creating and viewing material on the World action, and animating a sequence of actions has the effect of Wide Web ("web") in the form of an interactive web site, and 25 recreating the activity in the topic room. to techniques by which multiple individuals can communiA conversation between participants in a topic room may cate with each other and work collaboratively on content and well include verbal communication. A conventional telematerials in an interactive web site. phony system may be employed for this conversation. AlterThe World Wide Web has made the Internet accessible to a natively, individuals or groups may employ local recording broad range of people. One can search the web and view large 30 techniques that generate digital audio or other multimedia amounts of material using a web browser. Recent improverecordings, and then share those recordings, or portions ments have made it easier for individuals to contribute their thereof. The audiorecorder is a topic room tool which supown ideas and creative content via the web. However, there is ports local or remote capture of audio or multimedia recordno satisfactory framework within the web to assist and enable ings of participants' conversation, singing, recitations, musia group of people who may be physically remote from each 35 cal or other performances, etc., and assists in the inclusion of other, to talk to each other, work together, discuss ideas, such material into the topic room along with useful other create, view, enhance, modifY, alter, comment on, and create information. The other information can include a timestamp, multiple alternative versions of new material while recording a source identifier (e.g., the speaker), and a topic specificatheir interactions and contributions in such a way that particition. The audiorecorder can be used to annotate a continuous pants may be automatically identified and rewarded for their 40 recording, or include limited "clips" taken from a larger efforts, the deliberations ofthe group preserved and reviewed, recording in the topic room record. and the sequence of interactions reproduced. As a result, Digital recordings are only one example of material relmany people who have access to the web do not use it in their evant to topic room activity that may not have a native form collaborative efforts. that allows them to be easily and directly incorporated into a Furthermore, there is no satisfactory framework within the 45 page. Such material is called "external material". Topic web to support the definition of pre-defined roles and responrooms include a method for representing external material sibilities for group members, by which groups organize their outside of a folder by a page inside the folder, and for generactivities, nor any satisfactory framework within the Web ating an internal Universal Reference Locator from the extereither to assist participants in understanding, reviewing, nal URL of the external material. accepting, or performing those roles, or to implement systems 50 A tag makes it possible to locate external material. A tag is or methods by which those roles may be objectively specified a structured meta-content object that contains information and carried out automatically or semi-automatically by intelabout folder content. A tag can be embodied as an HTML ligent artificial agents. element. A tag is created for, and stored in, every page. A tag It is therefore an object of the present invention to facilitate holds all the meta information (non-content information) for the collaboration of multiple participants using a data net- 55 a page. A tag holds system-generated information, such as work such as the web and to record the particulars of their authoring information and various content links. A tag may also contain a behavior object, through which the behavior of collaboration. the page is defined, using techniques that are discussed below. It is also an object of the present invention to provide a way Finally, the tag of each page may hold a template copy of the in which to facilitate a description, specification, and imple60 link to that page. mentation of roles using a data network such as the web. Collaborative efforts are aided by techniques which supSUMMARY OF THE INVENTION port the tentative and contingent association of comments, notes, alternative renderings, pictures, and other material These and other objects of the invention are accomplished with the content of pages. Topic rooms support this continin accordance with the principles of the present invention by 65 gent association with "links". Links are structured meta-content objects that refer to a page, and can be inserted into one providing a framework and a space referred to as a topic room or more pages. A link can be embodied as an HTML element. in which one or more individuals or other entities may colINTERACTIVE WEB COLLABORATION SYSTEMS AND METHODS US 7,571,212 B2 3 4 The visual aspect of a link can be determined on a case-bycase basis when the page in which it is embedded is displayed. As a result, a particular link can be rendered visible or invisible, sets of related links displayed in such a way as to share identifying properties such as color, etc. The link could also be rendered by rendering the contents ofthe page to which the link refers. The rendering characteristics of a link can be determined by the link's creator, the owner of the page in which the link is embedded, the viewer of the page, or other controlling factors. Links can be copied manually or automatically using a "drag-and-drop" or other operation. Each participant in the activities that take place in a topic room may be represented by an identity. An identity may be a topic room whose topic is the entity it represents. Whenever an entity participates in any topic room, that entity's activity may also be recorded in their identity. All activities in a topic room may be captured and described using a formalism for creating, sustaining, and supporting communication between independent, distributed, self-regulating, cooperating objects. An object can do two things: it can communicate with other objects, and it can control non-objects. Folders and pages are objects. Other objects include the audiorecorder, the controller, the chat room, and the server. Objects may communicate with each other by constructing, transmitting, receiving, and interpreting messages. Each message constitutes a plurality of statements. A statement may be a speakable command that can be interpreted by an interpreter and complies with the specifications ofa grammar. A statement may define an atomic event or action within a topic room. A script comprises a parallel sequence of statements. Scripts are used to define useful collections of actions, often described as "behavior". All objects have such scripts associated with them. Hence, objects have "behavior" associated with them. One object can inherit the scripts associated with another object, and thereby "inherit" part or all ofthe ''behavior" associated with that other object. As described above, every page may have a tag associated with it. In the tag is the behavior for the page. A behavior is the collection of scripts that are attached to the page, and which contribute to the behavior ofthe page. The behavior of a page is the behavior specified by the page's tag. This in turn is the behavior of the scripts in that tag, including any inherited behavior. Thebehaviorofafolderisthecompositionofthebehavior of the pages in the folder. Composition is a well-defined inheritance process. A persona is a folder whose behavior has been designed to be useful, interesting, entertaining, or otherwise distinguishing behavior. A participant in a topic room may temporarily or permanently "adopt a persona" by having that participant's identity folder inherit the scripts in the persona folder. An assistant is a self-contained identity that has sufficiently well-defined, sophisticated, useful, and or interesting behavior, history, and content that it can usefully contribute by itself as a topic room participant. Activity within a topic room may constitute parallel sequences of messages exchanged between the objects representing the participants in the room and the material upon which they are collaborating. Records of topic room activity maytaketheformofscripts, andmayconstitutethehistoryof their respective topic rooms. Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 shows an illustrative Ibook site in accordance with the present invention. FIG. 2 shows an illustrative topic room in accordance with the present invention. FIG. 3 shows a system diagram of an !book site server, a chat server, and client computers in accordance with the present invention. 10 FIG. 4 shows topic room client components in accordance with the present invention. FIG. 5 shows a user chat message and Verbol chat message in accordance with the present invention. FIG. 6 shows an illustrative MySharer window in accor15 dance with the present invention. FIG. 7 shows an illustrative chat room window in accordance with the present invention. FIG. 8 shows an illustrative audiorecorder window in accordance with the present invention. 20 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Generally speaking, the present invention provides improvements on existing interactive web site systems. An existing interactive web site system is described in commonly-assigned U.S. Pat. No. 6,052,717 to Reynolds et al. (hereinafter "!book system" (!book is a registered trademark of Family Systems, Ltd.)), which is hereby incorporated by 30 reference herein in its entirety. An interactive web site system is a self-extending, self-sustaining information-redistributing web robot which is resident on a data network such as the Internet or an intranet. Material in an interactive web site system may be organized in the form of web pages. Material 35 maybe text, two-dimensional, three-dimensionalorn-dimensional graphics, animation, audio, video, source or executable code, or any type of multimedia format. Within each Web page, material may be organized in passages. Passages can be of any suitable size, such as a paragraph for textnal material, 40 or a video or audio clip of a certain length for multimedia material. Related interactive web site system technology supports the automatic distribution, publishing, and synchronization of interactive web site system content and other data between multiple users and sites. These features are described 45 in, for example, Reynolds et al. PCT Publication No. WO 02/088909, filed Feb. 1, 2002 (hereinafter "MySharer software" (MySharer is a registered trademark of Family Systerns, Ltd.)), which is hereby incorporated by reference herein in its entirety. 50 Topic Rooms A topic room may include all of the behavior and functionality of existing interactive web site systems, such as the !book system. A topic room also preferably includes a chat room that supports and records interactions between multiple 55 users and Verbol scripts (Verbol is a registered trademark of Family Systems, Ltd.) that define the behavior and capabilities of the topic room. The term !book folder will be used herein to refer to material that is stored in an interactive web site system. Therefore, a topic room preferably includes an 60 !book folder, a chat room, and Verbol scripts. Every topic room preferably has a topic. The topic is what the material in the !book folder is about. A subject !book folder is an !book folder whose topic is a particular subject (other than being about an !book member or a persona). An 65 identity !book folder is an !book folder whose topic is an individual (or other entity) that is an enrolled member of an !book site. A persona is an Ibook folder whose topic is a 25 US 7,571,212 B2 5 6 history and a named set of behaviors, both of which a contributor can adopt to enhance their identity. !book Sites Topic Rooms are held in !book sites. !book sites allow users to gain access to topic rooms by enrolling as members in the !book site that holds the topic room. Every topic room is preferably contained within a single !book site. An !book site may contain multiple topic rooms. An exemplary !book site is described more detail in the !book system patent. !book Folders As used herein, the terms "!book folder" and "topic room" are largely interchangeable. Where a distinction appears to be indicated, an !book folder should be considered to correspond to the aspect of a topic room that has the properties of existing interactive web site systems such as the !book system. An !book folder has the capacity to store and present content, maintain attribution and derivation information associated with the content, and so forth. Formally, in object-oriented programming terminology, a topic room is an Ibook folder: it has all of the properties, methods, and behaviors or an !book folder, and may well have additional properties methods and behaviors. The !book folder aspect of a topic room stores all of the permanent content of the topic room. That is, the persistent storage of all topic room state information is in the !book folder of the topic room. The content, history, and behavior of a topic room may be organized into a collection of !book pages. An Ibook page comprises an itag and content material. Every !book page preferably has an itag. The content portion of the !book page may be empty. An itag holds information about the page, and a vspace. The vspace holds Verbal scripts that define behavior associated with the page. Each !book folder preferably has several distinguished pages. One distinguished page may be the "home page" of the Ibookfolder. The topic of the !book folder may be specified in the itag of the !book folder's home page. Other distinguished pages may be "chat pages". A chat page holds a record or log of a Verbol chat that took place in the !book chat room. Alternatively, a chat page may be located elsewhere within a topic room such as within a Verbol chat room. Itags An itag is a structured text element. Every Ibook page preferably has an itag. In one embodiment, an itag may be an HTML element. Every itag preferably contains system-generated identifYing information about the !book page, an archetypal istamp for the !book page, and the vspace of the Ibookpage. The system-generated information in an itag may include but is not limited to a) template links, also known as attribution links; b) copy links, also known as derivation links; c) identity links, which point to the contents of the !book page; d) child links, which should be generated in the child list of the vspace ofthe parent; and e) authoring information, including but not limited to the universal date and time of creation of the content associated with the itag, author or speaker (that is, the creator of the content itself), date of contribution to the Ibook; identity of the !book contributor, and additional information such as type, category, notes, descriptions, etc. Vspaces and Verbol Scripts The itag in an !book page preferably holds a vspace. A vspace contains a user-defined Verbal script that defines the behavior of the !book page. Among other things, a page's Verbol script may act to automatically incorporate contributions to the Ibook page or folder. As a result of the incorporation, some Ibook pages may be revised and new !book pages may be created. When an Ibook page is created, it normally inherits its behavior, in the form ofVerbol statements, from its parent and from its template. The parent of an Ibook page is the !book page that the !book controller of the page's creator was browsing when the page was created. As part of the creation process, the creator can optionally designate any page in the current !book folder as the template for the page being created. The method by which an !book page inherits Verbal behavior may be either static or dynamic. In the static method, when a page is created the contents ofthevspace ofits parent and its template is copied into the new !book page's vspace. In the dynamic method, when a page is created the contents of the vspace of its parent and its template is referenced in its vspace. Thus, in the static method, subsequent changes to a page's parent or template behavior does not result in changes in the page's behavior. In the dynamic method, subsequent changes to the parent or template behavior is reflected in the page's own behavior. When the static inheritance method is employed, the inheritance may be "refreshed" from time to time. In the refresh operation, new copies of the parent's and template's behavior are transferred to the page, so that the page acquires any changes in the parent's or template's behavior that took place since the last static copy operation. !Book Page Content The content associated with an Ibook page may reside in the !book page itself, or external to the page. In one embodiment of !book pages, content within the page is in the form of HTML statements. Other forms of content include but are not limited to Microsoft Word documents, PDF documents, faxes, spreadsheets, audio and other multimedia recordings, etc. External Content A topic room uses !book pages and istamps to incorporate content into an !book folder. An !book folder may include any kind of content that can be digitally located and accessed, so that the fundamental advantages of being part of an !book folder (the ability to access and manipulate the content, the maintenance of a history for the content including at least derivation and attribution information, and the storage and invocation ofbehavior of the content) can apply to content of any kind. Content is incorporated into an !book folder by creating an !book page to hold the content, or to refer to the content. All the content associated with an !book folder is preferably held in Ibook pages, or referred to by !book pages. For example, in one embodiment of istamps, the Ibook controller uses Uniform Resource Locators (URLs) to refer to, locate, and access all forms of content. In the embodiment under discussion, the Ibookcontrolleralso uses a URL to refer to, locate, and access !book pages. In this embodiment, the !book controller handles "external content"--content that can not be inserted into an !book page, but that is to be logically included as part of the !book page-by making use of an algorithm that accepts as input an arbitrary content URL, and produces as output a "mapped" URL that is within the domain of the Ibook folder. The Ibook controller creates an !book page with this mapped URL. The itag of the new page includes the URL of the external content. If some content is stored inside of its istamp, it is stored in such a way that it can be easily located once the istamp has been located. Thus either the !book page or the external content may be located by knowing the URL of the other element. Verbal Chat Rooms A. Overview As discussed above, and as illustrated in FIG. 1, !book site 100 may include multiple !book folders 1000. Some of the 5 10 15 20 25 30 35 40 45 50 55 60 65 US 7,571,212 B2 7 8 folders may be identity !book folders, and some may be modifY lbook pages. As shown in FIG. 3, these interactions subject !book folders. In addition, !book site 100 may include are supported by !book site server computer 2000 and chat one or more topic rooms 2000. FIG. 2 shows a more detailed server computer 3000. In particular, chat server process 3100 diagram of topic room 2000. As discussed above, and as receives chat messages from individual client computers illustrated in FIG. 2, topic room 2000 comprises an Ibook 4000 and 5000 and rebroadcasts those messages to all participants in the chat room of a topic room. Chat server process folder 1000 and a Verbol chat room 1200. The Ibook folders in topic rooms may typically be subject !book folders, but 3100 also sends all chat messages to the chat room software may also be identity Ibook folders. !book folders may include component running on chat server computer 3000. This chat multiple !book passages such as !book passages 1100. Topic room software component is responsible for logging all chat room 2000 preferably includes a chat page or chat log 1150. 10 messages in the chat page of the associated topic room, and Verbol chat room 1200 allows Ibook site members to for retrieving those messages on demand for playback to chat exchange messages and contributing content to the Ibook room participant. The chat room software component use folder 1000 within topic room 2000. An interaction of this standard !book folder software and operations to maintain sort is referred to as "Verbol chat," or simply as a "chat". and access the chat page in which this log, or history, of chat Verbol chat room 1200 (or simply the chat room) supports 15 messages is maintained. Verbol chats, and generates a complete history of each chat, !book site server 2000 and chat server 3000 may simultastoring the history in the chat page or chat log 1150 of topic neously support multiple chat room participants and multiple room 2000. The history becomes an integral part of the conenrolled non-chat Room Ihook site users. !book site server 2000, chat server 3000, and client comtent of topic room 2000. A topic room may include one or more !book folders and 20 puters 4000 and 5000 may be personal computers, laptop one or more chat rooms. In one possible embodiment, one computers, mainframe computers, personal digital assistants chat room is created for each !book folder nominated as a (PDAs), etc. or any combination of the same. !book site server Topic Room. When a Topic Room is created (for instance, 2000 and chat server 3000 may communicate with client computers 4000 and 5000 over any communications links during enrollment of an Ibook site user, or when an Ibook site user issues a "create new Ibook folder" command to the Ibook 25 suitable for communicating data such as network links, dialsite) a chat room is created by the Ibook site that is supporting up links, wireless links, hard-wired links, etc. the !book system, and is associated with the Topic Room. E. IRC Embodiment Each Verbol chat room preferably has a name. Its name may In one possible embodiment, the Internet Relay Chat (IRC) be derived from the name of the Topic Room with which it is protocol is used support chat rooms. In such an embodiment, 30 the chat server is built on top of a standard IRC server, and associated. A Verbol chat room may a) allow topic room participants to chat messages are text messages wrapped inside the IRC engage in live, on-line communication with each other via message protocol. In this embodiment, the Verbol chat client chat messages; b) record their interactions as a log of chat communicates with the chat server over a network or Internet using the IRC protocol. messages in the chat page; and c) is capable of animating those records-playing them back-so as to reproduce 35 F. Chat Room Activation recorded chat room interactions. The chat room also redupliAn enrolled lbook site member needs to log into a topic cates the contributions of participants to other lbook folders room before he or she can participate in a Verbol chat. In by sending Verbol messages to other relevant Ibook folders. addition to logging in, the member also needs to "enter" the Whenever a participant makes a contribution to a topic room, chat room of the topic room. Once they have entered the chat an entry is added to the log, or history, of that topic room 40 room, they become a participant in the Verbol chat. Users may describing the contribution, and a Verbol message is also sent enter a chat room by running their Verbol chat client software to the participant's identity, which results in an entry in the on their client computer, and providing certain information to the chat client, such as the name of the chat room they want to history of that !book folder. B. Server Side Chat Room Components enter, and the URL of the chat server that is supporting that An !book site sponsor maintains a chat server computer on 45 chat room. Alternatively, this process may be automated so that a user may simply select a chat room icon in the topic a network in order to support topic rooms. The chat server computer runs a chat server process. The chat server comroom to enter the chat room. puter may be the same physical computer as the !book site When an enrolled user enters a chat room, the chat server computer, or they may be different computers attached via a determines whether or not the chat room is active. If the chat network. In addition to the chat server process, one chat room so room is not active, the chat server accesses the topic room software component for each active chat room runs on the database, activates the chat room, initializes the chat room software component running on the chat server computer, and chat server computer supporting that chat room. enters the user as a participant in the chat room. The chat room C. Client Side Software When a user enrolls in a topic room, an enrollment program will remain active as long as it has any participants. When it directs the user to download and install any necessary topic 55 no longer has any participants, the chat server preferably room software onto their client computer. In another suitable deactivates the chat room. FIG. 7 shows an illustrative chat room window 8000. As approach, the software may be downloaded and installed at any later time onto a client computer. The topic room software illustrated in the top portion of window 8000, there are two includes a standard web browser, an Ibook controller which participants in the chat room: gerald and steve2. The top creates a Verbol wrapper around the web browser, a Verbol 60 portion of window 8000 also shows their most recent action, which is "browses" for both participants and the locations of chat client (or simply chat client) software, and any other suitable client software for supporting interaction with the their web browser. topic room. G. Chat Room Participation D. General Operation Chat room participants can send and receive messages to During operation, Verbol chat participants of a topic room 65 and from other participants, and make various requests of the using client computers interact with each other by exchangchat room and of other participants. For instance, they can ask ing text, media, and Verbol messages, and create, display, and the chat room to let them ''follow" another participant as the us 7,571,212 82 9 10 possible embodiment), a recognized Verbol command field participant browses from place to place. Participants make (such as "BROWSE", "REVISE", or "CREATE"), and a set such requests using the Verbol chat client. The chat client may of command arguments (such as a URL). In one possible perform at least the following functions: embodiment cat messages are "wrapped" in an IRC protocol I. Display relevant information, including the names, for transmission between software components on a client actions, and locations of participants, and certain selected computer, for transmission from a client computer to the chat chat messages. server, and for transmission from the chat server to all par2. Provide a user interface for issuing chat room requests. ticipant client computers. 3. Filter chat messages, selecting certain messages for display. Topic Room Client Components 10 4. Hide chat messages, so that they are not displayed. A topic room client computer runs software designed to 5. Monitor chat messages, and execute predefined prosupport Ibook folder contribution and chat room participacesses when certain messages, or combinations of messages, tion. This software may be downloaded (e.g., from an Ibook are detected. site) during topic room user enrollment, or at a convenient The requests that a chat client supports include the followlater time. As shown in FIG. 4, a client computer 5000 runs a ing: 15 web browser 5200 to support Ibook folder contribution, and a 1. Enter a designated chat room. Verbal chat client 5400 to support chat room participation. 2. Leave the current chat room. The client computer may also be running additional Ibook 3. Follow another participant in the chat.A participant may client components. All of these components communicate follow another participant for example by right clicking on with each other by exchanging Verbol chat messages through the other participant in window 8000 and selecting this 20 a communications component referred to as ''Corns Layer" option. 5500. Chat client 5400 receives all chat messages from the 4. Browse to the same location as another participant in the chat room (e.g., chat room 3200 (FIG. 3)), interprets each chat. A participant may browse to the same location as message, and also passes it on to the other client components another participant by selecting that participant's location in by sending the message to the Corns Layer 5500. 25 the top portion of window 8000. The web browser used to access the Ibook folder is cus5. Send a user message to the chat room. A participant may tomized by wrapping it in an !book controller component send a message to the chat room by entering the message in 5100 that supports specialized Ibook folder operations. This message text box 8050 in window 8000. controller also acts as a Verbol wrapper, translating the web 6. Show older messages in the chat room. A participant browsers actions into Verbal chat messages, and allowing may view older messages by selecting menu option 8100 in 30 other components to interact with the web browser by sending window 8000 and selecting this option. it Verbal chat messages. The web browser continues to comThe chat client supports these requests by gathering necmunicatewith the !book web server using, for example, stanessary information from the participant, and then creating and dard web messages, such as HTTP messages. In addition, transmitting chat messages. The chat client also receives all whenever a topic room user is participating in a Verbal chat chat messages broadcast by the chat server, examines each 35 room, every action the !book controller takes, such as creating messages, and processes it appropriately. Depending upon a new !book page, browsing to a different !book page, or certain predefined participant preferences, the chat client may revising an Ibook page, is expressed as a Verbal command display some of the messages it receives. Chat messages are that is transmitted as a Verbol chat message to the chat room. displayed for example in area 8150 ofwindow 8000. The chat As a result, the log of the chat room contains a complete client also passes all chat messages to other client topic room 40 history of the action of all participants in the chat room. In software components. When a topic room user is participataddition, any participant "A" can browse to the current locaing in a chat room, all of the topic room participants' client tion in the topic room that any other participant "B" is at. software components monitor all chat messages. Furthermore, any participant "A" can "follow" any other parH. Chat Messages ticipant "B" from location to location in the Ibook folder. The Topic room software generates two types of chat messages: 45 "follow" operation would be performed as follows: user chat messages and Verbol chat messages. User chat 1. Participant A selects participant B from the list of current messages are generated by the chat client whenever the user chat room participants displayed by participant A's chat clitypes, or otherwise creates, a message to chat room particient; pants. User chat messages may have arbitrary message con2. Participant A indicates that participant B should be ''foltent that is examined but often not interpreted by topic room 50 lowed" by selecting a "Follow" control (such as a menu software components. Verbol chat messages are chat mesoption) displayed by participant A's chat client; sages that are generated by topic room client or server soft3. Participant A's chat client issues a Verbal chat message ware components. Verbol chat messages contain Verbol comspecifYing the follow action, and the name of the participant mands that are typically interpreted by and acted upon by other topic room software components. Thus, in general, both 55 to be followed, and transmits that message to the chat server and to the Corns layer of the client computer. human participants and software clients create, monitor, 4. Participant A's Ibook controller has registered with the examine, and react to chat messages. Corns layer, and thus receives the follow Verbol chat message. FIG. 5 illustrates content 6300 and 6600 of user chat mesIt registers the fact that from now on it is to monitor all chat sage 6100 and Verbol chat message 6500, respectively. Content 6300 of user chat message 6100 comprises the following 60 messages for "BROWSE"Verbol chat messages from participant B, and when it finds such a message it is to instruct the fields: a) a user name indicating the name of the participant web browser that it is wrapping to browse to the URL speciwho generated the message; b) a timestamp indicating when fied in participant B's chat message. the message was generated, and c) an arbitrary message content that the user entered. Content 6600 ofVerbol chat mes5. Participant A's "follow" chat message is also sent to the sage 6500 also comprise the user name field and the time 65 chat server. The chat server sends it to the chat room software stamp field. In addition, Verbol chat message 6500 also comcomponent running on the chat server computer, and to all of prises a designated prefix field (the string "VERBOL!" in one the chat room participants. us 7,571,212 82 11 12 6. The chat room server component receives the chat message and writes it to the chat page of the Topic Room. If at some later time Participant A wants to stop following Participant B, the following steps are taken: 1. Participant A selects a "stop following participant B" control on his chat client. 2. Participant A's chat client issues a Verbal chat message specifYing the "stop following" action, and transmits that message to the chat server and to the Corns layer of the client computer. 3. Participant A's !book controller receives the stop following Verbal chat message. It registers the fact that from now on it is to ignore any chat messages for "BROWSE" Verbal chat messages from participant B, and does so. 4. Participant A's stop following chat message is also sent to the chat server. The chat server sends it to the chat room software component running on the chat server computer, and to all of the chat room participants. 5. The chat room server component receives the chat message and writes it to the chat page of the topic room. History Activation Playing back the history of participation in a chat room is another important capability. Because !book folder content is not removed or modified, only revised (that is, a new copy made with the desired modifications), any previous !book folder state can always be redisplayed. For instance, a participant can ask for the last 10 minutes of chat room activity to be re-enacted, as follows: 1. Participant A selects "replay recent history" from a control on his or her chat client. 2. The chat client asks participant A how many minutes back the playback should begin. Participant A enters a response (for example "10 minutes"). 3. Participant A's chat client issues a Verbal chat message specifYing the replay history action, and the time value of 10 minutes, and transmits that message to the Corns layer of the client computer and to the chat client. 4. Participant A's !book controller has registered with the Corns layer, and thus receives the replay history Verbol chat message. It registers the fact that from now on it is to monitor all chat messages for "BROWSE" Verbol chat messages with its own name, and when it finds such a message it is to instruct the web browser that it is wrapping to browse to the URL specified in those chat messages. 5. ParticipantA's replay history chat message is also sentto the chat server. The chat server sends it to the chat room software component running on the chat server computer, and to all of the chat room participants. 6. The chat room server component receives the replay history chat message and interprets the message. It acts on the message by retrieving all of the messages it has received during the last ten minutes and resending them to the chat server in chronological order. 7. The chat server broadcasts all of the recorded messages. 8. The recorded messages are received by participant A. As participant A's chat client receives each recorded message, it displays the message. As participant A's !book controller component receives the messages, it ffiters them and directs the web browser it controls to browse to the location that participant A had browsed to during the designated times. Verbal "Whenever" Statements Chat client software components monitor chat messages by acting as chat listeners. A chat listener is an object that monitors chat messages, and detects certain designated messages or combinations ofmessages arriving in a chat room. A client component becomes a chat listener by registering with the Corns layer. In one possible embodiment, it does this by calling the Corns layer with the address of a callback function to be invoked whenever the Corns layer receives a chat message. Each client component may handle every chat message, but a particular component may respond to many chat messages by ignoring them. However, when certain designated chat messages, or combination of chat messages, are detected, the chat listener may automatically trigger certain scripted processes. In one possible embodiment, each triggering chat message or chat message combination, and the scripted process to execute in response, is specified using a Verbal "whenever" statement stored in the vspace attached to or associated with the current !book page. The Verbol whenever statement has the following form: whenever <event pattern> <action pattern>. The event pattern may be any regular expression defining one or more users and their actions as Jogged in Verbal statements in the chat room, and action pattern may be any action or process expressed in a scripting or other language such as Verbal, Java, JavaScript, Perl, PHP, etc. For example, the following is a Verbal whenever statement: "whenever {any page/this page is} revise[d] email [it to] email-address-Jist," where the text in square brackets is optional, and does not change the meaning of the message. The text in braces are alternate forms meaning, respectively, any web page or the current web page, and "email-addressJist" is a valid Internet electronic mail address list. !book Contributors and Chat Room Participants Topic rooms are used by members oflbook sites. !book site members can contribute to !book folders on the site, and participate in the site's chat rooms. In order to contribute or participate, each user may be required to enroll as an !book site member (a one-time operation) and then Jog into each topic room to which they want to contribute. The member's contribution may take the form of participation in the chat room, or contribution of material to the !book folder, or both. Making a contribution to the !book folder includes participation in the chat room, because the topic room records a complete history of all contributions as entries in the chat room record. The terms "contributor" and "participant" are largely interchangeable. The term "contributor" focuses on people who contribute content to the !book folder. The term "participant" focuses on people who participate in the chat room. A person can be a participant without being a contributor (if you only exchange messages with other participants, but never make a contribution to the !book), but if you are a contributor you are also a participant, because every !book contribution results in an entry in the chat room history. The topic room may be considered a participant in its own chat room. When it updates the chat history files in its !book folder, it creates a message in the chat history reflecting that contribution. Therefore it is listed as a participant, and can be found in the Jist of chat room participants. Thus, some participants are human, other participants may be legal entities, and still others are objects such as topic rooms. Identity !books Folders Every enrolled member of an !book site has an identity !book folder on that site. An identity may be a part of a topic room whose topic is an !book site member. The site member may be a human individual or it may be a legal entity such as an organization or corporation. Other identity !book folders describe purely Verbal constructs-collections of content, behavior, and capabilities. This sort of identity !book is called a Verbal assistant. Verbal assistants can contribute to !book systems, and participate in 5 to 15 20 25 30 35 40 45 50 55 60 65 US 7,571,212 B2 13 14 chat rooms. For example, a meeting coordinator assistant is a a message from one of the participants, or one of the Verbal set of Verbal scripts, stored in an identity !book folder, that assistants. Each message is tagged so as to identify its origin. It is also time stamped. knows how to coordinate meetings of remote participants. It A Verbal chat room allows every object to receive mesincludes scripts for calling individuals, connecting them to sages from other objects in the chat room. Although users chat the conference call, etc. A glossarizer is another example of a Verbal assistant that makes contributions to an !book folder to each other in unrestricted text, or send pictures, or send messages with similarly unrestricted contents, the process of by monitoring the contents ofthe !book folder, finding imporsending a message results in a Verbal co=and being genertant words and phrases, linking them to glossary pages in the Ibook folder, and helping (human) contributors add new glosated. This Verbal co=and "wraps" the message contents, 10 and is recorded in the history of the Verbal chat by the Verbal sary pages to the Ibook folder. chat controller. The history of an identity Ibook folder may include a In addition to sending co=ents, topic room participants complete record of all contributions that its entity has made to can tie their browser displays to the display of another par!book folders on the site. ticipant, in effect "following" that "leader" around as she or Persona 15 he browses content. In this mode, the leader's Ibook controlA persona is an Ibook folder that defines and names a ler generates Verbal messages that specify where the "leader" collection of behaviors and capabilities that have been is browsing. These Verbal messages are sent to the chat room. designed to be adopted-that is, inherited by-an identity ..o\ny other participants you have become followers can follow Ibook folder. !book site members may temporarily take on a the leader by having the topic room send the leader's Verbal persona by having their identity Ibook folders temporarily 20 messages to each follower's Ibook controller. When a followinherit the Verbal scripts of a persona !book folder. Some er's Ibook controller receives such a Verbal message, it will personae are intended to be adopted by human entities and direct the follower's browser to browse to the same location others are intended to be adopted by Verbal assistants. as the leader. Roles Participants in chat rooms have, or can have, roles (see A role is a specification of what is to be achieved by the 25 Roles above). behavior of a persona. Some roles are intended to be adopted Fundamentally, Verbal chat generally comprises: a) parby human contributors and others are intended to be adopted ticipants who use Verbal to participate in the chat room and by Verbal assistants. make contributions to the Ibook; b) a history log of all the Istamps Verbal commands for those interactions and contributions; c) An istamp is a named, addressable, structured text object 30 a mechanism for capturing and displaying those Verbal scripts; d) a mechanism for listing the participants; e) a that points to some content. In one embodiment, an istamp is mechanism for storing, searching, and locating those histoan HTML element. An istamp is designed to be used in Ibook ries, and episodes within those histories; and f) a mechanism folder content to "point to" other Ibook folder content, such as for animating the Verbal histories (that is, a means of executan Ibook page. An istamp's name and address is intended to make it easy to link to istamps from within other !book 35 ing the logged Verbal co=ands so as to recreate the history of the Verbal conversation and contributions). locations. Every itag includes an istamp for the Ibook page Searching Verbal Histories containing the itag. An istamp is designed to be inserted into Verbal chat logs can be scanned and filtered based on the Ibook content. Tools that manipulate istamps generally supproperties of the Verbal co=ands in the logs. Some ofthe port a "drag and drop" operation. Therefore users can drag a page's istamp to a new location, and copy that istamp by 40 properties that can be combined to search or filter the logs include the name of the topic room, the name of the partici"dropping" it into that location. pants in a chat, the temporal characteristics of the script An istamp contains a reference to some content. In one elements (time, date, duration, etc.), the types of roles played embodiment, this reference takes the form of an HTML by the participants, the nature and effect of the Verbal comanchor element. The value of the "href' property of the ele45 mands that comprise the logs, and location properties of the ment points to the content that the istamp designates. content and messages contributed in the log. Display ofltags and !stamps Voice Chat Itags and istamps can be displayed when their associated As discussed above, in order to log into an Ibook site, an Ibook page is displayed, or they can be hidden. Any contribu!book site member may be required to launch an Ibook contor who creates an itag or an is tamp can indicate whether that 50 troller. The version of !book controller used with topic rooms element is to be displayed or to be hidden. The viewer of an may include an "audiorecorder" controller or audiorecorder. Ibook page can also indicate whether they want to have itags The audiorecorder helps contributors record, markup, save, and istamps displayed, hidden, or handled according to the and playback audio material, including material spoken by specification of the element's creator. The preference of the the user. The audio recorder is software that controls standard viewer may take precedence over the preference of the 55 audio, multimedia, and/or telephony hardware on the conelement's creator. tributor's computer. Verbal Chat Generally Using the audiorecorder, audio content can be added to an In one embodiment, the chat room of a topic room is Ibook folder. This audio content is added as "external content" as described above. Such a page is called an implemented using Verbal chat. In this embodiment, chat room participants chat by exchanging Verbal messages. Ver- 60 "audiopage". bal chat supports collaborative conversations by the particiMore particularly, recorded audio content can be downpants in the topic room. In one embodiment ofVerbol chat, loaded to the server that is hosting an Ibook site. An Ibook participants use the IRC protocol to exchange messages. Text page can be created whose itag points to the external audio messages can be typed by each participant, including Verbal content (this is the audio page). Using the audiorecorder, assistant objects. The messages appear in a chronological, 65 istamps that designate specific locations and/or regions in the audio recording can be added to the audiopage. These istamps scrollable log in a "Verbal chat" window on the screen of all are called "index points". When a user clicks on an index of the participants. Each entry in the chat log corresponds to US 7,571,212 B2 15 16 point in an audiopage, the audio content beginning at the the MySharer Ibook folder link in his or her identity lbook designated location, or within the designated region, will be folder. The URL should now look like this: http://free.familysystems.org/identity-ibook/myname/mysharer/myfilelplayed back for the user. In one embodiment, the MySharer software is used to ist.htm. The user may copy the path of this URL (excluding transfer audio content from a participant's machine to the 5 the filename myfilelist.htm) and paste it into the Web Address field in the "Nominated Dir Properties" window. For !book site. In this embodiment, each participant specifies through the MySharer software that they want a particular file example, copy: http://free.familysystems.org/identity-ibook/ folder on their computer to be regularly updated and synchromyname/mysharer. 6. Enter his or her user ID and password for his or her nized with a corresponding folder on the !book site. Each participant may specifY that their audiorecorder is to drop 10 identity lbook folder in the Userid and Password fields. audio files into their local copy of the shared folder. When a 7. Click apply to apply your changes. person makes a recorded co=ent in the topic room, an audio 8. Click the general tab and make sure that the send chat messages check box is selected. Set update, for example, to file with a recording of their co=ent is placed in their local one minute. copy of the shared folder. The MySharer software may then copy that file into the !book site synchronized folder. From 15 9. Click OK to save the changes to the general tabset and there, the MySharer software may propagate a copy of the exit from the MySharer options window. 10. To enable the MySharer software to automatically recorded co=ent to the corresponding folder on each participant's computer. upload his or her files from the nominated directory at the Software Usage specified interval, click start on the MySharer window. The following explains how to integrate one specific 20 To start !book chat, a user may: embodiment of a standalone audiorecorder, the MySharer 1. Start the Ibook controller, go to the chat menu, and software, and chat, to record, send, and play back voice mesconnect to the chat server (e.g., the free.familysystems.org sages while co=unicating with people in a chat room. server, and the chat room is talk). The chat room is displayed. When a topic room member creates a recording, it will be FIG. 7 shows an illustrative chat room window 8000. created in a directory selected by the member. This directory 25 2. Make sure that Verbal co=ands are shown. (fo check ifVerbol co=ands are shown, click menu and then options is specified as part of a MySharer mapping. The MySharer software will therefore upload the recording file to a selected on the chat room window. The options dialog is displayed. Ibook folder. When the MySharer software has uploaded the Make sure the show Verbal commands check box is checked.) 3. Each time the MySharer software uploads the voice file, a message may be displayed in the Ibook chat window. This message may be selected by the member to link to the file 30 message files, see, in the chat room window, a "My Sharer has in the chat window, and the file will play. updated" message against the name of a user. Below it, there will be a link to the voice message. The user may click the link To use voice chat: 1. Create a MySharer mapping-This enables the to play back the voice message. My Sharer software to upload the wave file of your recording To start a recording, a user may: to an Ibook site (e.g., free.familysystems.org). 35 1. Record his or her voice message. This may be done with an external microphone connected to the client computer's 2. Start !book chat-This enables the user to see that the MySharer software has carried out the upload request, and to sound card. click on a link to the wave file to play it back. 2. Start the standalone audiorecorder (e.g., build 27) by for 3. Create a recording using audiorecorder-Record your example clicking Start>Programs>Audio Recorder voice input, using for example an external mike attached to 40 V.l.0.27>Standalone Audio Recorder. FIG. 8 shows an illusyour PC's sound card. trative audiorecorder window 9000. A user needs to create the mapping between the directory 3. Choose the directory where he or she wants to store the on his or her client computer in which the audio recordings voice messages. The default illustrated in FIG. 8 is C:\My are saved, and a MySharer directory on an Ibook site (e.g., Recordings, but any suitable directory may be selected. free.familysystems.org) If an appropriate mapping already 45 4. Using his or her microphone to record your message, exists, then this is not necessary. click the record button to start recording and click stop to To create a mapping, a user may: finish it. The recording will be saved in the chosen directory 1. Start the MySharer software (e.g., build 138, which is and the MySharer software will copy the file to the chosen part of build 144 of the !book controller). lbook folder, and send a message to !book chat. 2. Click MySharer/Options-the MySharer options dialog 50 Topic Room Properties Every topic room page may have its own set of rights and is displayed. 3. Click the Add to create a new mapping. A "Nominated privileges, which may be determined by some of the stateDir Properties" window may be displayed. FIG. 6 shows an ments in its Verbal script. Every Ibook site member may have illustrative "Nominated Dir Properties" window 7000. his or her own rights and privileges, which are specified in that 4. In the field local directory, enter the name of directory 55 member's identity. Many roles carry with them certain rights, from which the voice messages will be uploaded. This may be privileges, and constraints, which are specified in the role. performed by using the browse button to select the directory, The final rights, privileges, and constraints of a participant or if a standalone audiorecorder is running, highlight the path in a chat room are determined by a well-defined composition (such as C:\My Recordings) in the recordings directory field of the rights, privileges, and constraints specified in the topic in the Audio Recorder window, and press the keys Ctrl+C to 60 room folder, the participant's identity lbook folder, and the copy this value to the Windows clipboard, then press Ctrl+V participant's current Persona, if any. to paste it into the Local Directory field. Verbal 5. In the field Web Address, enter the full web address of his A. Behavior oflbook Objects or her !book folder. The user should make sure, for example, The behavior of an lbook folder is the composition of the that he or she has enrolled on free.familysystems.org- 65 behavior of that Ibook folder's pages. The behavior of an the user should then have an identity !book folder in their Ibook page is defined by the Verbal script in the vspace of the name. The user may open his or her !book folder, and click page's itag. US 7,571,212 B2 17 18 objects; b) passing messages between Verbol objects; and c) B. The Verbol Architecture mapping Verbol names to specific Verbol objects, and for The Verbol architecture is an architecture for creating, locating those objects. sustaining, and supporting communication between indepenThe Verbol minimum operating enviromnent is a non-Verdent, distributed, self-regulating, cooperating objects. An object designed to exhibit some interesting or useful behavior 5 bol object. Like all non-Verbol objects, it can be given a Verbol wrapper. One embodiment of the Verbol minimum within the Verbol architecture is called a Verbol object. Verbol operating enviromnent for Ibook folders is implemented in objects exhibit their behavior when they are activated within Java. a virtoal computing enviromnent called the Verbol minimum E. The Verbol Standard Ibook Language operating enviromnent. The behavior of Verbol objects is There are two types of statements in the Verbol standard specified in Verbol scripts associated with those objects. Ver- 10 Ibook language: "listening statements" and "action statebol objects have two types of behavior: they exchange mesments" (sometimes referred to as "imperative statements"). sages with other Verbol objects, and they control non-Verbol There are two common listening statements: the "whenever" objects. statement and the "for'' statement. Within the Verbol minimum operating enviromnent, VerThe whenever statement, as discussed above, has the folbol objects may communicate with each other using any 15 lowing form: Whenever <event pattern> <action pattern>. language they like. Obviously, objects that don't understand When an !book page is loaded, the Ibook controller may the same language can't communicate effectively, so useful execute all of the whenever statements in the page's vspace. interaction between Verbol objects only occurs when the Each whenever statement represents a condition for which the objects that are trying to communicate employ the same language. Colloquially, it may be said that Verbol objects "speak 2° controller is to "listen", and an action to be taken if that condition is found. The actions are Verbol action statements. a Verbol language," but two perfectly legitimate Verbol When an action is to be taken, the corresponding Verbol objects may understand completely different languages, and action statement is executed. be utterly unable to communicate. On the other hand, the The for statement has the following form: For <action behavior of a single Verbol object, as found in the Verbol script for that object, could be specified in a language that 25 pattern> <vspace designator>. Whenever a Verbol object receives a command (a Verbol action statement), it may only that object understood. search for either a whenever statement whose event pattern A Verbol object may use a Verbol interpreter to analyze and matches the Verbol action, or a for statement whose action process its scripts and any Verbol messages it receives. The pattern matches the Verbol action. If a matching for statement Verbol interpreter, in turn, may make use of a Verbol grammar to parse the messages and scripts, and a Verbol processor to 30 is found, the Verbol script in the designated vspace is scanned to "resolve" the action to be taken to execute the action process the parsed messages and scripts. The language that a statement being processed. The vspace designator may be an Verbol object understands may be completely determined by expression that typically resolves to another Ibook page. the Verbol interpreter and the Verbol grammar that it uses to Commonly used Verbol action statements may include for analyze and process its scripts and messages. 35 example: a) copy [in/to] <ibook>/own book; b) play Therefore, two Verbol objects can communicate reliably if <audiopage istamp>; and c) create <new page name> [based and only if they use the same, or compatible, Verbol interpreton] <template specifier>. ers and grammars. Computer Program Listing Appendix Topic rooms, !book folders and pages, istamps, the !book The computer program listing appendix submitted on two controller, and the Verbol chat controller are all Verbol 40 copies (i.e., copy 1 and copy 2) of a compact disc includes objects. They are called Verbol !book objects. build instructions in java source code for partial embodiments The !book controller may contain a Verbol minimum operof the methods described above. ating environment. The !book controller places each Verbol The foregoing is merely illustrative ofthe principles of this !book object it holds into its Verbol minimum operating enviinvention and various modifications can be made by those ronment, thereby activating the object and endowing it with 45 skilled in the art without departing from the scope and spirit of the behavior specified by its script. the invention. What is claimed is: Verbol !book objects may all speak a language referred to 1. A method for using chat messages, comprising: as the Verbol standard !book language. Verbol !book objects enabling a software object associated with a web browser may use the Verbol standard !book language both for the operated by a first user on a computer to generate and messages they send and receive, and for the scripts that define so pass chat messages understandable by a human being as their behavior. though sent by the first user from the first user to one or Verbol !book objects may all speak the same language more users when the first user changes a location of the because they all use the same Verbol interpreter and grammar. first user's web browser, wherein each message from the The Verbol interpreter they use is called the Verbol standard first user contains the location of the first user's web !book interpreter, and the grammar is called the Verbol stan- 55 browser; dard !book grammar. enabling a software object associated with a web browser C. Verbol Architecture Design Principles operated by a second user on a computer to generate and Verbol objects may control all their own behavior (includpass chat messages understandable by a human being as ing all copies). Verbol objects may inherit all contributed 60 though sent by the second user from the second user to behavior. Verbol objects are called by their name. Each Verbol one or more users when the second user changes a locaobject may be its own class. A Verbol wrapper can be created tion of the second user's web browser, wherein each for any non-Verbol object. message from the second user contains the location of D. The Verbol Minimum Operating Enviromnent the second user's web browser; Every object may inherit the ability to interpret Verbol. The 65 enabling a given software object associated with a browser Verbol minimum operating enviromnent may be responsible operated by a user, on a computer that receives and displays the chat messages from the first user and the for a) creating, maintaining, running, and terminating Verbol us 7,571,212 82 19 20 3. The method defined in claim 1 further comprising second user, to also receive the chat messages from the enabling software objects to send chat messages describing first user and the second user; their actions. enabling the user to follow the first user by causing the 4. The method defined in claim 1, wherein a message is given software object to use the messages to change a passed each time the first user changes the location of the web location of the user's web browser to the locations conbrowser and wherein each message contains the current locatained in the messages received from the first user, and tion of the first user's web browser. then subsequently follow the second user by causing the S. The method defined in claim 1, wherein enabling the given software object to use the messages to change a user to follow the first user by causing the given software location of the user's web browser to the locations con- 10 object to use the messages to change a location of the user's web browser to the locations contained in the messages comtained in the messages received from the second user, prises enabling the user to input a whenever statement and an wherein multiple messages are received from the first associated script. user or the second user and used to successively change 6. The method defined in claim 1, wherein the messages the location of the user's web browser to the locations 15 from the software object associated with the first user to the contained in each of the messages received from the first one or more users are passed through a chat room. user or the second user; 7. The method defined in claim 1, further comprising: and enabling the given software object to receive the mesenabling the user to cause the given software object to sages from the first user or the second user and not change the location of the user's web browser to a locachange the location of the user's web browser when the 20 tion of the first user's web browser or the second user's user does not follow the first user or the second user or web browser using information from a message previafter the user stops following the first user or the second ously received from the first user or the second user. 8. The method defined in claim 1 further comprising user, whereby the messages are received by the given enabling the user to follow the first user and the second user software object and the location of the user's web browser is not changed to the locations contained in the 25 by causing the given software object to use the messages to change the location of the user's web browser to the locations messages. contained in the messages from the first user and the second 2. The method defined in claim 1 further comprising allowuser. ing software objects to listen to the chat messages and take scripted actions in response. * * * * *

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?