About MG Pages

About MG Pages


These pages are provided for novices who want to try out MG, for users who want to find out more about MG and for programmers who are game enough to try modifying the source code.


The introduction briefly describes what MG is and how to set it up. The manual pages are provided online so that one doesn't have to remember all the long command names when trying to find out about a command and so that they can be kept up-to-date. The bugs and modifications to the system through to 1996 are recorded for the MG maintainers and so users know what bugs have been addressed. Since then the only significant changes have been to enhance partability (particularly for Linux users) and to explicitly test for "index too large" problems caused by putting in too much data. (More than about four to six gigabytes, if gcc long longs are not available.)

To aid everyone who is modifying the code or trying to understand how it works, some implementation notes are provided. The notes are incomplete but are worth checking if you plan any software development based upon MG. They refer specifically to mg-1.2 (1996), but are also reasonably accurate for mg-1.2.1 (August 1999). Most of the querying code and some of the file formats are explained. None of the image compression programs are documented here.

For an up-to-date list of bibliographic references, see the publications pages of Alistair Moffat and Justin Zobel.


The motivation for doing these pages came from a few areas. Firstly, I wanted a nice place to put my documentation about the internals of MG. Secondly, after seeing Bruce McKenzie's cgi-script for mgquery, I was prompted to do a Perl version (stealing some of his ideas).

Creation Of Pages

The creation of these pages was done using the following utilities:
  • htmltoc (by Earl Hood) - automatic creation of html table of contents
  • RosettaMan (by T.A. Phelps) - creating html versions of man pages
  • bibmarkup.pl (by Andy Wood) - create html versions of bib files
  • perl5.001e (by Larry Wall) - object oriented version of Perl
  • CGI.pm (by Lincoln Stein) - a Perl class for doing html forms

These pages originally authored by
Tim Shimmin,
[email protected] (this address now defunct)

now kind of maintained by
Alistair Moffat,
[email protected]
August 1999.