SPIFACE version 2.00

SLAC 10 May 1995

What is SPIFACE?

SPIFACE is a simple interface between WWW and QSPIRES. Currently it is written as a REXX routine designed to be used as a cgi script.

SPIFACE can be used to create forms that users can fill in to perform SPIRES queries, or it can be used to perform SPIRES queries as the result of clicking on a WWW link. In either case SPIFACE is designed to be very simple to use, requiring no coding other than the HTML for the form or link itself, and possibly a SPIRES format to generate the requisite output.


SPIFACE is derived from an earlier work called SPIFORM. SPIFACE is very similar to SPIFORM, but not completely backward compatible with the earlier version.

How do I use SPIFACE?

The simplest way to use SPIFACE is by exploiting the mapping it sets up between URL's and SPIRES commands. Consider the following URL:


Accessing this URL will cause SPIRES to use the FIND command to search the FREEHEP database using format WWW for records satisfying the search criterium AUTHOR=JOHNSON. (Try it by clicking here.)

URL syntax

The above example illustrates the general format for SPIRES URLS. They always begin with http://www-spires.slac.stanford.edu/spires. The following term (/find in the example above) specifies the spires command to be issued (currently only /find is supported, but others such as /browse will be added). The next term (/freehep in the example above) specifies the database to be used, and the third term (/www in the example above) gives the format to be used for output. Following teh ? is the database search specification (author=johnson in the above example).

More complex searches can be specified using & and | symbols to give multiple search terms. For examples:


(Try it by clicking here.)

Modifying the Default SPIFACE behaviour

You can modify the default behaviour of SPIFACE by creating an options file. (See where does the option file go? below.) Each line of the options file is of the form:
  Keyword = Value
The following keywords can be used in the options file.
The name of the command that QSPIRES will issue. This overrides the command implied by the URL.
The name of the SPIRES subfile (database) that QSPIRES will search. This overrides the subfile implied by the URL.
The term that QSPIRES will put between search terms, the default is AND
Normally SPIFACE will put a <pre> ... </pre> around the spires output automatically. If you do not want this specify a value of 0.
Normally SPIFACE will generate a header before the SPIRES output. If you do not want this set the value of this switch to 0.
Normally SPIFACE will generate a trailer after the SPIRES output. If you do not want this set the value of this switch to 0.
Use this switch to specify an owner for the generated output. For example owner = cottrell. This will automatically generate a /owner link at the bottom of the SPIRES output.
The format that QSPIRES will use for the output, the default is unspecified (i.e. the QSPIRES default for the subfile will be used).
A list of alternate formats that can be used. If specified the output from the query will contain a small form which will allow the user to switch between the formats specified.
QSPIRES limits the lengths of lines returned from SPIRES. This can cause truncation of lines, especially if they contain many references to long urls. The default value of LENGTH (through SPIFACE) is 150. This can be increased using the LENGTH element up to 2048 (but dont make it this long unless you have to, it can cause problems with QSPIRES running out of buffers).
Specify an HTML file to be returned in the event that no matches are found in the database. (See specifying files).
Specify an HTML file to replace the normal header generated by SPIFORM. (See specifying files).
Specify an HTML file to replace the normal trailer generated by SPIFORM. (See specifying files).
Restricts access to SLAC nodes only. The value is the name of an HTML file to be returned inb response to an attempt to access information from outside of SLAC. (See specifying files).

Specifying Files

Wherever a file can be spcified above, it must be specified as a simple file name with no directory (e.g. junk.html). If the URL for the query was
then SPIFACE will look for the file in the following directories, taking the first occurence it finds.

Where does the options file go?

The rules for searching for an option file are similar to those for searching for other files above, but in the case of the optioon file the directories are searched in the opposite order. In each directory if a file called spiface.opt is found it is read, and then the search continues with the next directory. Options specified in the most recently read options file override those specified in earlier options files.

Options specified at the lowest level will affect all SPIRES searches, unless overriden for a specific search. Specifying options at the subfile level causes those options to apply to all searches in that subfile (unless overriden at the format level).

Using SPIFACE with HTML forms

Consider the following very simple example:
     <form action="/cgi-bin/spiface">
     Book Title <input NAME="TITLE">
This would generate a form which would look like this:

Book Title

When filled in (with the value ELEPHANT for example) it would generate the following QSPIRES query.

and show the results.

A second slightly more complex example:

     <form action="/cgi-bin/spiface">
     Book Title <input NAME="TITLE"><br>
     Book Author <input NAME="AUTHOR">
     <input type="hidden" name="SUBFILE" value="BOOKS">
     <input type="submit">
would look like this

Book Title
Book Author

and would generate a QSPIRES query of the form:


Hidden Elements

Note the use of a hidden element in the above form to specifiy which subfile should be searched. The following items are designed to be used with fields of type hidden within the form. They are used to pass additional information from the form to QSPIRES. Note that within an HTML form, fields of type HIDDEN are not normally visible on the screen, so the person filling in the form will not see these items.

Suppressing the AND between search terms

Normally SPIFACE automatically inserts the word AND between search terms. This can be changed using the MATCH keyword defined above, but occasionally it is convenient to just omit the AND between successive search terms completely. Consider the following example:
     <form action="/cgi-bin/SPIFACE">
     Date <input NAME="MONTH"><input NAME="YEAR">
This would generate a QSPIRES query of the form:
Instead one could use
     <form action="/cgi-bin/SPIFACE">
     Date <input NAME="DATE"><input NAME="*">
to generate a spires query of the form
Note the use of the special value * for the name of the second field, which suppresses both the name and the preceeding AND in the QSPIRES query.