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

Table of Contents

Overview

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.

Installation

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

  1. Unpack the executable files 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 -
    
  2. 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:
  1. 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.
  2. Tcl 7.5
  3. 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:

Terminology

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.

States for a paper
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.

Setting up for a publication

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.

User Manual: Graphical User Interface

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.

User Manual: Commandline Access

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