|
|
1.1 root 1: .\" @(#)pubuse 6.1 (Berkeley) 6/2/86
2: .\"
3: ..... use tbl and troff \-ms
4: .if \nP=0 .IM
5: .TL
6: Updating Publication Lists
7: .AU
8: M. E. Lesk
9: .NH
10: Introduction.
11: .PP
12: .\".if \nP>0 .pn 14
13: This note describes several commands to update the
14: publication lists.
15: The data base consisting of these lists is kept in
16: a set of files in
17: the directory
18: .I /usr/dict/papers
19: on the Version 7
20: .UX
21: system.
22: The reason for having special commands to update these files is
23: that they are indexed, and the only reasonable way to find the
24: items to be updated is to use the index.
25: However, altering the files
26: destroys the usefulness of the index,
27: and makes further editing difficult.
28: So the recommended procedure is to
29: .IP (1)
30: Prepare additions, deletions, and changes in separate files.
31: .IP (2)
32: Update the data base and reindex.
33: .LP
34: Whenever you make changes, etc. it is necessary to run
35: the ``add & index'' step before logging off; otherwise the
36: changes do not take effect.
37: The next section shows the format of the files
38: in the data base.
39: After that, the procedures for
40: preparing additions, preparing changes, preparing deletions,
41: and updating the public data base are given.
42: .NH
43: Publication Format.
44: .PP
45: The format of a data base entry is given completely in ``Some Applications
46: of Inverted Indexes on UNIX'' by M. E. Lesk,
47: the first part of this report,
48: .if \nP=0 (also TM 77-1274-17)
49: and is summarized here via a few examples.
50: In each example, first the output format for an item is shown,
51: and then the corresponding data base entry.
52: .LP
53: .DS
54: .ti 0
55: Journal article:
56: .fi
57: .ll 5i
58: A. V. Aho, D. J. Hirschberg, and J. D. Ullman, ``Bounds
59: on the Complexity of the Maximal Common Subsequence Problem,''
60: .I
61: J. Assoc. Comp. Mach.,
62: .R
63: vol. 23, no. 1, pp. 1-12 (Jan. 1976).
64: .nf
65: .ll
66: .sp
67: %T Bounds on the Complexity of the Maximal Common
68: Subsequence Problem
69: %A A. V. Aho
70: %A D. S. Hirschberg
71: %A J. D. Ullman
72: %J J. Assoc. Comp. Mach.
73: %V 23
74: %N 1
75: %P 1-12
76: %D Jan. 1976
77: .if \nP=0 %M TM 75-1271-7
78: .if \nP>0 %M Memo abcd...
79: .DE
80: .DS
81: .ti 0
82: Conference proceedings:
83: .fi
84: .ll 5i
85: B. Prabhala and R. Sethi, ``Efficient Computation of Expressions with Common
86: Subexpressions,''
87: .I
88: Proc. 5th ACM Symp. on Principles of Programming Languages,
89: .R
90: pp. 222-230, Tucson, Ariz. (January 1978).
91: .nf
92: .ll
93: .sp
94: %A B. Prabhala
95: %A R. Sethi
96: %T Efficient Computation of Expressions with
97: Common Subexpressions
98: %J Proc. 5th ACM Symp. on Principles
99: of Programming Languages
100: %C Tucson, Ariz.
101: %D January 1978
102: %P 222-230
103: .DE
104: .DS
105: .ti 0
106: Book:
107: .fi
108: .ll 5i
109: B. W. Kernighan and P. J. Plauger,
110: .I
111: Software Tools,
112: .R
113: Addison-Wesley, Reading, Mass. (1976).
114: .nf
115: .ll
116: .sp
117: %T Software Tools
118: %A B. W. Kernighan
119: %A P. J. Plauger
120: %I Addison-Wesley
121: %C Reading, Mass.
122: %D 1976
123: .DE
124: .DS
125: .ti 0
126: Article within book:
127: .fi
128: .ll 5i
129: J. W. de Bakker, ``Semantics of Programming Languages,''
130: pp. 173-227 in
131: .I
132: Advances in Information Systems Science, Vol. 2,
133: .R
134: ed. J. T. Tou, Plenum Press, New York, N. Y. (1969).
135: .nf
136: .ll
137: .sp
138: %A J. W. de Bakker
139: %T Semantics of programming languages
140: %E J. T. Tou
141: %B Advances in Information Systems Science, Vol. 2
142: %I Plenum Press
143: %C New York, N. Y.
144: %D 1969
145: %P 173-227
146: .DE
147: .DS
148: .ti 0
149: Technical Report:
150: .fi
151: .ll 5i
152: F. E. Allen, ``Bibliography on Program Optimization,''
153: Report RC-5767, IBM T. J. Watson Research Center,
154: Yorktown Heights, N. Y. (1975).
155: .nf
156: .ll
157: .sp
158: %A F. E. Allen
159: %D 1975
160: %T Bibliography on Program Optimization
161: %R Report RC-5767
162: %I IBM T. J. Watson Research Center
163: %C Yorktown Heights, N. Y.
164: .DE
165: .DS
166: .di xx
167: .ti 0
168: Technical Memorandum:
169: .fi
170: .ll 5i
171: A. V. Aho, B. W. Kernighan and P. J. Weinberg,
172: ``AWK \- Pattern Scanning and Processing Language'',
173: TM 77-1271-5, TM 77-1273-12, TM 77-3444-1 (1977).
174: .nf
175: .ll
176: .sp
177: %T AWK \- Pattern Scanning and Processing Language
178: %A A. V. Aho
179: %A B. W. Kernighan
180: %A P. J. Weinberger
181: %M TM 77-1271-5, TM 77-1273-12, TM 77-3444-1
182: %D 1977
183: .di
184: .if \nP=0 .xx
185: .rm xx
186: .DE
187: .LP
188: Other forms of publication can be entered similarly.
189: Note that conference
190: proceedings are entered as if journals,
191: with the conference name on a
192: .I %J
193: line.
194: This is also sometimes appropriate for obscure publications
195: such as series of lecture notes.
196: When something is both a report and an article, or
197: both a memorandum and an article, enter all necessary information
198: for both; see the first article above, for example.
199: Extra information (such as ``In preparation'' or ``Japanese translation'')
200: should be placed on a line beginning
201: .I %O .
202: The most common use of %O lines now is for ``Also in ...'' to give
203: an additional reference to a secondary appearance of the same paper.
204: .PP
205: Some of the possible fields of a citation are:
206: .TS
207: c c 5 c c
208: a l a l .
209: Letter Meaning Letter Meaning
210: A Author K Extra keys
211: B Book including item N Issue number
212: C City of publication O Other
213: D Date P Page numbers
214: E Editor of book R Report number
215: I Publisher (issuer) T Title of item
216: J Journal name V Volume number
217: .TE
218: Note that
219: .I %B
220: is used to indicate the title
221: of a book containing the article being entered;
222: when an item is an entire book, the title should
223: be entered with a
224: .I %T
225: as usual.
226: .PP
227: Normally, the order of items does not matter. The only exception is
228: that if there are multiple authors (%A lines) the order of authors
229: should be that on the paper.
230: If a line is too long, it may be continued on to the next line;
231: any line not beginning with % or . (dot) is assumed to be
232: a continuation of the previous line.
233: Again, see the first article above for an example of a long title.
234: Except for authors, do not repeat any items; if two %J lines are
235: given, for example, the first is ignored.
236: Multiple items on the same file should be separated by blank lines.
237: .PP
238: Note that in formatted printouts of the file, the
239: exact appearance of the items is determined by
240: a set of macros and the formatting programs.
241: Do not try to adjust fonts, punctuation, etc. by editing
242: the data base; it is wasted effort. In case someone has
243: a real need for a differently-formatted output, a new set
244: of macros can easily be generated to provide alternative
245: appearances of the citations.
246: .NH
247: Updating and Re-indexing.
248: .PP
249: This section describes the commands that are used to manipulate
250: and change the data base.
251: It explains the procedures for (a) finding references in the data base,
252: (b) adding new references, (c) changing existing references, and (d)
253: deleting references.
254: Remember that all changes, additions, and deletions are done by preparing
255: separate files and then running an `update and reindex' step.
256: .PP
257: .I
258: Checking what's there now.
259: .R
260: Often you will want to know what is currently in the data base.
261: There is a special command
262: .I lookbib
263: to look for things and print them
264: out.
265: It searches for articles based on words in the title, or the author's name,
266: or the date.
267: For example, you could find the first paper above with
268: .DS
269: lookbib aho ullman maximal subsequence 1976
270: .DE
271: or
272: .DS
273: lookbib aho ullman hirschberg
274: .DE
275: .LP
276: If you don't give enough words, several items will be found;
277: if you spell some wrong, nothing will be found.
278: There are around 4300 papers in the public file; you should
279: always use this command to check when you are not sure
280: whether a certain paper is there or not.
281: .PP
282: .I
283: Additions.
284: .R
285: To add new papers, just type in, on one or more files, the citations
286: for the new papers.
287: Remember to check first if the papers are already in the data base.
288: For example, if a paper has a previous memo version, this should
289: be treated as a change to an existing entry, rather than
290: a new entry.
291: If several new papers are being typed on the same file, be
292: sure that there is a blank line between each two papers.
293: .PP
294: .I
295: Changes.
296: .R
297: To change an item, it should be extracted onto a file.
298: This is done with the command
299: .DS
300: pub.chg key1 key2 key3 ...
301: .DE
302: where the items key1, key2, key3, etc. are
303: a set of keys that will find the paper,
304: as in the
305: .I lookbib
306: command.
307: That is, if
308: .DS
309: lookbib johnson yacc cstr
310: .DE
311: will find a item (to, in this case, Computing Science Technical Report
312: No. 32, ``YACC: Yet Another Compiler-Compiler,''
313: by S. C. Johnson)
314: then
315: .DS
316: pub.chg johnson yacc cstr
317: .DE
318: will permit you to edit the item.
319: The
320: .I pub.chg
321: command
322: extracts the item onto a file named ``bibxxx'' where ``xxx''
323: is a 3-digit number, e.g. ``bib234''.
324: The command will print the file name it has chosen.
325: If the set of keys finds more than one paper (or no papers) an
326: error message is printed and no file is written.
327: Each reference to be changed must be extracted with a separate
328: .I pub.chg
329: command, and each will be placed on a separate file.
330: You should then edit the ``bibxxx'' file as desired to change the item,
331: using the UNIX editor.
332: Do not delete or change the first line of the file, however, which begins
333: .I %#
334: and is a special code line to tell the update program
335: which item is being altered.
336: You may delete or change other lines, or add lines, as you wish.
337: The changes are not actually made in the public data
338: base until you run the update command
339: .I pub.run
340: (see below).
341: Thus, if after extracting an item and modifying it, you decide
342: that you'd rather leave things as they were, delete the
343: ``bibxxx'' file, and your change request will disappear.
344: .PP
345: .I
346: Deletions.
347: .R
348: To delete an entry from the data base,
349: type the command
350: .DS
351: pub.del key1 key2 key3 ...
352: .DE
353: where the items key1, key2, etc. are a set
354: of keys that will find the paper, as with the
355: .I lookbib
356: command.
357: That is, if
358: .DS
359: lookbib Aho hirschberg ullman
360: .DE
361: will find a paper,
362: .DS
363: pub.del aho hirschberg ullman
364: .DE
365: deletes it.
366: Note that upper and lower case are equivalent in keys.
367: The
368: .I pub.del
369: command will print the entry being deleted.
370: It also gives the name of a ``bibxxx'' file on which the deletion
371: command is stored.
372: The actual deletion is not done until the changes, additions, etc.
373: are processed, as with the
374: .I pub.chg
375: command.
376: If, after seeing the item to be deleted, you change your
377: mind about throwing it away, delete the ``bibxxx'' file
378: and the delete request disappears.
379: Again, if the list of keys does not uniquely identify one paper,
380: an error message is given.
381: .PP
382: Remember that the default versions of the commands described here
383: edit a public data base.
384: Do not delete
385: items unless you are sure deletion is proper; usually this
386: means that there are duplicate entries for the same paper.
387: Otherwise, view requests for deletion with skepticism; even
388: if one person has no need for a particular item in the data base,
389: someone else may want it there.
390: .PP
391: If an item is correct, but should not appear in the ``List of Publications''
392: as normally produced, add the line
393: .DS
394: %K DNL
395: .DE
396: to the item.
397: This preserves the item intact, but implies ``Do Not List'' to the
398: to the commands that print publication lists.
399: The DNL line is normally used for some technical reports,
400: minor memoranda, or other
401: low-grade publications.
402: .PP
403: .I
404: Update and reindex.
405: .R
406: When you have completed a session of changes, you should
407: type the command
408: .DS
409: pub.run file1 file2 ...
410: .DE
411: where the names ``file1'', ... are the new files of additions you
412: have prepared.
413: You need not list the ``bibxxx'' files representing changes and
414: deletions; they are processed automatically.
415: All of the new items are edited into the standard
416: public data base, and then a new index is made. This process
417: takes about 15 minutes; during this time,
418: searches of the data base will be slower.
419: .PP
420: Normally, you should execute
421: .I pub.run
422: just before you logoff after performing
423: some edit requests.
424: However, if you don't, the various change request files remain
425: in your directory
426: until you finally do execute
427: .I pub.run.
428: When the changes are processed, the ``bibxxx'' files are deleted.
429: It is not desirable to wait too long before processing changes,
430: however, to avoid conflicts with someone else who wishes to change
431: the same file.
432: If executing
433: .I pub.run
434: produces the message ``File bibxxx too old''
435: it means that someone else has been editing the same file
436: between the time you prepared your changes, and the time you typed
437: .I pub.run.
438: You must delete such old change files and
439: re-enter them.
440: .PP
441: Note that although
442: .I pub.run
443: discards the ``bibxxx'' files after
444: processing them, your files of additions are left around
445: even after
446: .I pub.run
447: is finished.
448: If they were typed in only for purposes of
449: updating the data base, you may delete them
450: after they have been processed by
451: .I pub.run.
452: .PP
453: .I
454: Example.
455: .R
456: Suppose, for example, that you wish to
457: .IP (1)
458: Add to the data base the memos ``The Dilogarithm Function of a Real Argument''
459: by R. Morris, and
460: ``UNIX Software Distribution by Communication Link,''
461: by M. E. Lesk and A. S. Cohen;
462: .IP (2)
463: Delete from the data base the item
464: ``Cheap Typesetters'', by M. E. Lesk,
465: SIGLASH Newsletter, 1973;
466: and
467: .IP (3)
468: Change ``J. Assoc. Comp. Mach.'' to ``Jour. ACM'' in the citation
469: for Aho, Hirschberg, and Ullman shown above.
470: .LP
471: The procedure would be as follows.
472: First, you would make a file
473: containing the additions,
474: here called ``new.1'', in the normal way using the UNIX editor.
475: In the script shown below, the computer prompts are
476: .if n underlined.
477: .if t in italics.
478: .DS
479: .if n _$ ed new.1
480: .if t \f2$\f1 ed new.1
481: .if n _?
482: .if t \f2?\f1
483: a
484: %T The Dilogarithm Function of a Real Argument
485: %A Robert Morris
486: .if \nP=0 %M TM 78-1271-1
487: .if \nP>0 %M abcd
488: %D 1978
489:
490: %T UNIX Software Distribution by Communication Link
491: %A M. E. Lesk
492: %A A. S. Cohen
493: .if \nP=0 %M TM 78-1274-1, 78-8234-1
494: .if \nP>0 %M abcd
495: %D 1978
496: .
497: w new.1
498: .if n _1_9_9
499: .if t \f2199\f1
500: q
501: .DE
502: Next you would specify the deletion, which would be done with the
503: .I pub.del
504: command:
505: .DS
506: .if n _$ pub.del lesk cheap typesetters siglash
507: .if t \f2$\f1 pub.del lesk cheap typesetters siglash
508: .ti 0
509: to which the computer responds:
510:
511: .if n W_i_l_l_ d_e_l_e_t_e_:_ (_f_i_l_e_ b_i_b_1_7_6_)_
512: .if t \f2Will delete: (file bib176)\f1
513:
514: .if n %_T_ C_h_e_a_p_ T_y_p_e_s_e_t_t_e_r_s_
515: .if t \f2%T Cheap Typesetters\f1
516: .if n %_A_ M_._ E_._ L_e_s_k_
517: .if t \f2%A M. E. Lesk\f1
518: .if n %_J_ A_C_M_ S_I_G_L_A_S_H_ N_e_w_s_l_e_t_t_e_r_
519: .if t \f2%J ACM SIGLASH Newsletter\f1
520: .if n %_V_ 6_
521: .if t \f2%V 6\f1
522: .if n %_N_ 4_
523: .if t \f2%N 4\f1
524: .if n %_P_ 1_4_-_1_6_
525: .if t \f2%P 14-16\f1
526: .if n %_D_ O_c_t_o_b_e_r_ 1_9_7_3_
527: .if t \f2%D October 1973\f1
528: .DE
529: And then you would extract the Aho, Hirschberg and Ullman paper.
530: The dialogue involved is shown below.
531: First run
532: .I pub.chg
533: to extract the paper; it responds by printing
534: the citation and informing you that it was placed on file \f2bib123\f1.
535: That file is then edited.
536: .DS
537: .if n _$ pub.chg aho hirschberg ullman
538: .if t \f2$\f1 pub.chg aho hirschberg ullman
539: .if n _E_x_t_r_a_c_t_i_n_g _a_s _f_i_l_e _b_i_b_1_2_3
540: .if t \f2Extracting as file bib123\f1
541: .if n _%_T _B_o_u_n_d_s _o_n _t_h_e _C_o_m_p_l_e_x_i_t_y _o_f _t_h_e _M_a_x_i_m_a_l
542: .if t \f2%T Bounds on the Complexity of the Maximal\f1
543: .if n _C_o_m_m_o_n _S_u_b_s_e_q_u_e_n_c_e _P_r_o_b_l_e_m
544: .if t \f2Common Subsequence Problem\f1
545: .if n _%_A _A_. _V_. _A_h_o
546: .if t \f2%A A. V. Aho\f1
547: .if n _%_A _D_. _S_. _H_i_r_s_c_h_b_e_r_g
548: .if t \f2%A D. S. Hirschberg\f1
549: .if n _%_A _J_. _D_. _U_l_l_m_a_n
550: .if t \f2%A J. D. Ullman\f1
551: .if n _%_J _J_. _A_s_s_o_c_. _C_o_m_p_. _M_a_c_h_.
552: .if t \f2%J J. Assoc. Comp. Mach.\f1
553: .if n _%_V _2_3
554: .if t \f2%V 23\f1
555: .if n _%_N _1
556: .if t \f2%N 1\f1
557: .if n _%_P _1_-_1_2
558: .if t \f2%P 1-12\f1
559: .if \nP=0 .if n _%_M _T_M _7_5_-_1_2_7_1_-_7
560: .if \nP>0 .if n %_M_ M_e_m_o_ n_u_m_b_e_r_
561: .if \nP=0 .if t \f2%M TM 75-1271-7\f1
562: .if \nP>0 .if t \f2%M abcd\f1
563: .if n _%_D _J_a_n_. _1_9_7_6
564: .if t \f2%D Jan. 1976\f1
565:
566: .if n _$ ed bib123
567: .if t \f2$\f1 ed bib123
568: .if n _3_1_2
569: .if t \f2312\f1
570: /Assoc/s/ J/ Jour/p
571: .if n _%_J _J_o_u_r_. _A_s_s_o_c_. _C_o_m_p_. _M_a_c_h_.
572: .if t \f2%J Jour. Assoc. Comp. Mach.\f1
573: s/Assoc.*/ACM/p
574: .if n _%_J _J_o_u_r_. _A_C_M
575: .if t \f2%J Jour. ACM\f1
576: 1,$p
577: .if n _%_# _/_u_s_r_/_d_i_c_t_/_p_a_p_e_r_s_/_p_7_6 _2_3_3 _2_4_5 _c_h_a_n_g_e
578: .if t \f2%# /usr/dict/papers/p76 233 245 change\f1
579: .if n _%_T _B_o_u_n_d_s _o_n _t_h_e _C_o_m_p_l_e_x_i_t_y _o_f _t_h_e _M_a_x_i_m_a_l
580: .if t \f2%T Bounds on the Complexity of the Maximal\f1
581: .if n _C_o_m_m_o_n _S_u_b_s_e_q_u_e_n_c_e _P_r_o_b_l_e_m
582: .if t \f2Common Subsequence Problem\f1
583: .if n _%_A _A_. _V_. _A_h_o
584: .if t \f2%A A. V. Aho\f1
585: .if n _%_A _D_. _S_. _H_i_r_s_c_h_b_e_r_g
586: .if t \f2%A D. S. Hirschberg\f1
587: .if n _%_A _J_. _D_. _U_l_l_m_a_n
588: .if t \f2%A J. D. Ullman\f1
589: .if n _%_J _J_o_u_r_. _A_C_M
590: .if t \f2%J Jour. ACM\f1
591: .if n _%_V _2_3
592: .if t \f2%V 23\f1
593: .if n _%_N _1
594: .if t \f2%N 1\f1
595: .if n _%_P _1_-_1_2
596: .if t \f2%P 1-12\f1
597: .if \nP=0 .if n _%_M _T_M _7_5_-_1_2_7_1_-_7
598: .if \nP>0 .if n _%_M _M_e_m_o _n_u_m_b_e_r
599: .if \nP=0 .if t \f2%M TM 75-1271-7\f1
600: .if \nP>0 .if t \f2%M abcd\f1
601: .if n _%_D _J_a_n_. _1_9_7_6
602: .if t \f2%D Jan. 1976\f1
603:
604: w
605: .if n _2_9_2
606: .if t \f2292\f1
607: q
608: .if n _$
609: .if t \f2$\f1
610: .DE
611: Finally, execute
612: .I pub.run ,
613: making sure to remember that you
614: have prepared a new file ``new.1'':
615: .DS
616: \f2$\f1 pub.run new.1
617: .DE
618: and about fifteen minutes later the new index would be complete
619: and all the changes would be included.
620: .NH
621: Printing a Publication List
622: .PP
623: There are two commands for printing a publication list,
624: depending on whether you want to print one person's list,
625: or the list of many people.
626: To print a list for one person, use the
627: .I pub.indiv
628: command:
629: .DS
630: pub.indiv M Lesk
631: .DE
632: This runs off the list for M. Lesk and puts it in file ``output''.
633: Note that no `.' is given after the initial.
634: In case of ambiguity two initials can be used.
635: Similarly, to get the list for group of people, say
636: .DS
637: pub.org xxx
638: .DE
639: which prints all the publications of the members of organization
640: .I xxx ,
641: taking the names for the list in the file
642: .I /usr/dict/papers/centlist/xxx .
643: This command should normally be run in the background; it takes
644: perhaps 15 minutes.
645: Two options are available with these commands:
646: .DS
647: pub.indiv \-p M Lesk
648: .DE
649: prints only the papers, leaving out unpublished notes, patents, etc.
650: Also
651: .DS
652: pub.indiv \-t M Lesk | gcat
653: .DE
654: prints a typeset copy, instead of a computer printer copy.
655: In this case it has been directed to an alternate typesetter with the
656: `gcat' command.
657: These options may be used together, and may be used with the
658: .I pub.org
659: command as well.
660: For example, to print
661: only the papers for all of organization zzz and typeset them,
662: you could type
663: .DS
664: pub.center \-t \-p zzz | gcat &
665: .DE
666: These publication lists are printed double column with a citation style
667: taken from a set of publication list macros; the macros, of course, can be
668: changed easily to adjust the format of the lists.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.