xref: /original-bsd/old/refer/USD.doc/invert/pubuse (revision c3e32dec)
%sccs.include.proprietary.roff%

@(#)pubuse 8.1 (Berkeley) 06/08/93

..... use tbl and troff -ms
Updating Publication Lists .AU M. E. Lesk
Introduction.

.if \nP>0 .pn 14
This note describes several commands to update the publication lists. The data base consisting of these lists is kept in a set of files in the directory /usr/dict/papers on the Version 7 X system. The reason for having special commands to update these files is that they are indexed, and the only reasonable way to find the items to be updated is to use the index. However, altering the files destroys the usefulness of the index, and makes further editing difficult. So the recommended procedure is to

(1)
Prepare additions, deletions, and changes in separate files.
(2)
Update the data base and reindex.

Whenever you make changes, etc. it is necessary to run the ``add & index'' step before logging off; otherwise the changes do not take effect. The next section shows the format of the files in the data base. After that, the procedures for preparing additions, preparing changes, preparing deletions, and updating the public data base are given.

Publication Format.

The format of a data base entry is given completely in ``Some Applications of Inverted Indexes on UNIX'' by M. E. Lesk, the first part of this report, and is summarized here via a few examples. In each example, first the output format for an item is shown, and then the corresponding data base entry.

Journal article:

A. V. Aho, D. J. Hirschberg, and J. D. Ullman, ``Bounds on the Complexity of the Maximal Common Subsequence Problem,'' J. Assoc. Comp. Mach., .R vol. 23, no. 1, pp. 1-12 (Jan. 1976).
%T Bounds on the Complexity of the Maximal Common
Subsequence Problem
%A A. V. Aho
%A D. S. Hirschberg
%A J. D. Ullman
%J J. Assoc. Comp. Mach.
%V 23
%N 1
%P 1-12
%D Jan. 1976


Conference proceedings:
B. Prabhala and R. Sethi, ``Efficient Computation of Expressions with Common Subexpressions,'' Proc. 5th ACM Symp. on Principles of Programming Languages, .R pp. 222-230, Tucson, Ariz. (January 1978).
%A B. Prabhala
%A R. Sethi
%T Efficient Computation of Expressions with
Common Subexpressions
%J Proc. 5th ACM Symp. on Principles
of Programming Languages
%C Tucson, Ariz.
%D January 1978
%P 222-230


Book:
B. W. Kernighan and P. J. Plauger, Software Tools, .R Addison-Wesley, Reading, Mass. (1976).
%T Software Tools
%A B. W. Kernighan
%A P. J. Plauger
%I Addison-Wesley
%C Reading, Mass.
%D 1976


Article within book:
J. W. de Bakker, ``Semantics of Programming Languages,'' pp. 173-227 in Advances in Information Systems Science, Vol. 2, .R ed. J. T. Tou, Plenum Press, New York, N. Y. (1969).
%A J. W. de Bakker
%T Semantics of programming languages
%E J. T. Tou
%B Advances in Information Systems Science, Vol. 2
%I Plenum Press
%C New York, N. Y.
%D 1969
%P 173-227


Technical Report:
F. E. Allen, ``Bibliography on Program Optimization,'' Report RC-5767, IBM T. J. Watson Research Center, Yorktown Heights, N. Y. (1975).
%A F. E. Allen
%D 1975
%T Bibliography on Program Optimization
%R Report RC-5767
%I IBM T. J. Watson Research Center
%C Yorktown Heights, N. Y.


.di xx
Technical Memorandum:
A. V. Aho, B. W. Kernighan and P. J. Weinberg, ``AWK - Pattern Scanning and Processing Language'', TM 77-1271-5, TM 77-1273-12, TM 77-3444-1 (1977).
%T AWK - Pattern Scanning and Processing Language
%A A. V. Aho
%A B. W. Kernighan
%A P. J. Weinberger
%M TM 77-1271-5, TM 77-1273-12, TM 77-3444-1
%D 1977
.di

Other forms of publication can be entered similarly. Note that conference proceedings are entered as if journals, with the conference name on a %J line. This is also sometimes appropriate for obscure publications such as series of lecture notes. When something is both a report and an article, or both a memorandum and an article, enter all necessary information for both; see the first article above, for example. Extra information (such as ``In preparation'' or ``Japanese translation'') should be placed on a line beginning %O . The most common use of %O lines now is for ``Also in ...'' to give an additional reference to a secondary appearance of the same paper.

Some of the possible fields of a citation are:

Letter Meaning Letter Meaning
A Author K Extra keys
B Book including item N Issue number
C City of publication O Other
D Date P Page numbers
E Editor of book R Report number
I Publisher (issuer) T Title of item
J Journal name V Volume number
Note that %B is used to indicate the title of a book containing the article being entered; when an item is an entire book, the title should be entered with a %T as usual.

Normally, the order of items does not matter. The only exception is that if there are multiple authors (%A lines) the order of authors should be that on the paper. If a line is too long, it may be continued on to the next line; any line not beginning with % or . (dot) is assumed to be a continuation of the previous line. Again, see the first article above for an example of a long title. Except for authors, do not repeat any items; if two %J lines are given, for example, the first is ignored. Multiple items on the same file should be separated by blank lines.

Note that in formatted printouts of the file, the exact appearance of the items is determined by a set of macros and the formatting programs. Do not try to adjust fonts, punctuation, etc. by editing the data base; it is wasted effort. In case someone has a real need for a differently-formatted output, a new set of macros can easily be generated to provide alternative appearances of the citations.

Updating and Re-indexing.

This section describes the commands that are used to manipulate and change the data base. It explains the procedures for (a) finding references in the data base, (b) adding new references, (c) changing existing references, and (d) deleting references. Remember that all changes, additions, and deletions are done by preparing separate files and then running an `update and reindex' step.

Checking what's there now. .R Often you will want to know what is currently in the data base. There is a special command lookbib to look for things and print them out. It searches for articles based on words in the title, or the author's name, or the date. For example, you could find the first paper above with lookbib aho ullman maximal subsequence 1976 or lookbib aho ullman hirschberg

If you don't give enough words, several items will be found; if you spell some wrong, nothing will be found. There are around 4300 papers in the public file; you should always use this command to check when you are not sure whether a certain paper is there or not.

Additions. .R To add new papers, just type in, on one or more files, the citations for the new papers. Remember to check first if the papers are already in the data base. For example, if a paper has a previous memo version, this should be treated as a change to an existing entry, rather than a new entry. If several new papers are being typed on the same file, be sure that there is a blank line between each two papers.

Changes. .R To change an item, it should be extracted onto a file. This is done with the command pub.chg key1 key2 key3 ... where the items key1, key2, key3, etc. are a set of keys that will find the paper, as in the lookbib command. That is, if lookbib johnson yacc cstr will find a item (to, in this case, Computing Science Technical Report No. 32, ``YACC: Yet Another Compiler-Compiler,'' by S. C. Johnson) then pub.chg johnson yacc cstr will permit you to edit the item. The pub.chg command extracts the item onto a file named ``bibxxx'' where ``xxx'' is a 3-digit number, e.g. ``bib234''. The command will print the file name it has chosen. If the set of keys finds more than one paper (or no papers) an error message is printed and no file is written. Each reference to be changed must be extracted with a separate pub.chg command, and each will be placed on a separate file. You should then edit the ``bibxxx'' file as desired to change the item, using the UNIX editor. Do not delete or change the first line of the file, however, which begins %# and is a special code line to tell the update program which item is being altered. You may delete or change other lines, or add lines, as you wish. The changes are not actually made in the public data base until you run the update command pub.run (see below). Thus, if after extracting an item and modifying it, you decide that you'd rather leave things as they were, delete the ``bibxxx'' file, and your change request will disappear.

Deletions. .R To delete an entry from the data base, type the command pub.del key1 key2 key3 ... where the items key1, key2, etc. are a set of keys that will find the paper, as with the lookbib command. That is, if lookbib Aho hirschberg ullman will find a paper, pub.del aho hirschberg ullman deletes it. Note that upper and lower case are equivalent in keys. The pub.del command will print the entry being deleted. It also gives the name of a ``bibxxx'' file on which the deletion command is stored. The actual deletion is not done until the changes, additions, etc. are processed, as with the pub.chg command. If, after seeing the item to be deleted, you change your mind about throwing it away, delete the ``bibxxx'' file and the delete request disappears. Again, if the list of keys does not uniquely identify one paper, an error message is given.

Remember that the default versions of the commands described here edit a public data base. Do not delete items unless you are sure deletion is proper; usually this means that there are duplicate entries for the same paper. Otherwise, view requests for deletion with skepticism; even if one person has no need for a particular item in the data base, someone else may want it there.

If an item is correct, but should not appear in the ``List of Publications'' as normally produced, add the line %K DNL to the item. This preserves the item intact, but implies ``Do Not List'' to the to the commands that print publication lists. The DNL line is normally used for some technical reports, minor memoranda, or other low-grade publications.

Update and reindex. .R When you have completed a session of changes, you should type the command pub.run file1 file2 ... where the names ``file1'', ... are the new files of additions you have prepared. You need not list the ``bibxxx'' files representing changes and deletions; they are processed automatically. All of the new items are edited into the standard public data base, and then a new index is made. This process takes about 15 minutes; during this time, searches of the data base will be slower.

Normally, you should execute pub.run just before you logoff after performing some edit requests. However, if you don't, the various change request files remain in your directory until you finally do execute pub.run. When the changes are processed, the ``bibxxx'' files are deleted. It is not desirable to wait too long before processing changes, however, to avoid conflicts with someone else who wishes to change the same file. If executing pub.run produces the message ``File bibxxx too old'' it means that someone else has been editing the same file between the time you prepared your changes, and the time you typed pub.run. You must delete such old change files and re-enter them.

Note that although pub.run discards the ``bibxxx'' files after processing them, your files of additions are left around even after pub.run is finished. If they were typed in only for purposes of updating the data base, you may delete them after they have been processed by pub.run.

Example. .R Suppose, for example, that you wish to

(1)
Add to the data base the memos ``The Dilogarithm Function of a Real Argument'' by R. Morris, and ``UNIX Software Distribution by Communication Link,'' by M. E. Lesk and A. S. Cohen;
(2)
Delete from the data base the item ``Cheap Typesetters'', by M. E. Lesk, SIGLASH Newsletter, 1973; and
(3)
Change ``J. Assoc. Comp. Mach.'' to ``Jour. ACM'' in the citation for Aho, Hirschberg, and Ullman shown above.

The procedure would be as follows. First, you would make a file containing the additions, here called ``new.1'', in the normal way using the UNIX editor. In the script shown below, the computer prompts are a %T The Dilogarithm Function of a Real Argument %A Robert Morris %D 1978 %T UNIX Software Distribution by Communication Link %A M. E. Lesk %A A. S. Cohen %D 1978 . w new.1 q Next you would specify the deletion, which would be done with the pub.del command: to which the computer responds: And then you would extract the Aho, Hirschberg and Ullman paper. The dialogue involved is shown below. First run pub.chg to extract the paper; it responds by printing the citation and informing you that it was placed on file \f2bib123\f1. That file is then edited. /Assoc/s/ J/ Jour/p s/Assoc.*/ACM/p 1,$p w q Finally, execute pub.run , making sure to remember that you have prepared a new file ``new.1'': \f2$\f1 pub.run new.1 and about fifteen minutes later the new index would be complete and all the changes would be included.

Printing a Publication List

There are two commands for printing a publication list, depending on whether you want to print one person's list, or the list of many people. To print a list for one person, use the pub.indiv command: pub.indiv M Lesk This runs off the list for M. Lesk and puts it in file ``output''. Note that no `.' is given after the initial. In case of ambiguity two initials can be used. Similarly, to get the list for group of people, say pub.org xxx which prints all the publications of the members of organization xxx , taking the names for the list in the file /usr/dict/papers/centlist/xxx . This command should normally be run in the background; it takes perhaps 15 minutes. Two options are available with these commands: pub.indiv -p M Lesk prints only the papers, leaving out unpublished notes, patents, etc. Also pub.indiv -t M Lesk | gcat prints a typeset copy, instead of a computer printer copy. In this case it has been directed to an alternate typesetter with the `gcat' command. These options may be used together, and may be used with the pub.org command as well. For example, to print only the papers for all of organization zzz and typeset them, you could type pub.center -t -p zzz | gcat & These publication lists are printed double column with a citation style taken from a set of publication list macros; the macros, of course, can be changed easily to adjust the format of the lists.