DISCLAIMER : This is a beta version.
	It works, but no docs ae really written, and source code isn't
	completly clearly commented.


* What is Merime ?
Merime is package dealing with spelling check and correction.
It's split into2 parts :
	* The spelling corrector
	* Tools needed for managing dictionary databases


* How does Merime work ?
It take a dictionary database, your text on the standard input, and
gives you on the standard output, for each unknown word (i.e word not
in the dictionary), the line where it is and different suggestions
close to this word.

Run it on a window, piped on "more" (Merime mydic.DAG < mytext.txt | more),
and correct yout text in your favourite text editor, in parallel,
according to errors discovered.


* What is dictionary database ?
These files contains aset of words. A word is considered as
mis-spelled, if it doesn't appear in the dictionary database.

So Merime is an exact checker. Some old version of checkers used
statistics in order to determine if a word was correctly spelled. So
in some cases, errors were found even if the word was correct, and in
some other cases no errors were found even if the word was
mis-spelled.


* How powerful is Merime ?
Merime is able to give suggestions for words, even if there arre
several spelling errors in it. Some other chercker-correctors are only
able to give suggestions if there only is one error.

Sometimes, Merime gives more suggestions than we would like. I know,
but it's difficult to give enought suggestions without giving too much
suggestions ;-)
In most cases, even if there are too much suggestion, a good point is
that the correct spelling for the word IS in these suggestions.

The number of faults accepted in a word depends on the length of this
word. I tried to set good limits, but they don't necessarly fit your
use. In this case, it is possible to change these settings in one of
the source file ("CorrectExtern.c"). In this file, i think comments
are clear enought to know what to do.

It's not very clean, I know. In a latter version, I'll use a
configuration file instead of hacking the source code ;-)

Note that the bigger your dictionary database is, the more suggestions
you'll have for each word, of course...


* What's Merime's legal status ?
Merime is freely distribuable. Sources are provided for compiling on
whatever system you wish. Source is pure ANSI C, so you should be able
to compile Merime with any C compiler.

This software is provided without any warranties.
I am NOT responsible for using this or other versions of the Merime
package (i.e all programs provided in this package).

If you use Merime's source to build an extension or another program,
I'd to know it in order to see that what I did is used by someone in
the world ;-)


* How to install ?
Rather simple, type :
	make in each of the 2 directories of the distribution.


* Files in the package.
BuildTable : Used for creating a dictionary database. It uses a SORTED
ascii file containing all the words you want to have in your database.
Text must be SORTED BY ASCII CODE. (A sort function is provided in Caml
Light language).
Note : Dictionary files are still big, and memory requiered for
building them is rather *big*. Of course, the bigger your dictionary
text is, the more you'll need memory to create the associated
dictionary. For example, for the french dictionary (more than 250.000
words, 10 Mo RAM are needed for a short time).


Add : Used to add a word to an elready existing dictonary database.

DumpTable : Used to decompress the dictionary database. It gives you
the list (ASCII CODE SORTED, of course) of all words present in
the dictionary  database.

CheckWord : It's a little program test. It check if words you type on
the standard input exist in the dictionary database.

CorrectWord : It's also a little program test. It gives you
suggestions for word you type on the standard input, even if the word
exists in the dictionary database.

Merime : It is the real text corrector. See description above in this
document.


* Other Stuff : CrossCheat
An other little hack had been coded. It is a crossword cheater. When
you don't find what word the definition refers to, give CrossCheat the
pattern of your word (with * for unknown letter). The program will
give you all matching words of the dictionary database.
Funny isn't it ?


* Author address
Mr Francois PESSAUX
27 Av des Fusille's de Cha^teaubriant
94100 Saint-Maur des Fosse's
FRANCE

E-mail : francois.pessaux@inria.fr

Merime has been developped and tested on :
	- Amiga 2000 MC68ECO30 40MHz 7 Mo RAM
	- Linux Pentium 150 MHz 32 Mo RAM
	- DEC Station 3000 25 MHz
	- SparcStation 5/10
