Re: ispell alternatives (was Re: Some questions)


Subject: Re: ispell alternatives (was Re: Some questions)
From: Paul Rohr (paul@abisource.com)
Date: Tue Nov 30 1999 - 13:36:41 CST


Merc,

Sounds like we're in violent agreement here. Figuring out good ways to take
advantage of existing ispell dictionaries is a Good Thing for users, even
though it gives developers fits.

That's why we chose to clean up and integrate portions of the ispell code
into AbiWord, so that we could leverage those dictionaries across all our
supported platforms. The fact that you can have interactive spell-checking
(squiggles, dictionaries, and popup corrections) running in real time off
those dictionaries is quite an achievement.

Even more so, because that code, and those dictionaries, are *brittle*.
Darren Benham, Justin, and others have done battle with some ferocious
problems (leaks, endian-ness, multiple languages, etc.) to get to where we
are today. Even so, nobody's managed yet to figure out how to properly
translate accented characters (from Unicode to whatever ispell expects) so
that lookups will work in French, etc. For more details, see the relevant
POW from last month:

  http://www.abisource.com/mailinglists/abiword-dev/99/October/0325.html

I know you're interested in solving a larger issue -- providing spell
services to lots of applications on your platform of choice -- and we'd love
it if you or someone else could solve that problem for us. :-)

In the mean time, we'll continue to work to make sure we have a single
solution which Just Works on all our supported platforms. We'd also like to
make sure that solution isn't too closely tied to AbiWord, so that we can
reuse it for other apps in AbiSuite. We've got a ways to go on this.

At the moment, our spelling APIs are more entwined with our app-specific
logic than we'd like, but at least it works. As folks have time, we'd like
to do a better job of isolating dictionary lookup services from the rest of
the program behind a clean, small API. Once this is done, it should be much
easier to swap out the hardwired ispell-based support for other
alternatives, including:

  - piping out to ispell, where applicable
  - hooking into other platform-specific services, as available, or
  - some other XP solution which is cleaner or better.

Note that we've already been implementing certain peripheral spell-related
services (such as ignore lists, custom dictionaries, etc.) outside of the
ispell codebase to make it easier to change dictionary engines later on as
they become available.

bottom line
-----------
As always, the best way to change our minds about design decisions like this
is to show us the source for another approach which works better than what
we've currently got.

Endless discussions over email can get very frustrating without necessarily
resolving anything. Checking in the right patch is a *much* more satisfying
resolution to any debate. :-)

Paul



This archive was generated by hypermail 2b25 : Tue Nov 30 1999 - 13:31:39 CST