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)
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
·-= ~ ~
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
~
. 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 .
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 . 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] /own book; b) play
Therefore, two Verbol objects can communicate reliably if
; and c) create [based
and only if they use the same, or compatible, Verbol interpreton] .
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.
* * * * *