[Home] . . . Search by [Problem] [Package] [Name or Keyword] . . . [Math at NIST]

GAMS Problem Taxonomy Background

The classification system itself is here.


Classification systems have long been used to give structure to large bodies of information. A well-formulated system can improve understanding of the information as well as ease access to it, thus making the information more useful. The Dewey Decimal System, for example, provides a means for librarians to maintain a large collection of books. Since the system is subject-oriented, library users can quickly find books in a given subject area. Likewise, a subject-oriented classification system can be an effective means of directing users to appropriate mathematical and statistical software.

To be effective, such a classification system must have the following properties.

It must classify the problems which can be solved by computer software. Other orientations, such as classification by algorithm or classification by software package, are of less interest to end users.
Variable-level tree structure.
A tree structure is the most natural for a classification system. Allowing arbitrary levels of refinement permits the system to adapt to both mature and young subject areas. In young subject areas little software is available, and hence little refinement is necessary. In mature areas where much software is available, increased refinement is necessary to distinguish among the choices.

The classification system can be thought of as a pre-defined hierarchy of keywords. Since the entire universe of these keywords is visible to both developers and users the possibility of finding the correct software is improved. In addition, the tree structure shows explicit relationships among the set of keywords which can aid in users' understanding of them.

To use such a system, each piece of software must be assigned a class. Classification-based software selection systems permit users to incrementally refine their specification of the problem by using the classification system as a decision tree. When the most appropriate problem class has been selected by the user, software which contains the selected classification is presented.

Classification systems are not themselves free of problems. For example, they partition software much more coarsely than do keywords, and users may not be fluent in the terminology of the classification system. Nevertheless, we believe that the structure imposed by such systems improves both the user's access to information and the implementor's job of maintaining it.

The system used in GAMS has its origins in a software classification scheme devised in the 1960s by SHARE, the IBM Users Group. The SHARE scheme had a fixed two-level structure which led to very broad classes. Such a coarse structure was not suited to classifying very large software collections.

In 1975 John Bolstad proposed a substantial revision of the SHARE scheme which eliminated many of its weaknesses [9]. The Bolstad system was a multi-level tree-structured scheme. Unfortunately, it attempted to maintain compatibility with the SHARE scheme wherever possible and hence it inherited much of the SHARE system's illogical organization. Nevertheless, the scheme was a great improvement and versions of it were adopted for use by a number of groups, including NIST.

Many difficulties in using the Bolstad scheme surfaced at NIST while attempting to classify about 2500 subprograms, representing most of the widely-distributed mathematical software then available. As a result, many new classifications were added and some sections were completely reworked. The resulting scheme was used in the first GAMS software catalog [6] and was adopted for use in the documentation of the SLATEC Common Math Library.

In 1983 the classification system used in GAMS was completely revised and made available for public review [2]. This became known as version 1.0 of the GAMS Classification Scheme for mathematical and statistical software. The new system kept the Bolstad philosophy while providing an organization which more accurately reflected the then current state of mathematical and statistical software. In addition, many sections of the Bolstad scheme not directly related to mathematical or statistical software were deleted. Instead, the new scheme was viewed as a node in a larger scheme which encompassed all computer software. Minor modifications of this system appeared in [3] (version 1.1), [4] (version 1.2), and [9] (version 1.3).

The classification system was once again modified in 1989. The bulk of the changes occurred in the Statistics area, and the result was published in [5].

The GAMS taxonomy has been adopted for use by a number of institutions, including Amoco Production Research, C. Abaci (The Scientific Desk), Centro di Calccolo Elettronico Interuniversitario dell'Italia Nord-orientale (CINECA, Bologna), IMSL Inc., Konrad-Zuse-Zentrum fur Informationstechnik Berlin (ZIB), Lawrence Livermore National Laboratories, National Center for Atmospheric Research, NAG Ltd., SLATEC Common Math Library Subcommittee, University of Texas System Center for High Performance Computing.


Boisvert, R. F. (1989). The Guide to Available Mathematical Software advisory system, Math. & Comp. in Simul. 31, 453 -464.
Boisvert, R. F., Howe, S. E. and Kahaner, D. K. (1983). The GAMS classification scheme for mathematical and statistical software, SIGNUM Newsletter 18, No. 1, 10 -18.
Boisvert, R. F., Howe, S. E. and Kahaner, D. K. (1984). Guide to Available Mathematical Software, NBSIR 84-2824, National Bureau of Standards. Also available as PB84-171305 from the National Technical Information Service (NTIS), Springfield, VA 22161.
Boisvert, R. F., Howe, S. E. and Kahaner, D. K. (1985). GAMS -a framework for the management of scientific software, ACM Trans. Math. Softw. 11, 313 -355.
Boisvert, R. F., Howe, S. E. and Kahaner, D. K. (1991). The Guide to Available Mathematical Software Problem Classification System, Communications in Statistics - Simulation and Computation 20, pp. 811 -842.
Boisvert, R. F., Howe, S. E., Kahaner, D. K., Knapp-Cordes, J. and Knapp-Cordes, M. (1981). Guide to Available Mathematical Software, Center for Applied Mathematics, National Bureau of Standards, Washington, DC 20234, October 1981.
Boisvert, R. F., Howe, S. E., Kahaner, D. K., and Springmann, J. L. (1990). Guide to Available Mathematical Software, NISTIR 90-4237, National Institute of Standards and Technology. Also available as PB90-216508/AS, National Technical Information Service, Springfield, VA 22161.
Bolstad, J. (1975). A proposed classification scheme for computer program libraries, SIGNUM Newsletter 10, Nos. 2 -3, 32 -39.
IMSL Inc. (1987). MATH/LIBRARY : FORTRAN Subroutines for Mathematical Applications, Version 1.0, 2500 CityWest Blvd., Houston, TX 77042-3020.
Last change in this page : 19 December 2010. [ ].