MG INFORMATION RETRIEVAL SYSTEM
===============================
The MG system is a suite of programs for compressing and indexing text
and images. Most of the functionality implemented in the suite is as
described in the book ``Managing Gigabytes: Compressing and Indexing
Documents and Images'', second edition, I.H. Witten, A. Moffat, and
T.C. Bell, Morgan Kaufmann, San Francisco, 1999, ISBN 1-55860-570-3;
US $54.95. See also the web page .
These features include:
-- text compression using a Huffman-coded semi-static word-based scheme
-- two-level context-based compression of bi-level images
-- FELICS lossless compression of gray-scale images
-- combined lossy/lossless compression for textual images
-- indexing algorithms for large volumes of text in limited main memory
-- index compression
-- a retrieval system that processes Boolean and ranked queries
-- an X windows interface to the retrieval system
As one example, a collection of 2 Gb of text (1,700,000 documents) can
be indexed (on a 266 MHz Pentium II) in about one hour and compressed
in a further one hour to make a database that in total occupies less
than 800 Mb, or 40% of the original size. This includes a full index
to every word and number in the original text. Boolean queries such as
``managing AND gigabytes'' run in a few tenths of a second on the same
hardware, and ranked queries of 30--50 terms are evaluated in 1--3
seconds.
Details of these methods and further performance results appear in the
MG book.
The MG system comes with ABSOLUTELY NO WARRANTY; for details see the
file COPYING.
Instructions on how to build and install mg are in the files INSTALL.mg
and INSTALL.
** CHANGES FROM BOOK
For copyright reasons the stemmer used in this distribution of MG is not
the same as the one illustrated in Figure 3.9 on page 146 of the MG
book. (However, the numbers generated by the command ``mgstat alice''
will match those numbers in Figure A.1 on page 454, unlike in the first
edition of the MG book.) Another stemmer was initially written as a
simple stopgap for version 1.0. That stemmer has now been replaced by a
stemmer based on the Lovin's stemming algorithm.
The output format of ``mgstat'' has changed slightly since Figure A.1
(page 454) was prepared. The same information is displayed but formatted
differently.
Some of the on-disk data structures have changed slightly, to accomodate
larger databases. This is reflected in some increased file sizes -- in
most cases, the increase is just 8 bytes. This also means that databases
built with older versions of mg are not compatible with this version.
** MG VERSIONS
The current version is mg-1.2.1, August 1999. The changes from earlier
versions are listed in the file MODIFICATIONS. This can be accessed
with mg by building a database using ``mgbuild mods'' and can also be
accessed from the mg web page (see below).
The mg-1.2.1 extensions include:
-- Fixes to compile under Linux (various distributions).
-- Fixes to avoid some 32-bit integer overflows when building large
(> 2Gb) databases.
The mg-1.2 extensions include:
-- Source modifications for use of GNU's autoconf.
The mg-1.1 extensions include:
-- A new highlighting mode.
The output mode ``hilite'' will highlight the query terms in the
retrieved text documents. The variable ``hilite_style'' can be set
to ``bold'' or ``underline''. It works best with the pager
``less''. A .mgrc to use would include:
.set pager less
.set mode hilite
.set hilite_style bold
-- A web site containing manual pages and documentation is at
One of these pages ``about_mg.html'' is included in this
distribution.
-- A revised mg_get script which uses a .mg_getrc file to map
specific collection names to filter types. (Modifications by Bruce
McKenzie). See mg_get.1 for more details.
-- Code to perform merging of existing databases. This code
was created by Shane Hudson and is documented in the mgmerge.README
file found in the docs subdirectory. This code was written by
Shane Hudson (Canterbury).
-- Revised man pages, including some new entries (thanks to Nelson
Beebe). See mg.1, mgintro.1, mgintro++.1.
-- A real (rather than toy) stemmer.
** PORTABILITY
Please refer to "README.port".
** CREDITS
The MG development is largely the result of research collaboration
between:
Tim C. Bell
Ian Witten
Alistair Moffat
Justin Zobel
The bulk of the programming work has been carried out by:
Stuart Inglis (Waikato)
Craig Nevill-Manning (Waikato)
Neil Sharman (Melbourne and RMIT)
Tim Shimmin (RMIT)
In addition to these, the following people have contributed to the
development of the MG software:
Lachlan Andrew (RMIT)
Tim A.H. Bell (Melbourne)
Owen de Kretser (Melbourne)
Gary Eddy (Melbourne)
Hugh Emberson (Canterbury)
Kerry Guise (Waikato)
Shane Hudson (Canterbury)
Linh Huynh (Melbourne and RMIT)
Bohdan S. Majewski (Queensland)
Bruce McKenzie (Canterbury)
William Weber (RMIT)
In addition to these, the following people have submitted bug reports
and suggestions/fixes:
Rex Barzee
Nelson Beebe
Tim A.H. Bell
Tim C. Bell
Rodney Brown
Rok Sosic
Carl Staelin
Development of the MG system was supported by the Australian Research
Council; the Universities of Melbourne, Waikato, Canterbury, and
Calgary; RMIT; and the Collaborative Information Technology Research
Institute (Melbourne).
** BUG REPORTS
Send bug reports to . But do please be aware
that there is little likelihood of any immediate response apart from a
"thank you for letting me know", as we have no funded support for MG,
and any software development is voluntary on the part of my students.
What I do guarantee is that your mail will be retained against the
eventuality that one day someone does give us $50,000 for further
software development. And if you have $50,000, and thought MG was
wonderful, well, think of us...
** FURTHER READING
The bibliography of the MG book lists a wide range of relevant papers.
Other recent work relevant to the project is listed at
and at
. The NZDL project home
page is at .