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