Conga Conference Reviewing Software Guide

Version 1.0

This document describes version 1.0 of the Conga online conference reviewing software. It was written in 1999 by Marti Hearst of UC Berkeley. Questions and comments should be sent to hearst@sims.berkeley.edu.

To get an idea of what the software produces, see the example screenshots.

The major steps for using this software are outlined below. Not all of them must be done; it depends on what aspects of the reviewing process you wish to automate. This software is intended to be easily customizable along several dimensions.

Note: as of 12/9/1999 I have not tested what happens when you make major customizations, such as omitting topics, not having meta-reviewers, or having more than one meta-reviewer per paper. I have tested the system using the default settings.

Table of Contents:


Installation

This software has only been tested on Unix, specifically Solaris. There is no intention to port it to NT. The software has only been tested using the Netscape Enterprise Web Server, but it should also work with Apache.

To use the software, you need to have available the basic Unix commands, Tcl 8.0, and a special Tcl package called cgi.tcl (written by Don Libes). All of this software is free. Information about Tcl8.0 can be found at http://www.scriptics.com/man/tcl8.0/contents.htm. Information about cgi.tcl, and the software package itself, can be found at http://expect.nist.gov/cgi.tcl

This software package does not use a database backend. Instead, all data is stored in Unix directories as clear ascii text. This decision has both strengths and a weaknesses. The strengths are that it therefore requires no propriety software, is fast, and the data is easily inspected. The weakness is that there is the potential to occassionally lose information when the server is writing to disk, and you can't issue sql queries against the data. However, I have written routines that convert data into a tabular form that can easily be read into a speadsheet or database system. Sample datafiles appear in the example-data directory.

The software should be placed in a cgi-bin directory that allows execution of cgi files by the web server. There must also be a data directory that is writeable by the web server. There should be two subdirectories within this directory, and they must also be writeable by the web server. Create the directories:

Only one source file requires customization. This file is in src/global/definitions.tcl.

Tclsh must be installed in /usr/local/bin/tclsh. If it is installed elsewhere, the first line of all the *.cgi files must be modified to reflect this.

The following variables must be adjusted in definitions.tcl:

These are the only parameters that must be customized. However, most conference chairs will want to change some other features as well. These range from the superficial (putting the name of the conference in the header of the pages, adjusting the font color and type, adjusting the table colors) to the substantive (deciding between one-level reviewing or a two-level scheme, determining which features are to be asked for in the review forms). How to do this is described in the appropriate sections.

A set of test data is provided to let you check to see if things are working.

Customizing the Global Look-and-Feel

There are a few global variables that can be used to customize the look-and-feel of the software as a whole. These are all found in src/global/definitions.tcl. These include:


Reviewer Information

The next step is getting appropriate reviewer information online. If you do not plan to do automated matching of reviewers to papers, and if you do not need reviewers' up-to-date mailing information, then you only need to follow the instructions in the next subsection.

The software package provides facilities for the following:

Setting up the software

The bare minimum information you must supply to the software for setting up reviewer information is a file containing reviewer IDs, one per line. It requires you to make up a unique ID for each reviewer, and create an input file that consist of a list of unique user IDs, one ID per line. For SIGIR I used the reviewer's lastname concatenated with the first initial.

The function below creates a file called global/reviewerinfo.tcl that contains reviewer IDs and automatically assigns a randomly selected password to the reviewer. The password has the format word-digit-word where the words are of length 4-7.

If you want to have both first-tier reviewers and meta-reviewers, make one file for each reviewer type. You must use full pathnames unless executing in the directory containing the data file. If you want the same person to be both a meta-reviewer and a first-tier reviewer, you must give that person two separate IDs and place one ID in each of the two files.

Then follow these steps:

If you want to have only one type of reviewer, make one file of reviewer names and email address as above, and do the following steps:

Warning: once you have created reviewerinfo.tcl and notified the reviewers of their passwords, you must not delete or overwrite this file, since you will not be able to recreate the reviewer's passwords. Storing a copy of the file somewhere might be a good precaution.

Customizing Reviewer Information

The default setup is to collect current contact information and topic expertise information from reviewers. You may customize what kind of information the web pages request from reviewers. The information to customize is in global/definitions.tcl

If you want to add or remove an attribute, you must modify reviewerinfo(reviewerattributes) to add or remove the attribute's name. The default setting is:

You must also add or remove the information that describes how an attribute is presented in the web pages. These attributes are stored in the rrattributes variable. Associated with all attributes is a variable called msg that indicates the label that is shown alongside the display. There are three possible data types for attributes: text, integer, and llist. There are four display types: textbox, textlist, radiobuttons, and checkbox. Certain display types have other variables that can be set. Textline can specify linelength, textbox can specify numrows and numcols. For example:

There is a special attribute called displayexceptions which is used to restrict certain attributes from being shown on the main edit page. The excepted attributes are shown on alternative pages. This allows the breaking up of a large amount of information into separate web pages, so the user does not have to scroll as much and is less likely to lose partly finished work. For example, in the reviewer information code, the topics attribute is not shown on the main edit page, but rather has a separate page.

The topics can be customized as well. See customizing topics.

If you do not want reviewers to select among topic choices you need to change the notopics customization variable in definitions.tcl as follows:

The System in Action

Once you have set up the reviewers' IDs and passwords, and customized definitions.tcl (if desired), you are ready to have reviewers start entering their contact information. You need to create a web page that contains relevant information, along with a hyperlink that invokes the first cgi script. Examples of how to do this are shown in doc/example.html. This is how it looks on our system: You should associate some text with this hyperlink saying something like "click here to enter a reviewer information".

Reminder: the cgi files must appear in a cgi-bin directory readable by the web server in order for the cgi script to be executed.

To aid in system testing, the software generates reviewers named dummyftr and dummymeta along with the real reviewer IDs. These are convenient for testing purposes. You have to check the automatically generated password in reviewerinfo.tcl to access them.

When a reviewer logs into the system for the first time, a directory is created in data_directory_path/reviewers/ that is named after the reviewer ID. A file named contact.back.tcl is placed in this directory. This file contains the default (empty) settings for all of the reviewer's contact information. When the reviewer updates their contact information, the new information is placed in a file called contact.tcl and the old information shifted to contact.back.tcl. It is important not to modify these files by hand once they are created; only the system should modify them.

Emailing Password Information to Reviewers

This software package includes some routines to help streamline the process of notifying reviewers of their reviewer IDs and passwords. To use this code some additional work is required. You must create a file in global/tempreviewerinfo.tcl as follows. This is needed to personalize the email message. It is temporary because reviewers may give you different email addresses when they fill out their contact information; the addresses they give you will be used by the software once it is obtained. The file global/tempreviewerinfo.tcl must begin with the line

It must contain the following lines in this format for every reviewer:

You must also modify the message in the email_reviewer_password function in src/util/email.tcl to reflect your conference information. Warning: you should test this function out by first setting email address to be your own, to make sure it is sending the correct information.

Once this is done, you can run the following program.


Submission Information

The next step is online submission information. You can either have submitters enter this information via the web pages described below, or enter this information yourself with the provided utility.

The software package provides facilities for the following:

Obtaining submission information is very similar to reviewer information, with one notable difference. This difference is that the software assumes you do not know in advance who will be submitting papers and how many papers will be submitted. Therefore, you cannot preassign IDs and passwords. Instead, when a submitter enters their name in the first screen, they are assigned an ID which consists of that person's last name concatenated with a 4-digit randomized number. If the submitter later wants to change their submission they must have remembered that ID; otherwise they need to create a fresh submission record. This setup allows the same submitter to submit more than one paper.

A problem with combining online submission information with offline paper submissions is reconciliation of the submission ID with the paper version. Some submitters may enter submission information online but not end up sending in a submission; others may send a physical paper without using the online system. At some point reconciliation between paper and electronic IDs has to happen.

(Future versions of this software may add provisions for electronic submissions, but these have similar issues.)

This software provides a mechanism to allow for the reconciliation between the paper ID and the online submission ID.

Customizing Submission Information

The default setup is to collect current contact information from the primary author, less detailed information about co-authors, submission title and abstract, and to have the submitter choose among a set of topics that best characterize the submission. You may customize what kind of information the web pages request from submitters. The information to customize is in global/definitions.tcl

If you want to add or remove an attribute, you must modify submissioninfo(submissionattributes) to add or remove the attribute's name. The default attributes are:

You must also add or remove the information that describes how an attribute is presented in the web pages. These attributes are stored in the sattributes variable. Associated with all attributes is a variable called msg that indicates the label that is shown alongside the display. There are three possible data types for attributes: text, integer, and llist. There are four display types: textbox, textlist, radiobuttons, and checkbox. Certain display types have other variables that can be set. Textline can specify linelenght, textbox can specify numrows and numcols. For example:

There is a special attribute called displayexceptions which is used to restrict certain attributes from being shown on the main edit page. The excepted attributes are shown on alternative pages. This allows the breaking up of a large amount of information into separate web pages, so the user does not have to scroll as much and is less likely to lose partly finished work. For example, in the submission information code, the topics attribute and the coauthor attributes are not shown on the main edit page, but rather have separate pages.

The topics can be customized as well. See customizing topics.

If you do not want submitters to select among topic choices, or do not want them to specify coauthors you need to change the notopics and/or nocoauthors customization variable in definitions.tcl as follows:

The System in Action

Once you have customized definitions.tcl you are ready to have submitters start entering their information. You need to create a web page that contains relevant information, along with a hyperlink that invokes the first cgi script. This is how it looks on our system: You should associate some text with this hyperlink saying something like "click here to enter a paper submission".

Note that it must appear in the cgi-bin directory readable by the web server in order for the cgi script to be executed.

When a submitter enters information into the system for the first time, a directory is created in data_directory_path/submissions/ that is named after the submission ID. A file named contact.back.tcl is placed in this directory. This file contains the default (empty) settings for all of the submitters's contact information. When the submitter updates their contact information, the new information is placed in a file called contact.tcl and the old information shifted to contact.back.tcl. It is important not to modify these files by hand once they are created; only the system should modify them.

Once the submission deadline is over you must reconcile the paper versions with the electronic IDs. How to do this is described below, in Assigning Submissions to Reviewers.

Emailing Acknowledgements to Submitters

This software package provides a facility to automate the notification of submitters that their papers have been received. This step should not be done until the previous steps are completed -- the software requires ../global/reviewinfo.tcl to be complete, because this shows that you have reconciled the online submission with the actual paper submissions that arrive. See the instructions in the next section.

% cd src/util
% tclsh
> source email.tcl > email_submission_acks > exit

You may want to edit the function to substitute in your email address in order to test it out first. The steps to accomplish


Assigning Submissions to Reviewers

This section describes the automated facility for matching first-tier reviewers to papers using topic overlap. You can make the assignments by hand instead if you wish. However, some programs below must nevertheless be run in order to get all of the data in the right form for doing online reviewing.

The following steps are necessary:

The reviewing software requires that the title and paper ID be available for every submission (for display to the reviewer).

This software package provides routines that will create a file, called ../global/reviewinfo.tcl, that contains the necessary information for the reviewing stage. To set things up you need to complete the following steps.

First, you must decide on a directory for storing temporary results. I suggest you create a directory called "tmpdir" in src/util. Then the argument directory in the commands below can be set to the relative directory name "tmpdir".

Next, you must create a file that links submission IDs to paper IDs. That file must consist of a list of submissionID/paperID pairs, separated by whitespace, as shown below:

Once this file is created, do the following

This should place a file called stemp.tcl in tmpdir.

Next you need to create a temporary file of reviewer information (this contains reviewer topic information):

This should place a file called rtemp.tcl in tmpdir.

Next, you must create a file that links submission IDs to metareviewer IDs (the philosophy being that metareviewers should be assigned by hand). If you are not going to use metareviewers then you don't need to do this step. That file must consist of a list of submissionID/reviewerID pairs, separated by whitespace, as shown below:

Once this file is created, do the following

This should place a file called mtemp.tcl in tmpdir.

Warning: In the reviewer creation phase above you need to have indicated if a reviewer is a metareviewer or not. This function does a check to be certain that all metareviewers have been assigned the correct type, and will return an error if this is not the case.

Finally, you need to assign papers to meta-reviewers. If you do not wish to use the automated matching program, then you need to create a file by hand called matches.tcl. This file should go in the same temporary directory as used in the previous two commands. The file must begin with:

Then, for every reviewer/paper pair, it must contain the following two lines:

Once matches.tcl is created (either manually or using the programs described below) the final data file is generated as follows:

Once this step is completed, you are ready to start online reviewing.

Notes on using topics to assign submissions to reviewers

For SIGIR'99 we found it quite useful to create a list of about 100 rather specific topics or categories that we expected the submissions to be about. We allowed reviewers to mark any number of these topics indicating that they wanted to and were qualified to review papers to which those topics had been assigned. Paper authors were required to assign from three to five topics to their submissions. For each reviewer/submission pair we compute the number of overlapping topics, and use the resulting number as a weight between the two. We then used a min-cut max-flow bipartite graph matching algorithm to assign papers to reviewers. (This code was written by Christos Faloutos, with help from David Karger, and uses MinCut code written by Andrew Goldberg and Boris Cherkassky. We have obtained permission to redistribute their code as part of this part of this package, provided it is used for noncommercial purposes only.)

This software package provides software to present and record topic choice information to both reviewers and paper submitters, and to then run the matching software on the results and produce a list of paper assignments. You may adjust the results to their liking by hand. An especially nice feature of the matching algorithm is that it allows you to specify the minimum and maximum number of papers per reviewer, and reviewers per paper, finding an optimal matching assignment, based on the weight of match between reviewer and submission.

We had to run the algorithm several times, varying these parameters a bit, since if you require, say, no more than six papers per reviewer, and want four reviews per paper, you have to have at least 1.5 reviewers per paper. If you have fewer reviewers than the minimum allowed (or you have more but you don't have enough non-zero match scores) then the algorithm will not return a result. This requires adjustment of the range of expected papers per reviewer or reviews per paper (or both).

We found that the matching software did an excellent job using overlap between topic choices. (This may have been due in part to the specificity and comprehensiveness of the topics, which I created by hand.) I heard comments from several reviewrs saying that the papers matched their interests much more accurately than usual. We had 135 submission, about 90 first-tier reviewers, and were able to assign between 3 and 6 papers per reviewer and have three first-tier reviews for every paper. (We also had a meta-review for every paper.)

The software allows you to avoid a conflict of interest if you assign a submission/reviewer pair a match score of zero.

We found that we did not like using the matching software for the meta-reviews. We wanted to ensure that all papers on a given topic (e.g., clustering) went to one meta-reviewer, and we wanted to select that meta-reviewer. So we organized the papers by topic and hand-assigned papers to meta-reviewers (we had 35 meta-reviewers vs. about 90 first-tier reviewers).

Installing the Matching Software

This software allows you to use a min-cut max-flow bipartite graph matching algorithm to assign papers to reviewers. This code was written by Christos Faloutos, with help from David Karger, and uses MinCut code written by Andrew Goldberg and Boris Cherkassky. We have obtained permission to redistribute their code as part of this part of this package, provided it is used for noncommercial purposes only.

You must install this code before you can do the next steps. It is quite easy to do. Simply follow the directions in src/util/matching/PREPARE (basically you just run make).

Setting up the software

Assuming you have: you can run the software to match reviewers to submissions.

The steps below creates a file that contains assignments of submissions to reviewers. This assumes you only want to run this with first-tier reviewers. It lets you customize the above to change the number of reviews per paper and papers per reviewer. The steps below assign between 0 and 5 papers per reviewer, and between 2 and 4 reviews per paper. (It is a good idea to allow 0 reviews for a reviewer, in case there is a reviewer whose interests do not match any papers. Otherwise the program will fail to produce output under these circumstances.)

The steps below creates a file that contains assignments of submissions to reviewers, using all reviewers, not just first-tier reviewers.

The output appears in tmpdir/matches.tcl.

You must check the results of this step to see if it actually succeeded or not. If the constraints can't be met then no results are generated. You will need to adjust the constraints and try again.

You may want to modify the assignments that the system produces. The ascii file allows you do to so. When you have the assignments finalized, copy the file matches.tcl into src/global so it can be used by subsequent parts of the software.

An alternative to running this software is to simply assign submissions to reviewers by hand. How to do so is described above.

Once matches.tcl is created (either manually or using the programs described below) the final data file is generated as follows:

This puts all the information together that is needed to do online reviewing. The information is placed in ../global/reviewinfo.tcl.

Warning: once you have created reviewinfo.tcl you should not delete or overwrite this file, since it is needed by the reviews program. It is possible to recreate this file using the steps above, but if you've made adjustments to matches.tcl it may be difficult to do this accurately. Storing a copy of the file somewhere might be a good precaution.

Customizing the Topics

The topic list may be customized. The topics are stored in a file called src/global/topics.tcl. Each topic has two attributes: text and color. Text indicates the textual description of the topic, color indicates the background color of the table cell displaying the topic. The latter is used to visually group sets of related topics together; this is important when having users look through long lists of topics. The settings for colors are taken from the global variable tables found in the src/global/definitions.tcl file.

Each topic has a name, and that name must be appended to the topics(topicnames) list that is found in the topics.tcl file. It is a good idea to make this name a descriptive summary of the topic itself, since it is sometimes shown as a shorthand for the topic.


Online Reviewing

Now we are ready to do the reviewing. This step assumes you have:

Customizing Review Information

You may customize what kind of information the web pages request from reviewers about the submissions they are reviewing. You can also control whether or not first-tier reviewers see other reviews of the same submission, and whether or not meta-reviewers see the first-tier reviews that correspond to those submissions they are in charge of.

The information to customize is in src/global/definitions.tcl

If you want to add or remove an attribute, you must modify reviewinfo(reviewattributes) to add or remove the attribute's name.

You must also add or remove the information that describes how an attribute is presented in the web pages. These attributes are stored in the rattributes variable. Associated with all attributes is a variable called msg that indicates the label that is shown alongside the display. There are three possible data types for attributes: text, integer, and llist. There are four display types: textbox, textlist, radiobuttons, and checkbox. Certain display types have other variables that can be set. Textline can specify linelenght, textbox can specify numrows and numcols. For example:

The System in Action

Once you have customized definitions.tcl you are ready to have reviewers start entering their information. You need to create a web page that contains relevant information, along with a hyperlink that invokes the first cgi script. This is how it looks on our system: You should associate some text with this hyperlink saying something like "click here to enter reviews".

Note that it must appear in the cgi-bin directory readable by the web server in order for the cgi script to be executed.

When a reviewer enters information into the system for the first time, a directory is created in data_directory_path/reviewers that is named after the submission ID. A file named review.back.tcl is placed in this directory. This file contains the default (empty) settings for all of the review information. When the reviewer upates their review information, the new information is placed in a file called review.tcl and the old information shifted to review.back.tcl. It is important not to modify these files by hand once they are created; only the system should modify them.

You may want to have a period of time during which the first-tier reviewers can only see their own reviews. After the first deadline has gone by and the meta-reviewers are generating meta-reviews, it may be convenient to let first-tier reviewers see the other reviews for their submissons.

To allow first-tier reviewers to see the other first-tier reviews for their submissions, set the following in src/globals/definitions.tcl:

To allow first-tier reviewers to see the first-tier reviews and the meta-reviewsfor their submissions, set the following in src/globals/definitions.tcl:

To prevent meta-reviewers from seeing the first-tier reviews for their submissions, set the following in src/globals/definitions.tcl:


The Program Committee Meeting

This software provides code to help streamline the program committee meeting. Two things in particular might be needed: For both of these, you must first create a file called src/global/conflicts.tcl that lists conflicts of interest between a reviewer ID and a submission ID. It looks as follows:

global conflict

set conflict(110) washingtong
set conflict(131) jefferstont
set conflict(202) adamsj

To create a spreadsheet tallying reviews of papers, you first have to know what the maximum number of first tier reviewers is per paper. This code only works for the default review attributes; if you have other attributes you will have to modify the code to use it.

% cd src/util
% tclsh
> source pcmeeting.tcl > compile_stats outputfile maxnumftrs

This will produce a file in which columns are delimited by dollar signs ($) and thus can be read into a spreadsheet or database program.

To generate an html file with links to reviews for every submission:

% cd src/util
% tclsh
> source pcmeeting.tcl > generate_html_reviews_for_pc_meeting outputfile

This places the resulting html in an appropriate file. You will need to modify it to give it headers, etc.

Emailing Results

This software package provides a facility to automate the notification of submitters, including cleaned-up versions of their reviews.

This requires a file has been created called accepted.tcl, in the local directory, that has the follwoing format, showing the submission IDs only of those papers that were accepted.

WARNING: if you have the accept/reject information wrong, your submitters will be notified of the wrong information. It is very important that you first manually check the results of create_review_decisions before mailing them out.

The following function writes the reviews to files in directory prefix. They can then be emailed to the appropriate people using the following function.

% cd src/util
% tclsh
> source email.tcl > create_review_decisions prefix > exit

This function emails the reviews created in the previous step. You can edit the function to substitute in your email address if you'd like to test it out first.

% cd src/util
% tclsh
> source email.tcl > email_review_decisions prefix > exit

Additional Considerations

Unusual Characters and Preserving Line Breaks

The software converts certain characters that might confuse Tcl into more innocuous ones. For example, it converts double quotations marks into single quotes, and it converts curly braces into parentheses.

An issue arises with respect to people cutting-and-pasting reviews from word-processing programs into the html forms. These will tend to be represented as one long string, and could through the table view off if verbatim display mode were used. However, if verbatim mode is not used then line breaks, paragraphs skips, offset bulleted items are lost.

These issues are resolved in a function called clean_up_text that appears in startup.tcl. It substitutes \ for \\n. There is also a function called st that inserts \ for lines that exceed a threshold (currently set to 80 characters, but breaking at whitespace).

Security

This software is not intended to be robust against security attacks. It assumes the web server and the system it runs on takes proper security cautions.

One potential problem with not requiring passwords in the submission process is that someone might try to load down the system by entering a large number of bogus submissions. The software does not provide provisions to protect against this sort of attack.

Another potential problem is that passwords and IDs are typed in the clear, so potentially someone who sets up a sniffer on the line could detect passwords. If someone would like to modify this software to make it more secure, I would welcome the help.

The software passes ID information between cgi scripts. It relies on the cgi.tcl module to handle this information securely.


Last modified December 9, 1999. Marti Hearst