Mnemisis (A mnemonic toolkit)
Cvs says it's: $Date: 2003/04/01 03:07:05 $
Copyright (C) 2001-2003
Rhett Bassett
1. Intro
Mnemisis is a toolkit for using what is known as the 'major' system of mnemonic, which uses the rather interesting device of translating numbers into phonemes. This system, though requiring the investment of remembering the translation table, is vastly more elegant than most other mnemonic systems involving numbers. The Mnemisis package features both CLI and GUI front-ends, a genetic algorithm for developing translation tables, and (hopefully) entertaining documentation.
Mnemisis is programmed primarily in Python, using C++ extensions with the help of SWIG (http://swig.org). Documentation should be available in the Doc directory, or, barring a stock install, at the mnemisis sourceforge site (http://mnemisis.sourceforge.net).
2. Install
To compile and use Mnemisis, you'll need:
Python (strangely enough)
A C++ compiler which supports shared linking (i.e. g++)
A Grep workalike (i.e. grep, egrep)
A (preferably English) Dictionary file
The Dictionary deserves some further explanation, as it is key to a usable Mnemisis experience. If you're using Unix and have a spelling dictionary in /usr/share/dict/words you'll be just fine, and can skip this note. Everyone else: you'll need a spelling dictionary in plain text format, one word per line. Project Gutenburg has one called Moby, which works fine. There's a walkthrough in the manual on how to make that work for you.
If you're going to be doing development work, you may also need (depending on what parts you're working on):
An Awk workalike (i.e. mawk, awk)
uniq (part of the GNU text utilities)
convert (part of the ImageMagick suite)
Mnemisis does NOT go in for the whole 'install' thing. Once compiled, it should be run from the current directory. At the least, this makes it easy to uninstall - you simply remove the entire directory. This is a low priority 'feature'.
To compile Mnemisis so that it is ready for use:
./configure
make
Again, depending on what you're doing, the configure script's complaints can be ignored. You'll should get a full grinding halt if something critical is missing or can't be found (such as the Python header files).
Speaking of same, the configure script has these extras:
--with-PYTHON_HEADER_DIR=LOCATION
Which you should use if it can't seem to find Python's headers, or if they're in a non-standard place. Replace LOCATION with the location of the header files.
Developers will be the only ones to really care about the other options:
--enable-warns
Turn on compiler warnings.
--enable-debug
Compile in debugging info.
--enable-profile
Compile in profiling info.
3. Running
The GUI may be accessed by compiling Mnemisis and then typing:
./MNEMISIS.py
The Python/Tk front end should then come up. Further information is available under Docs/.
4. Bugs
- Portability is questionable - I don't have spare machines running other operating systems, so any portability attempts I've made are from textbooks rather than experience. Mnemisis is developed and tested on i386 Debian Stable - if you're running something else, Mnemisis will at least make attempts to tell you why it can't compile and run.
- Bundle.* files are not cross-checked for what Phoneme_Table created them, so using multiple Phoneme_Tables (which might occur when using the genetic algorithm to breed better tables than the one that comes with Mnemisis) will result in erroneous translations.
- Exterior file parsing (Rc, Phoneme_Table, vectorlist) is pretty fricken ignorant. Mnemisis will attempt to kick up a warning about invalid lines, but the syntax is still fairly strict. Working from the examples provided and from the `dumprc` option should keep you out of trouble, however.
- Installation - personal taste. I don't mind being wedged into the Mnemisis directory - others might. If I get enough complaints I'll dust off the autoconf manuals and see about putting things in their proper places without rm -rf *ing your system.
5. Resources
The Mnemisis website is located at:
http://mnemisis.sourceforge.net/
CVS snapshots and a copy of the manual are available.
6. Etc
I try to reply to all email that I receive: bugs / patches / spam. Well, maybe not bug reports. (Winky emoticon, for humor impaired)
Rhett Bassett
hubertshrump@users.sourceforge.net
