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