EDAS: Editor's Assistant Version 3.10 and later
Henning Schulzrinne
Dept. of Computer Science,
Columbia University
New York, NY 10027
schulzrinne@cs.columbia.edu
EDAS is a tool for tracking the review process for journals and
conferences. It maintains a database of papers and editors, and
generates routine correspondence acknowledging receipt of papers,
accompanying papers to editors, reminding editors to return papers,
and so on.
The binary for EDAS for Sun Solaris 2.5 can be obtained from http://www.cs.columbia.edu/~hgs/edas/edas.sun5.
The sources are at http://www.cs.columbia.edu/~hgs/edas/dist.
Binary installation
- Unpack the executable files
- edas,
- include (for including literal text within mail files), and
- nroff-trunc (for removing trailing blank lines from email).
into a directory within your path. You can test whether the programs
are in your path via the command which edas, which
include, etc. For example:
cd /usr/local/bin
gunzip -c edas-3.10-sun5.tar.gz | tar xvf -
- If you want to generate hardcopy letters, make sure LaTeX and
dvips are installed on your system and in your execution path. (If
you want to use a different text processor or a different
dvi-to-PostScript converter, you need to change the file
proc.tcl accordingly.)
Depending on how you want to format outgoing email messages, you need
to have either lynx (Version 2.5 or later) for HTML or
nroff of nroff. The latter is usually already installed.
Installation from sources
The following packages need to be installed:
- ndbm (should be part of system libraries) or you can use gdbm 1.7.3.
It appears that on Solaris, the system-provided ndbm package has
problems.
- Tcl 7.5
- Tk 4.1
By default, libraries are installed into arch/lib,
where arch is the value of the environment variable
ARCH, assumed to be set by something like uname
-m.
Modify the top part of the file edas/src/Makefile
according to your local configuration. Only the location of library
and include file directories need to be changed.
Then compile the library:
cd edas/src
make
Proceed as for binary installation.
Developers who want to modify the Tcl sources without having to
recompile, need to do the following:
We use the following terms:
- paper:
- The item submitted by authors. Papers are identified by
keys.
- publication:
- Journal or conference.
- editor-in-chief (EiC):
- The person maintaining the database and receiving papers. The EiC
in turn distributes papers to editors. This process may
recurse, i.e., an editor may distribute papers to reviewers. If the
editor maintains a database, he or she is then the EiC according to
EDAS. In other words, the maintainer of an EDAS database is always
considered the EiC, the people the maintainer sends papers to are
editors, regardless of the actual classification within the
publication.
- editor:
- The editor receives papers from the editor-in-chief.
Editors are referenced by a short alphabetic code of the EiC's
devising, for example, last name or initials.
- event:
- The things that happen to a paper are called events.
Examples are the receipt of a paper, each assigning to an editor, or
its publication. Each event includes who is responsible for the event
(the actor, an editor or the editor-in-chief), a timestamp,
and the times when the event was acknowledged by email and letter.
Some events also contain additional data, e.g., the outcome of a
review (accept, reject, etc.). Each event can only occur once for
each paper with the same actor.
- key:
- The key identifies a paper or editor. Papers have keys
consisting of the year (two digits), followed by a dash, followed by a
sequence number starting at one, e.g., 94-17. Editors have keys
starting with a letter and consisting of any number of letters and
digits, e.g., lee.
- level:
- Steps in the review hierarchy. For a conference, papers
are often sent to a single point of contact who then distributes
papers either to reviewers (single level) or a committee that in turn
solicits reviews (two levels). A journal is also typically handled in
two levels (editor-in-chief, editors and reviewers).
- cycle:
- The number of review and revision cycles a paper goes
through. For example, a journal paper might be reviewed, sent back to
the authors for revision, and then reviewed again. Conferences typically
have only a single cycle. Cycles are numbered starting at one.
The work flow of a paper and the state labels are shown in a diagram.
A paper is completed once it is either withdrawn, rejected or accepted
for publication. These events are shown as grey ovals. The figure
shows two editorial tracks, for editors named "foo" and "bar";
several of them are likely to be traversed in parallel or sequentially
(if an editor needs to be replaced). In this model, the editors for
the second review cycle may or may not be the same as for the
first. Events always start with upper-case letters to
distinguish them from other fields. The cycle number is appended to
the event name following an underscore, e.g., Assigned_2 is
the assignment of an editor for the second cycle. Events shown with
diagonal lines typically generate correspondence; "down" hashing
indices letters to editors/reviewers, "up" hashing to authors.
However, the events that trigger correspondence are likely to vary
widely between publications.
The table below summarizes some typical configurations for journals
and conferences.
| type (example)
| cycles
| levels
| editors/paper
|
| conference (ICNP)
| 1
| 1
| > 1
|
| conference (Infocom)
| 1
| 2
| 1, > 1
|
| journal (ToN)
| 2
| 2
| 1, > 1
|
EDAS is built using Tcl, John Osterhout's extensible "tool command
language" and the X11 library Tk by the same author. Since it is
difficult to anticipate all styles of conferences and publications,
special functions can be programmed in Tcl with relative ease.
General EDAS setup and publication-specific information
First, you have to install EDAS. Then
create a directory for your publication. This directory will contain
all letter and email templates and the configuration file
publication.tcl. It is easiest to copy the content of
the ton directory to your publication directory. Modify
the configuration file publication.tcl by invoking the
"Setup" command from the "File" menu. IF there is no
publication.tcl, a setup menu will appear automatically.
You also need to enter the editor-in-chief before proceeding, using
the "Edit / Add/Edit" menu, with the abbreviation to be used entered
in the "Paper/Editor" field.
Finally, you need to create templates for letters to authors and editors.
Menu options are described as "Menu|Command", e.g., "File|Exit"
denotes the "exit" command under the "File" menu heading.
Start EDAS in the directory containing the letters and templates for
your publication by typing
edas
If you start EDAS for the first time in that directory, you will be
asked to fill out a form containing basic information about the
publication.
Adding papers
Add papers using the "Edit|Add/Edit" menu. If you provide a number for
the paper in the "Paper/editor" entry field, a paper with that number
will be created. If the "Paper/editor" field is empty, the next
highest number will be used.
Starting and leaving EDAS
The commands described below are for the command-line version of EDAS
(not currently distributed) or the "File/Command" menu option.
You must be in the publication directory. Then type edas.
The program should report back with something like
EDAS Version 3.9
Database foo has maximum entry of 3
edas(foo)>
To leave EDAS, type control-d or exit. If the terminal acts
strange after leaving EDAS (character typed not echoed, control-d
doesn't work, etc.), try the Unix command reset.
Getting help
The command help shows all commands about which help is
available. To get a short summary of the cancel, for example,
type help cancel. The command apropos event lists all
commands who match the given description, e.g., contain the word
``event''. The help files are currently very incomplete.
Adding editors/reviewers
The command editor brings up a fill-out form to enter
information about editors. Similarly, editor lee allows to edit
the record of the editor with key "lee".
Adding and editing papers
Papers are added by typing
paper
Edit papers (e.g., the one with key 94-17) by typing
paper 94-17
If the paper doesn't exist, an empty entry form is
shown. This is also the method for adding papers with existing numbers
(e.g., if you are a member of the technical program committee of a
conference that assigns global paper numbers).
Searching for papers or editors
The search commands takes the search string in curly braces.
These braces are important and may not be omitted. There must be
spaces around operators like =.
To search for paper with first author ``Tom Jones'':
search {au1 = "Tom Jones"}
Note that the spaces around the equal sign are mandatory.
In searching, the name is actually treated as a regular expression, so
that
search {au1 = "Jon.*"}
will match Jones, Joneson, Jonathan, etc.
To search for all papers:
search {ispaper}
To search for all editors:
search {!ispaper}
To show a single record, say, paper 94-17, use show 94-17
.
Sending receipt acknowledgements to authors
By issuing the command ack, authors with email address will
receive an email notice, one per paper. For authors without email, a
TeX letter will be generated. The ack command can take two
arguments: first, the name of the event to be acknowledged, fully
spelled out, and, secondly, a list of options. The option
again ignores any previously sent letter or email. The option
both sends both email and letter. Normally, a printed letter
is sent only if the recipient does not have email. (This policy can
be modified by changing the file ack.tcl.)
To send acknowledgements for events starting with ``Received'' for all
papers:
ack Received
If you want to send both email and paper, use
ack Received both
You should see messages like the following on your screen:
Received_1(kso): Email sent to author John H. Doe about paper 95-1
Received_1(kso): Letter sent to author John H. Doe about paper 95-1
Afterwards, record 95-1 should look something like this:
edas(infocom95)> show 95-1
*** 95-1 ***
Received_1(kso): 07/17/94 11:40 email: 07/17/94 12:35 letter: 07/17/94 12:35
au1 = John Doe
ti = A paper on networks
name = John H. Doe
gr = Joe
ad1 = Hardenbergplatz 2
ad2 = 10623 Berlin
country = Germany
email = hgs
Note the indication of email and letter dates in the third line.
If a new acknowledgement needs to be sent for an individual paper (for
example, because of spelling errors, email problems or misprints), it
is best to cancel the letter or email action and redo the ack
command.
To send one acknowledgement for a particular paper, use
ack_one 95-1 Assigned
Cancelling Events, Letters and Emails
The cancel command allows to remove events and pretend that
letters or emails were not sent. To cancel the event
Received_1(kso) in record 95-17, execute:
cancel 95-1 Received_1(kso) action
If a letter or email needs to be resent, it is best to cancel the
entries for those items:
cancel 95-1 Received_1(kso) letter
cancel 95-1 Received_1(kso) email
Note that the event has to be spelled out exactly like it appears in
the listing produced by show.
Printing letters
Letters are not printed when generated, but rather in a batch. This
has the advantage that LaTeX can generate sheets for copyable peel-off
address labels and it avoids generating one burst page for each
one-page letter. EDAS stores the LaTeX letter text in the file
le.tex. Whenever you like to print the accumulated letters,
use the print command. It generates a PostScript file
called letter.ps in the publication directory. The
processed file le.tex is renamed to le.tex~
to avoid printing it twice.
Deleting papers or editors
Papers are deleted with the command delete key, e.g.,
delete 94-17
deletes the paper with key 94-17.
Sending papers to editors
First, one or more editors have to be assigned to a paper. The command
assign 94-17 lee
assigns the editor with the abbreviation ``lee'' to paper number
94-17. The command distribute generates LaTeX cover letters to
newly selected editors for all papers. The command has optional
arguments: the mode (letter or email, with
letter as default) and the flag again to re-send letters.
Exporting Data
The command export dumps the content of a database in ASCII
form to the file named $file.edas, where $file
is the name of the database file specified in the configuration. This
export file is suitable for mailing and inclusion in EDAS (see next
section).
Importing Data
The command source filename reads data exported by the
export command into EDAS. Example:
source icnp.edas
Sending reminders to editors
The publication definition file publication.tcl contains a list
of numbers, called intervals, that defines after how many days
editors get sent a reminder email or letter. Up to three reminders
can be sent. A tardy editor is always sent reminders in sequence,
i.e., even if she has exceeded the time for the second reminder, but
has not been sent the first, the first reminder message is used.
(However, currently, if you run the reminder command twice in a
row, she will get two successive reminders.) Reminders to an
individual editor are sent with reminder key,
while reminders to all delinquent editors are prepared with
reminder.
Receiving reviewed papers
A review received from an editor is entered with the review
command, e.g., if paper 94-17 is received from editor lisa with
recommendation to reject the paper:
review 94-17 lisa reject
Possible actions are listed in the actions variable in
publication.tcl and typically include accept,
revise, resubmit, reject and
afv (awaiting final version). It would also be possible to
enter scores, if the variable is appropriately defined.
Final decision and other events
Other events are added with event, e.g.,
event 94-17 Rejected
event 94-17 Withdrawn
event 94-17 Published
The event command can also take more arguments, namely the
actor id, the review cycle and the action (e.g., reject). However,
the more complicated versions of this command are not usually used
directly.
Summary of Paper Status
The command
summary
produces the LaTeX file summary.tex containing a list, sorted
by key, of all papers with their first author and title. Each entry
is prefixed by its current status: X for rejected, R for in review, A
for accepted.
Renumbering papers
The function renumber does the expected. For
example,
renumber 95-1 95-17
turns paper 95-1 into paper 95-17. Currently, 95-1 needs to be
deleted manually.
Converting to and from BibTeX
The BibTeX style file people_edas.bst can be used to
convert @PEOPLE entries into EDAS records. There is currently no
style file for converting regular bibliography entries for papers into
EDAS format, but it should be easy enough to create a style file based
on people_edas.bst.
The bibtex filename command can be used to export
the current set of papers to a BibTeX file filename.
Converting old EDAS databases
To convert EDAS Version 2 databases to the new format, compile the
2to3 command (if not already installed). Export the Version 2
database into ASCII format using the EDAS Version 2 export command.
The database is converted using a command like the following:
2to3 eic < old.db > new.edas
Here, eic represents the code for the editor-in-chief
within the old database. The output file can then be imported.
Adding Your Own Functions
You can add your own functions by either modifying one of the Tcl
files in the source directory, or, preferably, creating a new file
containing one or more Tcl procedures. If you create a new file or
procedure, you have to run the function auto_mkindex to update
the tclIndex file:
auto_mkindex $env(EDAS_LIBRARY) *.tcl
If you want to add your own functions, you should read the section on the internal workings of EDAS.
Internals
You should only have to read this section if you need to debug or
enhance EDAS.
EDAS consists of two parts: A small set of C programs accesses a hashed
database (using the Gnu enhanced version of the standard Unix dbm
library). It also provides a simple forms interface currently used for
adding papers and editors.
Accessing a field in a record in the database is a two-step process.
First, the command fetch r key reads the record with key
key into "object" named r. This object is then
defined as a command. The command name is global, thus some care must
be taken within nested procedures that records aren't suddenly
changed. If the object r existed already, it is replaced,
but not stored to the database. You have to store an object
explicitly to make any changes permanent. The command fetch r
initializes the record r, with all fields becoming undefined.
| r
| reset r
| r f
| return value of field f
|
| r f v
| set field f to value v
|
| r store
| store record to database
|
| r list
| list all components
|
| r list e
| list only events
|
| r key
| get key of record
| |
This particular implementation means that records cannot contain
fields with the names list or store. The field name
key is reserved as the unique, identifying record key. It
is a bad idea to re-use the name of an existing command.
For example, consider the code fragment:
fetch paper 94-1
echo "First author: [paper au1]"
paper area "real-time systems"
paper store
First, a paper with key 94-1 is retrieved, the value of the
au1 field displayed and then the field area set to a
new value. Finally, the modified record is stored again.
If you are familiar with Tk, the Tcl-based X11 toolkit, you will
recognize the EDAS approach as very similar in spirit.
Other low level commands:
- current_cycle r:
- Return the current (highest) review cycle
number of record r.
- es file:
- Edit the given Tcl file (without the .tcl suffix)
and source the modified file. This speeds the editing process.
- event_parts e event cycle editor
- Split the event e into its constituent parts. The
second through fourth argument are names of variables that receive the
parts of the event: the event type, the review cycle and the acting
editor. For example, event_parts Assigned_1(lee) ev cy ed
assigns Assigned to variable ev, 1 to variable
cy and lee to variable ed.
- firstkey
- Returns first key in hashed database. Note that
records are not sorted in any way, so the value of that key is
essentially random.
- ispaper key
- Returns 1 if key refers to a paper, 0
otherwise. Does not check if the record actually exists.
- nextkey key
- Retrieve value of next key following key from
database. The database is not sorted, so the ordering of keys
retrieved will be essentially random. The command firstkey
and nextkey can be used to traverse the database
sequentially.
- when v
- Converts the numeric date to a human-readable form in
the local time zone. For example, when 767248375 returns (in
Germany) 04/25/94 06:32.
Last modified: August 25, 1996 by Henning Schulzrinne