Contents of the NIM.DOC file
N.I.M. (beta release)
the Newspaper Index Machine
(c) 1988, GMUtant Software
All rights to NIM are reserved. This beta release is offered for users
to test NIM and send their evaluative comments back to GMUtant. We're
working up an exciting production release of NIM...and would like user
Function: The Newspaper Index Machine (NIM) is really a combination of two
systems. First, it replaces the index cards one traditionally
uses to create an index. Second, using this data, the program
creates a 'camera-ready' version of the index--which may then
be further modified and printed via your word processor.
The system allows two levels of indexing; that is, a primary
subject and one sub-division. You may, however, have as many
sub-divisions per subject as you wish. Here's an excerpt
of a typical index created by NIM:
Orders Copy Center to use two-sided paper p 1 10/30
Forgives overdues for students p 5 01/01
Photo of new library p 5 05/05
New system installed p 10 05/17
New system down for six weeks p 2 04/16
GMUtant gives library $ 3,000.00 grant p 5 10/10
-- SPECIAL COLLECTIONS
New Vault installed p 20 02/14
Named to President's Council p 5 01/22
Resigns from President's Council p15 02/11
o Menu-driven, easy-to-use.
o Files compatible with dBASE III or dBASE III+
o Files may be exported from NIM in delimited format--enabling
user to use data with other dbms software.
o Provides on-line verification of headings--reporting whether or
not heading exists in database.
o Produces a list of all headings used (available at any time).
o No limit on the number of main headings. No limit on number
of sub-divisions used per main heading.
o Full-screen editing of records entered.
o Offers six different display formats for final index.
o Index and heading list may be written to an ASCII file and/or a
printer (which allows post-production editing via your word
o Offers a descriptive text field for each entry.
o System defaults file allows user to run system with multiple
databases and change output file names.
The distribution diskette contains 5 files:
NIM.EXE - the primary program
NEWSDAT.DBF - main data file
HEADINGS.DBF - headings (authority control)
INDEFS.DBF - system defaults file
NIM.DOC - this documentation.
To install NIM, create a sub-directory and copy all files
from the distribution diskette to it.
Then type NIM to activate the program and follow the
indexing procedure outlined in #3 above.
*IMPORTANT* The NIM system defaults to drive and directory
where NIM.EXE is stored. If you want to use a different
drive for your data files, you will have to modify the
INDEFS.DBF file. This change is done from within the
CHANGE DEFAULTS screen which is accessed via FILE MAINTENANCE
on the Main Menu.
II. System Overview
The NIM system is uses light-bar menus to control its operation. The
program first presents an opening menu which provides access to all
other functions. The next sections describe each option available
from the main menu.
1. OPENING MENU:
Newspaper Index Machine
Add a new entry
Generate Print Index
List Headings Used
Quit to DOS
(c) 1988, GMUtant Software
Selection of a particular option may be done in two ways: 1) Move the
light-bar to the appropriate option and press RETURN, or 2) Press the
initial letter of the option you want to access (e.g., Press A to Add
to the file, E to Edit, and so on).
2. ADD A NEW ENTRY
Selecting this option paints a data-entry template on the screen:
ADD FUNCTION Newspaper Index Machine
Enter information in the blanks below. When default information fills a box
pressing RETURN will accept it. Type over default information to make a
change. You many access the option screen at any time by pressing ^W.
Issue #: __ Section: ___ Column: __ Page: ___ Date: __/__/__
The user fills in this form with the appropriate data for a given
newspaper article. If you do not want to use a particular field
in your final index (like column), just press RETURN to leave that
field empty. In the subject field, you may enter a primary subject
and if desired, a sub-division. For the text line, you are allowed
forty characters to enter a descriptive summary of the entry.
Subjects and Sub-Divisions are converted to UPPER CASE before filing.
Here's a sample entry:
Issue #: 3 Section: B Column: 3 Page: 12 Date: 01/15/88
Subject: Library -- Automation
Text: New integrated system installed in Main.
Once you have completed an entry, you are presented with a menu
of options for dealing with that record:
Q - Quit and return to main menu V - Verify Heading
E - Edit information just entered F - File and continue
C - Carry cite information forward
Your choice: __
Q - Files the record and exits the data-entry function.
E - Allows user to edit the record just entered.
V - Checks to see if subjects assigned to the record just entered
have ever been used in the file. Following verification check
and message (IN USE or NEVER USED), the option menu reappears.
See VERIFICATION NOTE at the end of this section for additional
information on this function.
C - Files current record and carries the top line of data over to
the next record. This minimizes typing for entries that will
be indexed under several headings.
F - Files current record and presents new (empty) template for
Note: If a record contains no PRIMARY subject, it will not be filed.
Thus, if you have a blank template on the screen yet wish to exit
the add function, you may press RETURN several times to move through
the fields (or ^W to access the option screen immediately) then
press Q. The blank record will NOT be filed.
VERIFICATION NOTE: This function checks a separate AUTHORITY CONTROL
file to determine if a heading is already in use. This file contains
one entry for each unique heading in the database (when you file a
record into the primary datafile, NIM also checks the HEADINGS file
and adds the heading there too if it did not already exist). There is
no active link between these files...thus when you delete or change
records in the primary file, no update of the heading file takes
place. If you delete the last record with a particular heading from
the PRIMARY file, the old heading will remain in the HEADINGS
file...and verification will report that the heading is still in
We chose not to link the HEADINGS file and the PRIMARY file for
1) Such links would slow down data entry--particularly as the
size of the file grew. Without the links NIM functions well
on a standard (8088) PC and does not require an AT (80286) class
2) Storing the links would increase file size.
3) Users who do not wish to use the 'verification' feature
would be penalized since real-time links between the files
would have to be maintained anyway.
As an alternative, we created a batch program which will correct
any 'orphan' headings in the HEADINGS file. This utility is
accessed via the FILE MAINTENANCE function on the main menu.
Select INDEX FILES then answer "Y" to the 'rebuild master
headings file' prompt. This will recreate the heading file using
only headings that appear in the main database. We suggest you
run this function weekly if you make many changes to your database
and frequently use the 'verification' feature.
Final Note: The list of headings produced via the Main Menu is drawn
from the PRIMARY file and thus is always current. This listing, if
printed, is a more reliable indication of your heading's validity.
As your database grows, you might consider printing this list
once a week or so, then keeping it next to the PC during data
3. SEARCH the DATABASE
This function asks for a particular heading, then prints out all
occurrences of that term as either a primary or secondary heading.
This function is not, strictly speaking, an integral part of NIM
but was added to provide a limited on-line query capability. If
you wish to search two headings (a primary and sub-division), you
must combine the terms with a plus (+) sign (e.g., LIBRARY+HISTORY).
3. EDIT THE DATABASE
The EDIT function allows you to change a given entry in the database,
or to delete it entirely.
To speed retrieval, NIM indexes each record on the first 10 characters
of the primary heading and the first 5 of the sub-division. When
you request a particular heading, NIM checks this index to determine
which records to display. This partial indexing saves disk space and
makes retrieval fast (less than 1.5 seconds) but it increases the
likelihood that your initial match may not be EXACTLY the heading
Consider the indexing of the following headings:
USER QUERY ACTUAL HEADING INDEXED VALUE Retrieval?
Library+History Library-Automation Library Autom No
Library+History Library-Historic Bldg Library Histo Yes
Library+History Library-History Library Histo Yes
As you can see, the second and third entries are identical in the
NIM retrieval index -- thus both would display even though the user
When a record displays during the edit function, the INDEXED VALUE
of the subject and sub-division display in highlighted characters.
This was done to help the user understand why their query matched
the records it did.
This "in-the-neighborhood" matching does not present much of a
problem since the user is able to move forward and backward through
the file, beginning at the matching record. Typically, where the
systems fails to match exactly, the desired record is usually just
a few 'F' commands away.
In any case this method of indexing allows much faster retrieval than
a sequential read of the file and uses far less disk space than an
index of the entire 52 character subject fields would require.
Note: During edit, if you change a subject heading or sub-division,
the pointer which governs forward/backward movement will move to
where the new heading falls in the file. Thus, if you change
the subject "AMERICAN" to "UNITED STATES", you will be moved from
the A's to the U's in the file...and subsequent forward/backward
movement will take place from the new position (the U's).
4. GENERATE PRINT INDEX
This function prints the final product--using the records entered
into the system. The general format is as shown below:
PRIMARY SUBJECT Primary Headings and sub-divisions
-- SUBDIVISION are printed in UPPER CASE. Entries
Entry #1 appear under the sub-division (or
Entry #2 primary subject where no sub-division
-- SUBDIVISION exists). The text lines then appear
Entry #1 in alphabetized order.
Beyond this basic organization, the user may select from six
different display formats for the individual entry information.
1) text,issue,section,col,page,XX/XX/XX 2) text,section,page,XX/XX/XX
3) text,section,column,page,XX/XX 4) text,XX/XX/XX,page
5) section,page,XX/XX/XX 6) section,page,XX/XX/XX
Formats 5 and 6 DO NOT print out the text line.
These formats govern how the individual entry line will display. The
sample below is format #3 (wherein the year is omitted from the date).
This format assumes the entire index refers to a particular year.
Interviewed by Ruth Kerns p20 02/14
Orders Copy Center to copy 2 sided paper p 1 10/30
Joins UCIS planning staff p 3 04/23
Forgives overdues for students p 5 01/01
Photo of new library p 5 05/05
ALIS accepts new job. p23 03/03
ALIS down for six weeks p10 04/17
Here's the same information in format #1:
Interviewed by Ruth Kerns n 5 p 20 col 2 02/14/87
Orders Copy Center to copy 2 sided paper n 3 p 1 col 2 10/30/86
Joins UCIS planning staff n 2 p 2 col 3 04/23/87
Forgives overdues for students n 3 p 2 col 5 01/01/87
Photo of new library n 5 p 5 col 5 05/05/55
ALIS accepts new job. n 3 p 23 col 2 03/03/83
ALIS down for six weeks n 152 p 15 col 3 04/17/85
The final index is written to a plain ASCII file--which has INDEX.TXT
as its default name. You may change the name of this file via the
FILE MAINTENANCE/CHANGE DEFAULTS option.
5. LIST HEADINGS USED
This function will create a list (to an ASCII file and/or your printer)
showing the headings that are presently represented in your database. You
may print this list at any time...we recommend that you print it after
your database begins to grow and use the list as your approved subject
heading file. Where the system will be used by a variety of individuals--or
in a situation where the work of assigning subject headings needs to be
reviewed--this listing can provide a simple mechanism for checking the
data-entry work of others. At the end of the year, printing this list
would provide an authorities lists of sorts.
Note: You may delete the information in this file via the FILE MAINTENANCE
option on the main menu. When indexing a newspaper over a long period of
time, you might want to delete each year's data entries as you close out
the year but retain the HEADINGS file to use with the next year's data.
6. FILE MAINTENANCE
This function provides several sub-functions for the user. When you select
FILE MAINTENANCE from the main menu, a sub-menu appears:
Quit - Main Menu
Change Defaults: This option allows you to change several system-level
Index/ReIndex: This option builds/rebuilds the necessary index files.
Use this function when you first initialize the system
and again if you should experience any problems
retrieving data--sometimes indexes get corrupted (like
when the power goes off during data entry).
You may also use this function to rebuild your
Headings Used file.
Empty/Export: This function first gives you the option of writing
your primary database to another file in delimited
format (that is; quotes around each field, fields
separated by commas, and a carriage return/line feed
(CR/LF) after each record. This function allows you
to then read the data into another dbms system
(e.g., REFLEX, R-BASE, etc.)
The next option lets you delete all records in your
primary file. If desired, you may also delete all
headings in your authority control file. This function
would typcially be used if you wanted to empty out your
database after the printed index had been created.
Using data files with dBASE III/III+
The NIM system was written in dBASE, then compiled with the CLIPPER
compiler. As a result, you may use your datafiles with dBASE--a
feature that provides great flexibility for users. HOWEVER, if you
use dBASE with the files, be sure to re-index under NIM before continuing
to add data, print lists, edit, or whatever. The NIM indexes ARE NOT
compatible with dBASE...and dBASE indexes are not acceptable to NIM.
Structure for database : NEWSDAT.DBF
Field Field name Type Width Data Stored
1 COL Character 2 Column
2 ISSUE Character 3 Issue Number
3 PAGE Character 2 Page Number
4 SECTION Character 3 Section Number
5 DATE Date 8 Date (MM/DD/YR)
6 SUBJECT Character 32 Primary Subject
7 SUBJECT2 Character 32 Sub-Division
9 MISC Character 45 Text line
Structure for database : INDEFS.DBF
Field Field name Type Width
1 DBCODE Character 12 Name of main database
2 DRVCODE Character 2 Default disk drive
3 SUBCODE Character 12 Name of headings database
4 FINALCODE Character 12 Name for final index ASCII file
5 LISTCODE Character 12 Name for headings ASCII file
6 DISPLINE Character 1 Format for display (1-6)
Structure for database : HEADINGS.DBF
Field Field name Type Width
1 HEADING Character 66 Combination of primary heading
and sub-division. This is the
authority file used only during
data entry heading validation.
INDEX FILES [dBASE commands to replicate indexes]
Note: dBASE indexes will not work with NIM (NIM's indexes
are *.NTX while dBASE creates indexes with the *.NDX
extension. Simply renaming NTX files to NDX is not
sufficient...they have different structures).
HEADEX (uses PRIMARY file)
index on UPPER(substr(subject,1,10)+substr(subject2,1,5)) to headex
INDSUBDEX (uses SECONDARY file)
index on upper(heading) to insubdex
Send your thoughts, comments, or bug reports on NIM to:
Systems Office, Fenwick Library
George Mason University
4400 University Drive
Fairfax, VA 22030
/* end of documentation */