zakim-irc-bot.html
45.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Zakim IRC Teleconference Agent</title>
<link rel="stylesheet" href="/StyleSheets/generic-base-1.css" type="text/css">
<link rel="stylesheet" type="text/css" href="/Guide/guide2006.css">
<link rel="shortcut icon" href="/Icons/WWW/Literature.gif">
</head>
<body>
<div id="header">
<span class="logo"><a href="/"><img src="/Icons/WWW/w3c_home_nb" alt="W3C" height="48" width="72"></a></span>
<div class="breadcrumb">
<a href="/Member/">Member</a> → <a href="/Guide/">The Art of Consensus</a> →
<h1>The Zakim IRC Teleconference Agent</h1>
</div>
<p class="baseline">This <strong>Guidebook</strong> is the collected wisdom of the W3C Group Chairs and other collaborators.</p>
</div>
<div class="toc">
<h4>Also On This Page → </h4>
<ul>
<li style="display: none"><a href="#general">General Description</a> • </li>
<li><a href="#invite">Bringing Zakim</a> • </li>
<li><a href="#addressing">Talking to Zakim</a> • </li>
<li><a href="#identifying">Identify Teleconference</a> • </li>
<li><a href="#attendance">Attendance Reports</a> • </li>
<li><a href="#callers">Identify Participants</a> • </li>
<li><a href="#mute">Mute</a> • </li>
<li><a href="#disconnect">Disconnect Participants</a> • </li>
<li><a href="#dismiss">Dismiss Zakim</a> • </li>
<li><a href="#help">Help</a> • </li>
<li><a href="#speakerqueue">Floor Control</a> • </li>
<li><a href="#agenda">Agenda Tracking</a> • </li>
<li><a href="#pickscribe">Pick a Scribe</a> • </li>
<li><a href="#changes">Changes</a> • </li>
<li><a href="#acknowledgements">Acknowledgements</a></li>
</ul>
</div>
<h2 id="general">General Description</h2>
<div class="toolbox box" style="margin-bottom: 1em">
<h4>Nearby</h4>
<ul>
<li><a
href="http://www.w3.org/1998/12/bridge/Zakim.html">Zakim Bridge Status
Monitor</a></li>
<li><a
href="http://www.w3.org/Guide/1998/08/teleconference-calendar">W3C
Teleconference Schedule</a></li>
<li><a
href="http://www.w3.org/2002/03/RRSAgent"
>RRSAgent record-keeping bot</a></li>
</ul>
</div>
<p>The Zakim IRC "bot" is a Semantic Web agent ("swagent") that helps
facilitate meetings using IRC in conjunction with the W3C's Zakim audio
teleconference bridge.</p>
<!-- (See also the <a
href="http://www.w3.org/1998/12/bridge/Zakim.html">Zakim Bridge Status
Monitor</a> and the <a
href="http://www.w3.org/Guide/1998/08/teleconference-calendar">W3C
Teleconference Schedule</a>.) -->
<p>It is generally available on W3C's IRC server,
under the "Zakim" nickname. It gives information about teleconferences
available on the bridge, such as the names of the conferences available at
that time, the attendance list, and the possibility to associate telephone numbers with
people. When someone joins a conference, she/he will be announced to the channel using the
+xxx convention, where xxx can be a name, an anonymized phone number or a
generated ID for numbers that do not have callerID information. When someone
leaves, -xxx will be used, following the same convention.</p>
<p>In the following command descriptions, optional words in commands are indicated in square brackets. "please" can
be abbreviated to "pls" if you wish to be polite yet still save keystrokes.
("please" is also accepted at the end of all commands.)</p>
<h2 id="invite">Bringing Zakim into your meeting channel</h2>
<p>The command:</p>
<p class="command"><kbd>/invite Zakim <channel></kbd></p>
<p>will bring Zakim on to your IRC channel.</p>
<pre class="example"><samp>/invite zakim &test
[16:41] *** Zakim (~rrs-bridg@tux.w3.org) has joined &test</samp></pre>
<p>Some irc clients let you omit the channel name and will fill in the name
of current channel. This is a feature of the irc client, not of Zakim.</p>
<p>You might also want
<a href="http://www.w3.org/2002/03/RRSAgent">RRSAgent</a>
in your meeting channel to keep a record of the meeting in W3C Web space.
To start logging the channel, invite the RRSAgent bot as follows:</p>
<p class="command"><kbd>/invite rrsagent <channel></kbd></p>
<p>You can find the URL for the log being written by RRSAgent by typing
the command:</p>
<p class="command"><kbd>rrsagent, bookmark</kbd></p>
<h2 id="addressing">Talking to Zakim</h2>
<p>Once Zakim is on your IRC channel, all commands to Zakim begin with</p>
<p class="command"><kbd>Zakim,</kbd></p>
<p>Zakim's commands are not case sensitive, but, in general, must be
grammatically correct.</p>
<p>Zakim will respond to normal irc lines and to <kbd>ACTION</kbd> lines
(typically entered with the '/me' command in many irc clients).
The '/me' form is especially recommended for avoiding clutter
in <a href="http://www.w3.org/2002/03/RRSAgent">RRSAgent</a>
logs; interactions that serve no useful purpose in the
permanent irc record can be prefixed with '/me'. This typically
includes 'q+'
and 'ack' commands; e.g. 'q+' will be logged by RRSAgent whereas
'/me q+' will not [see <a href="http://www.w3.org/2002/03/RRSAgent#stop"
>RRSAgent log recording</a>]. Zakim will generally mimic the same usage
in the reply. For the commands such as 'agenda?' to which Zakim will
respond without being directly addressed, Zakim responds directly
if he is addressed and in third-person ('/me') form if he was not
addressed.</p>
<a name="identifying"></a>
<h2>Identifying your particular teleconference</h2>
<h3>List all conferences presently active on the Zakim bridge</h3>
<p>In order to have Zakim report relevant events, you must inform him which
teleconference is yours. Helpful commands include:</p>
<ul class="command">
<li> <kbd>[please] list [conferences]</kbd></li>
<li> <kbd>what conferences do you see?</kbd></li>
<li> <kbd>what conferences are active?</kbd></li>
<li> <kbd>what conferences?</kbd></li>
</ul>
<p class="def">
Conferences that are in the schedule for the present time but not
yet active are also listed.</p>
<pre class="example">[16:42] <Alan-MIT> zakim, list conferences
[16:42] <Zakim> I see Longfellow II</pre>
<h3>Associate the current IRC channel with <conf name></h3>
<ul class="command"><li> <kbd>this [conference] is <conf name></kbd></li>
<li> <kbd>move <conf name> to here</kbd></li>
<li> <kbd>move <conf name> to this channel</kbd></li>
</ul>
<p> Once you
have identified your conference name, Zakim will announce new participants and departing participants. The name you
enter must match the name or conference code of a conference
that is already in progress.
You need not enter the entire conference name; any part of the name
that uniquely identifies it is sufficient. The first form works
only when the conference is not already associated with an IRC
channel. The last two forms will move a conference away from
another IRC channel if necessary, informing the previous channel
of the move.
</p>
<pre class="example">[16:43] <Alan-MIT> zakim, this is longfello
[16:43] <Zakim> ok, Alan-MIT</pre>
<h3>Associate the current IRC channel with <conf name></h3>
<p class="command"><kbd>this [conference] will be <conf name></kbd></p>
<p>If your conference has not yet started use this command to inform
Zakim of a soon-to-start conference. Zakim will announce the start of the conference
as well as the new participants. The first conference, including any
already in progress, whose name contains the specified <conf
name> will be taken as the intended conference. If <conf
name> does not match any named conference a match will be attempted
to the conference code of a scheduled conference.<p>
<h3>Request the full name of the conference that is associated with the current IRC channel.</h3>
<p class="command"><kbd>what conference is this?</kbd></p>
<h3>Request the conference code for the current conference.</h3>
<ul class="command">
<li><kbd>what is the conference code?</kbd></li>
<li> <kbd>what is the passcode?</kbd></li>
<li> <kbd>what's the conference code?</kbd></li>
<li> <kbd>what's the code?</kbd></li>
</ul>
<a name="attendance"></a>
<h2>Attendance reports</h2>
<h3>Produce a report of the current participants in your conference</h3>
<ul class="command"><li><kbd>who is here?</kbd></li>
<li> <kbd>who's here?</kbd></li>
</ul>
<p> The
word 'still' may also be included, as in 'who is still here?'</p>
<pre class="example">[17:06] <Alan-MIT> zakim, who's here?
[17:06] <Zakim> On the phone I see ??P1, Alan
[17:06] <Zakim> On IRC I see Alan-MIT, gerald</pre>
<p>Note that Zakim reports both phone participants and irc participants.</p>
<h3>Produce a report of the current phone participants in your
conference</h3>
<ul class="command">
<li><kbd>who is on the phone?</kbd></li>
<li> <kbd>who is on the call?</kbd></li>
<li> <kbd>who's on the phone?</kbd></li>
<li> <kbd>who's on the call?</kbd></li>
</ul>
<p>Zakim will report only the phone participants.</p>
<p>The word 'still' may also be included, as in 'who is still
on the phone?'</p>
<h3>Produce a report of the names of all participants</h3>
<ul class="command">
<li><kbd>list attendees</kbd></li>
<li><kbd>list participants</kbd></li>
</ul>
<p>The report will show participants who are currently in your conference or who had been in the conference earlier and have since departed.</p>
<h3>Report whether <name> is present in some active
conference</h3>
<ul class="command">
<li><kbd>is <name> here?</kbd></li>
<li> <kbd>is <name> on the call?</kbd></li>
<li> <kbd>[have you] seen <name>?</kbd></li>
</ul>
<h3>Identify Group of people</h3>
<ul class="command"><li><kbd><name> has <n1>[, <n2> ...]</kbd></li>
<li> <kbd><name> holds <n1>[, <n2> ...]</kbd></li>
<li> <kbd><name> contains <n1>[, <n2> ...]</kbd></li>
</ul>
<p>Informs Zakim that the participant identified as <name> is a
group of people whose name(s) are <n1>, <n2>, etc. This is
useful in the case of a conference room phone around which many people
might be sitting. Zakim will include these names in the list of
attendees that he reports when the conference terminates and
in response to the 'list attendees' command.</p>
<ul class="command">
<li><kbd><n1> is with <name></kbd></li>
</ul>
<p>Like the commands above, this informs Zakim that the participant
identified as <name> is a group of people whose names are
<name> and <n1>. This is normally used when a pair of
people are using a conference room. Zakim will include both names
in the list of attendees that it reports when the conference
terminates.</p>
<ul class="command"><li><kbd><name> [has] [just] arrived in <name2></kbd></li>
<li> <kbd><name> [has] [just] entered <name2></kbd></li>
<li> <kbd><name> is in <name2></kbd></li>
<li> <kbd><name2> [now] also has <name></kbd></li>
<li> <kbd><name2> [now] also holds <name></kbd></li>
<li> <kbd><name2> [now] also contains <name></kbd></li></ul>
<p>Informs Zakim that another participant should be added to the group
identified by <name2>.</p>
<ul class="command">
<li><kbd><name> [has] [just] left <name2></kbd></li>
<li> <kbd><name> [has] [just] departed <name2></kbd></li>
</ul>
<p>Informs Zakim that the group identified by <name2> no longer
contains the participant <name>.</p>
<ul class="command"><li><kbd><name> no longer has <n1>[, <n2> ...]</kbd></li>
<li> <kbd><name> no longer holds <n1>[, <n2> ...]</kbd></li>
<li> <kbd><name> no longer contains <n1>[, <n2> ...]</kbd></li>
</ul>
<p>Informs Zakim that the group identified by <name> no longer
contains the participant(s) <n1>, etc.</p>
<ul class="command">
<li><kbd>who is in <name>?</kbd></li>
</ul>
<p>Reports the parties thought to be present in the group identified by
<name>.</p>
<a name="callers"></a>
<h2>Identifying participants</h2>
<p>Once you have informed Zakim of your teleconference, he will report the
comings and goings of participants. New arrivals are announced to the channel
using the +xxx convention, and departures as -xxx. There are several ways
in which conferees are identified:</p>
<ol>
<li>The conferee was called by the Zakim bridge, (staff only). The caller
will be identified by name.</li>
<li>The conferee called in on a line which supplied the caller's telephone
number (CallerID) and that number was known to Zakim. The caller will be
identified by name. </li>
<li>The conferee called in on a line which supplied the caller's telephone
number (CallerID) and that number was NOT known to Zakim. The caller will
be identified by an anonymized version of the calling number. Note
that you can <a
href="http://www.w3.org/1998/12/bridge/info/name.php3">supply your
information</a> to be added to the W3C bridge monitor database to
help Zakim recognize you in the future.</li>
<li>The conferee called in on a line which did NOT supply the caller's
telephone number. The caller will be identified as "??Pnn" where "nn" is
the port on the Zakim bridge used by the caller.</li>
<li><em>experimental feature</em>: The conferee entered an individual
identifier via the telephone keypad after joining the conference;
<strong>43<em>nnn</em>#</strong>. ('43' corresponds to 'ID' on
the <a href="/Guide/1998/08/phone">keypad</a>.)</li>
<li>Zakim was unable to determine any information about the caller. In that
case the caller will be identifed by a generated 2 to 4 character
sequence, "??zzz".</li>
</ol>
<p>You can help Zakim identify callers by name using the following
commands:</p>
<ul class="command"><li><kbd><old identifier> is perhaps <name></kbd></li>
<li> <kbd><old identifier> is possibly <name></kbd></li>
<li> <kbd><old identifier> is probably <name></kbd></li>
<li> <kbd><old identifier> may be <name></kbd></li></ul>
<p>Supplants <old identifier> with <name>, adding the
<em>maybe</em> flag. This means that this association is not certain
and will not be saved for future references. Such callers are
identified in lists with a "?". Future rejoin from the same number will
show "+xxx is perhaps yyy".</p>
<pre class="example">[17:07] <Alan-MIT> zakim, ??P1 may be Foo
[17:07] <Zakim> +Foo?; got it
[17:09] <Alan-MIT> zakim, who's here?
[17:09] <Zakim> I see Foo?, Alan</pre>
<ul class="command"><li><kbd><old identifier> is <name></kbd>
</li></ul>
<p>Supplants <old identifier> with <name>.</p>
<pre class="example">[17:13] <Alan-MIT> zakim, ??P0 is AlanK
[17:13] <Zakim> +AlanK; got it</pre>
<ul class="command"><li><kbd><old name> is really <name></kbd></li></ul>
<p>This command reassigns names, and removes any <em>maybe</em> flag if
one was present.</p>
<pre class="example">[17:10] <Alan-MIT> zakim, foo is really Bob
[17:10] <Zakim> +Bob; got it</pre>
<ul class="command"><li><kbd><old identifier> is temporarily <name></kbd>
</li></ul>
<p>Supplants <old identifier> with <name> for this call
only. After the caller disconnects the name associated with the phone
number will revert to <old identifier>.</p>
<ul class="command"><li><kbd><old identifier> is [really] me</kbd></li>
</ul>
<p>Supplants <old identifier> with your IRC nick.</p>
<ul class="command"><li><kbd>I am <old identifier></kbd>
</li></ul>
<p>Supplants <old identifier> with your IRC nick if it was a
telephone number or other unknown party identifier, otherwise simply
associate your IRC nick with the named party. In the latter case
(associating your IRC nick with the named party), you may then use "me"
instead of entering your full name in commands such as "mute me",
"unmute me", "disconnect me", and "queue+ me".</p>
<ul class="command"><li><kbd>nick <irc-nick> is <name></kbd>
</li></ul>
<p>Associates an IRC nick with the named party, as in the case above.
This command is available for someone else to make the association
other than the person owning the nick. When the association is
known, Zakim will more often recognize when to unmute the caller.</p>
<p>When referring to a participant you need only use enough characters of the
participant's name to be unambiguous; e.g. a participant named 'TimBL' can be
referred to as just 'Tim'. The anonymized version of the telephone number
for a participant whose name is unknown ends in four characters. If an
abbreviated name does not match the left-most part of a known participant's
name and does match the last four characters of an anonymized telephone
number, Zakim will understand that the reference is to the participant at
that telephone number.</p>
<h3 id="mute">Muting</h3>
<p>The Zakim bridge has the capability to mute conferees. (Muting blocks
sound on a conferee's line from being heard on the conference.) Conferees
can mute themselves by dialing 61#. In that case, unmute is 60#.</p>
<h3>Mute the named participant</h3>
<ul class="command"><li><kbd>[please] mute <name></kbd></li></ul>
<p>The participant can unmute using
60#.</p>
<pre class="example">[17:14] <Alan-MIT> zakim, mute AlanK
[17:14] <Zakim> AlanK should now be muted
[17:15] <Alan-MIT> zakim, mute AlanK
[17:15] <Zakim> AlanK was already muted, Alan-MIT</pre>
<h3>Unmute the named participant</h3>
<ul class="command"><li><kbd>[please] unmute <name></kbd></li></ul>
<p> This command will undo BOTH
<strong>mute</strong> commands and 61#.</p>
<pre class="example">[17:17] <Alan-MIT> zakim, unmute AlanK
[17:17] <Zakim> AlanK should no longer be muted
[17:17] <Alan-MIT> zakim, unmute AlanK
[17:17] <Zakim> AlanK was not muted, Alan-MIT</pre>
<h3>Mute or unmute the named participant for 15 seconds</h3>
<ul class="command">
<li><kbd>[please] mute <name> temporarily</kbd></li>
<li> <kbd>[please] unmute <name> temporarily</kbd></li>
<li> <kbd>[please] temporarily mute <name></kbd></li>
<li> <kbd>[please] temporarily unmute <name></kbd></li>
</ul>
<p> These
requests are intended to facilitate the identification of callers who
are causing noise or echos.</p>
<h3>List all participants muted for any reason</h3>
<ul class="command"><li><kbd>who is muted?</kbd></li>
<li> <kbd>who's muted?</kbd></li></ul>
<p>Zakim does not distinguish
how the particpant became muted.</p>
<pre class="example">[17:18] <Alan-MIT> zakim, who's muted?
[17:18] <Zakim> I see no one muted</pre>
<h3>Noise, Voice detection</h3>
<ul class="command">
<li><kbd>who is talking?</kbd></li>
<li> <kbd>who's talking?</kbd></li>
</ul>
<p>Requests that Zakim-bot listen for 10 to 20 seconds then report the
names of any participants who were heard during that interval. This
request is intended to be an aid to determine which participants might
need to be muted. <em>If a line is generating sound at a very low
level, it may be reported here but not actually heard in the
conference; this is not uncommon for some phone lines that introduce
echo. Occasionally a port that is generating continuous sound might
not be reported; this is a bug.</em> In place of the word 'talking'
the words '<strong>speaking</strong>', '<strong>noisy</strong>' and
'<strong>making noise</strong>' may also be used.
</p>
<h3 id="disconnect">Disconnecting Participants</h3>
<p>If a participant is unable to hangup, the line can be disconnected on
request.</p>
<ul class="command"><li><kbd>[please] disconnect <name></kbd></li>
<li> <kbd>[please] drop <name></kbd></li>
<li> <kbd>[please] hangup <name></kbd></li></ul>
<p>Forceably disconnects the named participant.</p>
<h3 id="dismiss">Dismissing Zakim</h3>
<ul class="command">
<li><kbd>[please] excuse us</kbd></li>
<li> <kbd>bye</kbd></li>
<li> <kbd>[please] part</kbd></li>
<li> <kbd>[please] leave</kbd></li>
</ul>
<p>All disconnect the Zakim bot from your IRC channel. This has no
effect on the conference bridge itself.</p>
<pre class="example">[17:19] <Alan-MIT> zakim, excuse us
[17:19] *** Zakim (~rrs-bridg@tux.w3.org) has left &test (Zakim)</pre>
<h3 id="help">Help</h3>
<ul class="command"><li><kbd>[please] help</kbd></li>
</ul> <p>Displays an abbreviated list of some major commands. Due to "flood control" in
IRC, this may be slow.</p>
<ul class="command"><li><kbd>where is [+]<dialing code>?</kbd></li>
</ul> <p>Looks up a telephone number prefix in a North American area code
directory or in an international country code directory. The '+' may be
omitted only if the dialing code is exactly 3 digits; this will be
interpreted as a request to lookup a North American area code. Hyphens
and periods may be used in the dialing code and will be ignored.</p>
<h3 id="speakerqueue">Floor Control</h3>
<p>Zakim will help track a queue of participants wishing to speak. The
commands in this set need not be directly addressed to Zakim; they will be
recognized when addressed to no one in particular and also when received as
third person ('/me') messages.</p>
<h3>Add name(s) to the queue of individuals wishing to speak</h3>
<ul class="command"><li><kbd>queue+ [<name> [, <name> ...]]</kbd></li>
<li><kbd>q+ [<name>[, <name> ...]]</kbd></li>
<li><kbd>[<name>] raises hand</kbd></li>
<li><kbd>sees <name> [, <name>...] raise hand[s]</kbd></li>
<li><kbd>sees <name>'s [, <name>'s...] hand[s] [up]</kbd></li>
</ul>
<p>If
<name> is omitted or specified as 'me', the irc nick issuing the
request is used. The last three forms are intended particularly for /me
messages. A phone participant who does not have irc access can dial
<strong>41#</strong> to raise his or her hand. The mnemonic is
<strong>4</strong>=<strong>H</strong>and, <strong>1</strong>=up,
<strong>#</strong>='enter'. It is not necessary that the participant
be unmuted to dial this request. There is no audible feedback for a
dialed request so the chairperson is encouraged to verbally confirm the
queue request at an appropriate pause.</p>
<h3>Add name to the queue of individuals wishing to speak</h3>
<ul class="command">
<li><kbd>queue+ [<name>] [also] to <note></kbd></li>
<li><kbd>q+ [<name>] [also] to <note></kbd></li>
</ul>
<p>If
<name> is omitted or specified as 'me', the irc nick issuing the
request is used. The <note> is a comment to indicate why that
person wishes to speak; the word 'to' may also be written as ':'.
If the same name is added to the queue multiple times there may be
multiple notes. The word 'also' can be given in such cases however
it is not necessary.
</p>
<h3>Remove name(s) from the queue of individuals wishing to speak</h3>
<ul class="command"><li><kbd>queue- [<name>[, <name> ...]]</kbd></li>
<li><kbd>q- [<name>[, <name> ...]]</kbd></li>
<li><kbd>[<name>] lowers hand</kbd></li>
<li><kbd>sees <name> [, <name>...] lower hand[s]</kbd></li>
<li><kbd>sees <name>'s [, <name>'s...] hand[s] down</kbd></li>
</ul>
<p>If
<name> is omitted or specified as 'me', the irc nick issuing the
request is used. If a <name> is given explicitly and if it
matches the start of exactly one entry in the queue then it is
interpreted as if that full entry were entered; that is, unambiguous
abbreviations are recognized. Abbreviations are not recognized if the
name is omitted or 'me' is used; i.e. when the irc nick issuing the
request is assumed. The last three forms are intended particularly for
/me messages. A phone participant who does not have irc access can dial
<strong>40#</strong> to lower his or her hand. The mnemonic is
<strong>4</strong>=<strong>H</strong>and, <strong>0</strong>=down,
<strong>#</strong>='enter'. It is not necessary that the participant
be unmuted to dial this request.</p>
<h3>Move the speaker to the end of the queue</h3>
<ul class="command">
<li><kbd>q- later</kbd></li>
</ul>
<p>Moves the irc nick issuing the request to the end of the speaker
queue.</p>
<h3>Add the irc nick issuing the request to the end of the speaker
queue as a separate instance</h3>
<ul class="command"><li><kbd>q+ later [to <note>]</kbd></li>
</ul>
<p>Use this command if you wish to speak
more than once rather than presenting all your comments at one time.</p>
<h3>Place name(s) on the queue of individuals wishing to speak</h3>
<ul class="command">
<li><kbd>queue= [<name>[, <name> ...]]</kbd></li>
<li><kbd>q= <name>[, <name> ...]</kbd></li>
</ul>
<p>or replacing any names already on the queue. If "queue" is spelled out
and no names are specified then the queue is cleared.</p>
<h3>Display the queue of individuals wishing to speak</h3>
<ul class="command"><li><kbd>[who is on] queue?</kbd></li>
<li><kbd>[who's on] queue?</kbd></li>
<li><kbd>q?</kbd></li>
</ul> <p>'queue' can also
be abbreviated to just 'q' in the first two forms.</p>
<h3>Grant <name> permission to speak</h3>
<ul class="command"><li><kbd>[chair] recognize[s] <name></kbd></li>
<li><kbd>[chair] ack[s] <name></kbd></li>
</ul>
<p>If <name> corresponds
to a known participant and that participant is muted, Zakim will unmute
the participant. If <name> matches the start of exactly one name
on the queue of individuals wishing to speak (see 'queue+' above) then
the corresponding name is removed from the queue. However,
<name> need not be on the speaker queue, nor is the chair
obligated to acknowledge speakers in any particular order.</p>
<h3>Grant the first person on the speaker queue permission to speak</h3>
<ul class="command"><li><kbd>[chair] recognize[s] next [speaker]</kbd></li>
<li><kbd>[chair] ack[s] next [speaker]</kbd></li>
</ul> <p> The name will be displayed along with the remaining
speaker queue. If the queued name corresponds to a known
participant and that participant is muted, Zakim will unmute the
participant.</p>
<h3>Close the queue</h3>
<ul class="command"><li><kbd>[please] close the queue</kbd></li>
</ul> <p>Causes subsequent queue+ and 41# requests to leave the speaker
queue unchanged.</p>
<h3>Reopen the queue</h3>
<ul class="command"><li><kbd>[please] [re]open the queue</kbd></li>
</ul>
<p>Causes subsequent queue+ and 41# requests to be added to the
speaker queue. This is the default state when Zakim is invited to
a channel. The speaker queue will also be reopened whenever a new
agendum is taken up.</p>
<h3>Giving the Last Word</h3>
<ul class="command"><li><kbd>[please] give <name> the last word</kbd></li>
<li><kbd>[please] <name> has the last word</kbd></li>
</ul> <p>Grants <name> permission to speak, clears the remainder of
the speaker queue, and closes the speaker queue. Subsequent queue+
and 41# requests will leave the speaker queue unchanged.</p>
<h3>Timer for speakers</h3>
<ul class="command">
<li><kbd>[please] allow [each speaker] <number> minutes|seconds</kbd></li>
<li><kbd>[please] allow [speakers] <number> minutes|seconds</kbd></li>
<li><kbd>[please] time [each speaker] [at] <number> minutes|seconds</kbd></li>
<li><kbd>[please] time [speakers] [at] <number> minutes|seconds</kbd></li>
</ul>
<p>Causes the <strong>ack</strong> command to start a timer.
Zakim will
issue reminders as the speaker approaches the end of the alloted
speaking time. The keywords 'minutes' and 'seconds' can be abbreviated
to 'min', 'm', 'sec', or 's' respectively. 'give' may be used as a
synonym for 'allow'.</p>
<h3>Stop timer</h3>
<ul class="command"><li><kbd>[please] stop timing [speakers]</kbd></li>
</ul> <p>Causes Zakim to cease issuing reminders as speaker are acknowledged
and approach the end of a previously established speaking time.</p>
<h3>Stop tracking Queue</h3>
<ul class="command"><li><kbd>[please] ignore [the] queue</kbd></li>
</ul> <p>Requests that the Zakim bot stop tracking speaker queue changes. This
request must be addressed specifically to Zakim. This is not the same
as closing the queue; after Zakim has been told to ignore the queue,
it will give no feedback to queue+, queue-, and recognize requests.
If the queue is closed Zakim will continue to give feedback unless
it has also been told to ignore the queue.</p>
<h3>Start Tracking Queue</h3>
<ul class="command"><li><kbd>[please] track [the] queue</kbd></li>
</ul> <p>Requests that the Zakim bot begin tracking speaker queue changes.
This is the default state when Zakim is invited to a channel. This
request must be addressed specifically to Zakim. Note that the
speaker queue may be opened or closed independently of whether
Zakim is tracking the queue.</p>
<p>The speaker queue will be cleared at the end of the conference assigned to
the irc channel.</p>
<h2 id="agenda">Agenda Tracking</h2>
<p>Zakim will help track agenda items requested while a meeting is in
progress. Like floor control, the commands in this set need not be directly
addressed to Zakim; they will be recognized when addressed to no one in
particular and also when received as third person ('/me') messages.</p>
<h3>Add an agenda item</h3>
<ul class="command">
<li><kbd>agenda+ <text></kbd></li>
<li><kbd>agenda+ <text> '['<proposer>']'</kbd></li>
</ul>
<p>Adds an item described by <text> to the agenda, assigning it
the next sequential number. The irc nick of the person who entered the
request is recorded. In the second form, the brackets '[ ]' are part
of the command (the quotes are not) and indicate that the proposer is
someone other than the person who entered the request. The word
'agenda' may also be entered as 'agendum'.</p>
<pre class="example">[12:10] <RalphS> agenda+ minute-taker
[12:10] * Zakim notes agendum 1 added
[12:11] <RalphS> agenda+ chair for next meeting [Alan]
[12:11] * Zakim notes agendum 2 added
[12:11] <RalphS> zakim, agenda?
[12:11] <Zakim> I see 2 items remaining on the agenda:
[12:11] <Zakim> 1. minute-taker [from RalphS]
[12:11] <Zakim> 2. chair for next meeting [from Alan via RalphS]</pre>
<h3>Display the agenda</h3>
<ul class="command">
<li><kbd>what is [on] [the] agenda?</kbd></li>
<li><kbd>what's [on] [the] agenda?</kbd></li>
<li><kbd>list [the] agenda</kbd></li>
<li><kbd>show [the] agenda</kbd></li>
<li><kbd>agenda?</kbd></li>
</ul> <p>Displays the agenda.</p>
<h3>Modify an agenda item</h3>
<ul class="command"><li><kbd>agenda <number> = <newtext></kbd></li>
<li><kbd>agendum <number> = <newtext></kbd></li>
<li><kbd>item <number> = <newtext></kbd></li>
</ul> <p>Replaces the text of item <number> with <newtext>.</p>
<h3>Drop an item from the agenda</h3>
<ul class="command"><li><kbd>agenda- <number></kbd></li>
<li><kbd>item- <number></kbd></li>
<li><kbd>delete agendum <number></kbd></li>
<li><kbd>drop agendum <number></kbd></li>
<li><kbd>forget agendum <number></kbd></li>
<li><kbd>remove agendum <number></kbd></li>
<li><kbd>remove item <number></kbd></li>
</ul>
<p>Removes item <number> from the agenda. <em>Note the '-'
(hyphen) between the word 'agenda' and the number</em>. In the second
form the word 'agendum' may also be mis-written as 'agenda'.</p>
<h3>Open the discussion about an agenda item</h3>
<ul class="command"><li><kbd>take up agendum <number|pattern></kbd></li>
<li><kbd>open agendum <number|pattern></kbd></li>
<li><kbd>move to agendum <number|pattern></kbd></li>
</ul> <p>Indicates that agenda item <number> is open for discussion.
This gives Zakim the information needed to respond to subsequent
commands. The word 'agendum' may be mis-written as 'agenda' or
as 'item'. A text pattern (regular expression) may be given
instead of a number if the pattern matches exactly one agendum.</p>
<h3>Move to the next agenda item</h3>
<ul class="command"><li><kbd>[take up] next agendum</kbd></li>
<li><kbd>[open] next agendum</kbd></li>
<li><kbd>move to next agendum</kbd></li>
</ul>
<p>Indicates that the next non-closed agenda item in the list specified
by 'agenda order' or the lowest-numbered non-closed agenda item is open
for discussion. If an agendum is currently open it will be closed unless
it has been open for less than a minute. (This reduces confusion if
several people simultaneously instruct Zakim-bot to move to the next
agendum.) The word 'agendum' may be mis-written as 'agenda' or
as 'item'. The third form, 'move to ...', causes Zakim bot to display
the next agendum for the record, whether or not you addressed the bot
directly. If the current agendum has been open for less than a minute
use <strong>close this agendum</strong> explicitly to permit moving
to the next agendum.</p>
<pre class="example">[15:57] <RalphS> zakim, what is on the agenda?
[15:57] <Zakim> I see 3 items remaining on the agenda:
[15:57] <Zakim> 1. pick scribe [from RalphS]
[15:57] <Zakim> 2. review previous meeting minutes [from RalphS]
[15:57] <Zakim> 3. schedule next meeting [from RalphS]
[15:57] <RalphS> zakim, take up next agendum
[15:57] <Zakim> agendum 1. "pick scribe" taken up [from RalphS]
[15:57] <RalphS> next agendum
[15:57] * <em>Zakim thinks agendum 1 was just opened</em>
[15:57] <RalphS> close this agendum
[15:57] * <em>Zakim notes agendum 1 closed</em>
[15:57] * <em>Zakim sees 2 items remaining on the agenda; the next one is</em>
[15:57] * <em>Zakim 2. review previous meeting minutes [from RalphS]</em>
[15:57] <RalphS> next agendum
[15:57] * <em>Zakim thinks agendum 2. "review previous meeting minutes" taken up [from RalphS]</em>
[16:10] <RalphS> move to next agendum
[16:10] <Zakim> agendum 3. "schedule next meeting" taken up [from RalphS]
[16:11] <RalphS> zakim, what is on the agenda?
[16:11] <Zakim> I see 1 item remaining on the agenda:
[16:11] <Zakim> 3. schedule next meeting [from RalphS]</pre>
<h3>Create a reminder</h3>
<ul class="command">
<li><kbd>allow this [agenda] item <n> minutes</kbd></li>
<li><kbd>allow this agendum <n> minutes</kbd></li>
</ul>
<p>Schedules a reminder for <em>n</em> minutes in the future. The
reminder will be canceled if the current agendum has been closed or
a new agendum has been taken up.</p>
<h3>Reorder the agenda</h3>
<ul class="command"><li><kbd>[the] agenda order [is] a [, b]... [, m-[n]]...</kbd></li>
</ul> <p>Indicates the expected order in which the agenda items will be taken
up for discussion. Agenda items are specified by number. A list of
numbers separated by spaces or commas indicates individual agenda
items. Two numbers separated by hyphen indicates a range of items. A
single number followed by a hyphen followed by a space or comma
indicates a range of items starting with the first number and running
through the end of the list. Any items not included in the list will
be assumed to be added to the end of the list in numerical order. The
items need not actually be discussed in the indicated order.</p>
<pre class="example">[23:19] <RalphS> agenda+ first item
[23:19] * Zakim notes agendum 1 added
[23:19] <RalphS> agenda+ second item
[23:19] * Zakim notes agendum 2 added
[23:19] <RalphS> agenda+ third item
[23:19] * Zakim notes agendum 3 added
[23:19] <RalphS> what's on the agenda?
[23:19] * Zakim sees 3 items remaining on the agenda:
[23:19] * Zakim 1. first item [from RalphS]
[23:19] * Zakim 2. second item [from RalphS]
[23:19] * Zakim 3. third item [from RalphS]
[23:19] <RalphS> agenda order is 3,2
[23:19] * Zakim notes agenda order
[23:19] <RalphS> Zakim, agenda?
[23:19] <Zakim> I see 3 items remaining on the agenda:
[23:19] <Zakim> 3. third item [from RalphS]
[23:19] <Zakim> 2. second item [from RalphS]
[23:19] <Zakim> 1. first item [from RalphS]
[23:20] <RalphS> zakim, next agendum
[23:20] <Zakim> agendum 3. "third item" taken up [from RalphS]</pre>
<h3>What is the current agenda item?</h3>
<ul class="command"><li><kbd>what agendum [is open]?</kbd></li>
<li><kbd>what agendum is this?</kbd></li>
<li><kbd>what agendum are we on?</kbd></li>
<li><kbd>current agendum?</kbd></li>
</ul> <p>Requests feedback about the current open agenda item. The word
'agendum' may be mis-written as 'agenda' or as 'item'. The word
'which' may be used in place of 'what'.</p>
<h3>Close an agenda item</h3>
<ul class="command"><li><kbd>close agendum <number></kbd></li>
</ul> <p>Marks item <number> as needing no further discussion. The next
remaining item (if any) will be displayed. The word 'agendum' may be
mis-written as 'agenda' or as 'item'.</p>
<ul class="command"><li><kbd>close this agendum</kbd></li>
</ul> <p>Marks the current agenda item as needing no further discussion. The
next remaining item (if any) will be displayed. The word 'agendum' may
be mis-written as 'agenda' or as 'item'.</p>
<pre class="example">[23:28] <RalphS> zakim, close this agendum
[23:28] <Zakim> agendum 3 closed
[23:28] <Zakim> I see 2 items remaining on the agenda; the next one is
[23:28] <Zakim> 2. second item [from RalphS]</pre>
<p>If the specified agendum is currently open for discussion and the
speaker queue is not empty Zakim will report this fact and decline
to close the item. If the meeting facilitator wishes to move on
despite this (e.g. perhaps knowing that a speaker is really
queued to speak to a later topic), prefix the request with the
word 'really':
<ul class="command"><li><kbd>really close this agendum</kbd></li>
<li><kbd>really close agendum <number></kbd></li>
</ul>
<h3>Defer an item on the agenda</h3>
<ul class="command"><li><kbd>skip agendum <number></kbd></li>
<li><kbd>skip item <number></kbd></li>
<li><kbd>skip this agendum</kbd></li>
<li><kbd>skip this item</kbd></li>
</ul>
<p>Marks item <number> or the currently open item as "skipped" and lists it at the end of
the agenda after any non-closed items. Items may be skipped even
after they have been taken up; e.g. by 'open next agendum'.</p>
<h3>Clear the agenda</h3>
<ul class="command"><li><kbd>[please] clear [the] agenda</kbd></li>
</ul> <p>Removes all items from the agenda.</p>
<a id="readAgenda" name="readAgenda"></a>
<h3>Read agenda from another source</h3>
<ul class="command"><li><kbd>[please] read agenda from <uri></kbd></li>
</ul>
<p>Takes <em>uri</em> as a file of RDF/XML and queries it for
agenda items. Any agenda items found will be added to the current
agenda. See <a href="/2004/02/agenda">description of agenda format</a>
for details on the RDF graph that is expected. Paul Downey wrote
a <a href="http://blog.whatfettle.com/archives/000402.html"
>tool for extracting RDF/XML agendas from text messages</a>;
you can append the URI of your text message to Paul's
<a href="http://whatfettle.com/2006/07/RDFAgenda/">RDFAgenda</a>
URI to construct a URI for the RDF/XML form of a suitably-formatted
text agenda.</p>
<a id="saveAgenda" name="saveAgenda"></a>
<h3>Save agenda to W3C Web site</h3>
<ul class="command"><li><kbd>[please] save agenda [team-access|member-access|world-access]</kbd></li>
</ul>
<p>Writes the current agenda to the Web in RDF/XML form as
http://www.w3.org/yyyy/mm/dd-<channel>-agenda where 'yyyy' is the
current year, 'mm' is the current month, and 'dd' is the current day.
If an access option is specified, the URI will be given the corresponding
visibility. The suffix <em>-access</em> may also be written as
<em>-visible</em> or may be omitted entirely.</p>
<h3>Program a reminder alarm</h3>
<ul class="command">
<li><kbd>[please] ping [me|us] in <interval> [minutes|hours]</kbd></li>
<li><kbd>[please] remind [me|us] in <interval> [minutes|hours] [about|to|that <text>]</kbd></li>
</ul>
<p>Schedules a notice for <interval> minutes or hours in the future.
<text> will be displayed at that time if it is specified. This
request must be addressed specifically to Zakim. The word 'minutes' may
be abbreviated to 'minute', 'mins', 'min', 'm', or may be omitted.
The word 'hours' may be abbreviated to 'hour' or 'h'.
There is no significant difference between 'ping' and 'remind', between
'me' and 'us', or between 'about', 'to', and 'that'.</p>
<h3>Stop tracking agenda changes</h3>
<ul class="command"><li><kbd>[please] ignore [the] agenda</kbd></li>
</ul> <p>Requests that the Zakim bot stop tracking agenda changes. This
request must be addressed specifically to Zakim.</p>
<h3>Start tracking agenda changes</h3>
<ul class="command"><li><kbd>[please] track [the] agenda</kbd></li>
</ul> <p>Requests that the Zakim bot begin tracking agenda changes. This
request must be addressed specifically to Zakim. This is the default
state when Zakim is invited to a channel.</p>
<p>The agenda will be cleared at the end of the conference assigned to the
irc channel.</p>
<a name="pickscribe"></a>
<h3>Minute-Taking (Scribe)</h3>
<p>Zakim will help choose a scribe (minute-taker) from the current
participants in the meeting.</p>
<ul class="command"><li><kbd>[please] propose a scribe</kbd></li>
<li><kbd>[please] pick a scribe</kbd></li>
<li><kbd>[please] nominate a scribe</kbd></li>
<li><kbd>[please] choose a scribe</kbd></li>
<li><kbd>[please] select a scribe</kbd></li>
</ul>
<p>Randomly selects a minute-taker from the current participants. The
word 'victim' may also be used in place of 'scribe'.</p>
<h2 id="changes">Change History</h2>
<h3>2006-12</h3>
<p>'Skip agendum <n>' and 'skip this agendum'
added. 'Delete' and 'forget' added as synonyms for
'drop' in 'drop agendum <n>'.</p>
<p>Decline to close an agendum unless the speaker queue is empty or
'really' is part of the close request.</p>
<p>'Take up item <pattern>' had been case sensitive
and no longer is.</p>
<p>Zakim bot leaves a channel after a long period of inactivity
(nothing for Zakim to do). Previously only a queued reminder
would keep Zakim from departing. Non-closed, non-skipped agenda
items will now also keep Zakim on the channel indefinitely.</p>
<p>Other improvements and bug fixes that may only be noticed by a few.<p>
<a name="acknowledgements" id="acknowledgements"></a>
<h2>Acknowledgements</h2>
<p>The first draft of this tutorial page was written in December 2001
by Alan Kotok with help
from Ralph Swick.
Yves Lafon gave it a good start with a Unix-style <a
href="http://www.w3.org/2001/11/zakim.html">man page</a>. Karl Dubost
restyled it to match the W3C participants
<a href="http://www.w3.org/Guide/">Guidebook</a> style in July 2006.</p>
<p>The Zakim IRC bot was written by Ralph Swick.</p>
<p>The development of the Zakim IRC bot was supported in part by
funding from US Defense Advanced Research Projects Agency (DARPA)
and Air Force Research Laboratory, Air Force Materiel Command, USAF,
under agreement number F30602-00-2-0593, "Semantic Web Development".</p>
<p>The Zakim teleconference bridge is a customized
<a href="http://www.compunetix.com">Compunetix</a>
Contex Conferencing system. Thanks to Compunetix for providing
technical details that enabled the development of W3C's Zakim tools.</p>
<p><a name="name" id="name"><em>Why is this called 'Zakim'?</em></a></p>
<p>The World Wide Web Consortium (<a href="http://www.w3.org/">W3C</a>)
conducts a lot of its technical design discussions using the Web, e-mail, and
teleconferences. We use so much teleconferencing that we have our own
in-house teleconference bridges, housed at <a
href="http://web.mit.edu/">MIT</a>. When we were choosing names for the
systems someone proposed that we adopt the names of the vehicle bridges
across the nearby
<a href="http://www.charlesriverconservancy.org/crb/crb.html"
>Charles River</a>. So in 1998 we had our own 'Longfellow' and 'Tobin'
conference bridges. When we made a major upgrade of our teleconference
systems in 2001 to a new generation of all-digital bridge of course we were
immediately attracted to the name 'Zakim', in honor both of human rights
advocate <a href="http://mm.acor.org/Memoriam/Zakim_Leonard.htm"
>Lenny Zakim</a> who gave voice to the people and the <a
href="http://www.leonardpzakimbunkerhillbridge.org/">Zakim
bridge</a> across the Charles.</p>
<hr>
<address>
<a href="http://validator.w3.org/check/referer"><img border="0"
src="http://validator.w3.org/images/vh40.gif" alt="Valid HTML 4.0!"
height="31" width="88" align="right">
</a> <a
href="mailto:swick@w3.org">Ralph Swick</a><br>
$Date: 2007/04/11 14:46:03 $
</address>
</body>
</html>