D.1 Important Items
Words in bold indicate how you should refer to the item when
discussing it with me or others.
D.1.1 Things that need to be done
These items need to be done before I consider Aspell finished. If you
are interested in helping me with one of these tasks please email
me. Good C++ skills are needed for most of these tasks involving
coding.
- Make Aspell Thread safe. Even though Aspell itself is not
multi-threaded I would like it to be thread safe so that it can be
used by multi-threaded programs. There are several areas of Aspell
that that are potently thread unsafe (such as accessing a global pool)
and several several classes which have the potential of being used by
more than one thread (such as the personal dictionary). [In Progress].
- Enhance ispell.el so that it will work better with the new Aspell.
[In Progress].
- Clean up copyright notices and bring the Aspell package up to
GNU Standards. [In Progress].
- Come up with a nroff mode for spell checking. I know nothing about
nroff. I would gladly write the filter if someone would be willing to
work with me in developing one. All I really need to know is what to
skip.
D.1.2 Things I would like to get done
I would like to get these done. However, I may still consider Aspell
finished with out. They will probably eventually get
implemented. However, I could still use help with them.
- Better support for compound words. The support for
conditional compound words found in Aspell versions 0.50
and earlier is no longer available since no one seams to be using
it. Support for unconditional compound words will still be
available. See Compound Words.
- Be able to accept words with spaces in them as many languages
have words, such as a word in a foreign phrase, which only make sense
when followed by other words. See Words With Symbols in Them.
- Support soundslike lookup with affix compression. I think it
is possible, although I don't know how effective it will be. The basic
idea is to affix compress the soundslike codes and then match the
codes up with affix compressed words. If you are interested,
email aspell-devel@gnu.org, and I will explain it in more
detail.
- Use Lawrence Philips' new Double Metaphone algorithm. See
http://aspell.net/metaphone/. The main task involved
here is converting the algorithm into table form. This will take some
time but their is no real programming experience is required. If you
want to help with Aspell but don't have any real programming
experience, this would be a great place to start.
- Rank suggestions based on frequency information. Both global
frequency and document specific frequency can be used. The latter will
require that the whole document be made available to the spell checker.
Also use frequency information to flag words which are found in the
dictionary but not in common usage, and thus might not be what was
intended.
- Support a "dual-script" mode where Aspell can use a separate
dictionary depending on which script it detects the current word in, the
two dictionaries can have nothing in common, ie an English one and a
Russian one for example. This will not support two languages that
use the same script as that is a lot more complicated. For example if
the word is misspelled which dictionary should it use for the
suggestions?
- Write a GUI for the aspell utility. Ideally it should be able to do
everything the Aspell utility can do and not just be able spell check
a document.
- Create a C++ interface for Aspell, possibly on top of the C one.