[LWN Logo]
[LWN.net]

Sections:
 Main page
 Security
 Kernel
 Distributions
 On the Desktop
 Development
 Commerce
 Linux in the news
 Announcements
 Linux History
 Letters
All in one big page

See also: last week's On the Desktop page.


Note: An asterisk (*) denotes a proprietary product, (w) denotes WINE based tools.

Office Suites
Ability (*)(w)
Anywhere Desktop (*)
(formerly "Applixware")
GNOME Office
HancomOffice
KOffice
StarOffice / OpenOffice
Siag Office
WordPerfect Office 2000 (*)(w)

Java / Web Office Suites
ThinkFree Office (*)
Teamware Office (*)
Cybozu Office (*)

Desktop Publishing
AbiWord
iceSculptor (*)
Impress
Maxwell Word Processor
Mediascape Artstream (*)
Scribus

Web Browsers
Mozilla
Netscape (*)
Opera (*)
Konqueror
Galeon

Handheld Tools
KPilot
JPilot
Palm Pilot Resources
Pilot Link
SynCal

On The Desktop


Spell Checkers and Dictionaries
Gaspell - GNOME interface to aspell
(Click for larger image)
Last week we looked at a list of office suites available for Linux both in open source and proprietary formats. We required a word processor to be included (along with a spreadsheet) in order to include a product as an office suite. While each word processor has its own spell checking and thesaurus features (or perhaps not), not all Linux users prefer the safe confines of GUI-based editing. Many of us prefer the less glamorous and visually abominable terminal-based editing tools such as Emacs and vi. For those people who work primarily in text based editing, the need to spell check is just as important.

Spell checking on Linux is always tied to a dictionary of one form or another. The dictionaries are provided either locally or across the network at remote servers. Many spell checkers are actually back end tools that communicate with dictionary databases, often using high level GUI-based front ends or simple command line interfaces.

Databases

dict. This natural language client/server dictionary protocol specification, also known as RFC2229, has been implemented in a variety of programming languages, ranging from C to Rebol, and on a number of platforms. Servers provide dictionary look up mechanisms while client tools (either as backends or directly from front ends) make requests.

A complete list of freely available databases (see middle to bottom of link page) is available, with some already converted to dict format. The list includes Webster's Revised Unabridged 1913 Dictionary, Eric Raymond's The Jargon File, the Dictionary of Technical Terms for Aerospace Use, and The U.S. Gazetteer (1990) census bureau information.

Internet Dictionary Project. One of the projects that supports the dict protocol is the Internet Dictionary Project. This is a royalty-free language translation project.

Backends

ispell. The grand daddy of spell checkers for Unix systems was known simply as spell. This was a useful tool for English speakers but lacked international support. Ispell, which also began life as spell but was changed in 1974 (or possibly 1978), supports multiple language dictionaries. Ispell contains direct support for files formatted using LaTeX, nroff and troff. Since neither spell nor ispell is particularly user friendly they tend to be used with simple front end tools such as the popular ispell.el Emacs module. Unfortunately, documentation on using ispell under emacs is rather limited, unless you like reading source code.

Note that the generic spell command found on Linux systems today is actually a wrapper around the GNU ispell command using the -l command line option.

aspell. Aspell is the expected replacement for ispell, providing both multiple language support and better word replacement algorithms. There are a large number of language-specific dictionaries available for use with aspell. While aspell provides better replacement suggestions, it doesn't support editing nroff formatted files. Like ispell, aspell itself isn't particularly user friendly. In fact, Aspell isn't intended to be used directly, even as an API. The developers of this spell checker recommend the use of pspell as the API instead.

pspell. Intended as a generic interface to spell checkers, pspell is now used in some of the more popular editing packages available for Linux, including Balsa, Lyx, Mozilla, and AbiWord. This package is not an end user tool, however. It is a library of functions linked into other programs. Those other programs provide the front ends to the spell checking system. Think of pspell as one of the only middlemen in the spell checking market.

KSpell. Another programming interface, KSpell provides functions for accessing a backend dictionary. The default backend for KSpell is ispell. KSpell is already in use in a number of base KDE applications including KMail, KEdit, and KWrite.

Frontends

GDict - GNOME interface to dict
(Click for larger image)
gaspell. GNOME has a couple of dictionary front ends including this one, gaspell. Based on GTK+, this is an easy to use interface that displays the document under inspection and allows you to navigate at will to select words to examine. Because it is built upon pspell/aspell, it can provide suggestions to unknown words and do dictionary lookups on those suggestions. Gaspell also supports local dictionaries for commonly used local terms.

gidic. This GTK+ based tool provides a front end to the Internet Dictionary database.

Ding. Ding is a Tk based front end to multiple dictionaries, including both dict and ispell dictionaries. It provides English to German to English translations and even includes a thesaurus lookup utility.

KDict. Possibly the most sophisticated of the spell checker tools is KDict. The interface supports Unicode displays for language translations of words and selection of multiple databases for lookups. Unfortunately the provided Red Hat 7 RPMs don't seem to work, but the source seems to build easily enough.

WordInspector. Another GTK+ entry, this one uses a dict backend dictionary for its lookups. Features are limited to searching for the word entered in a dialog box or having the program use the highlighted text from the X Clipboard.

Emacs/XEmacs. This is a slightly more powerful Emacs front end than ispell.el or flyspell.el. It connects to a dict-based backend dictionary. The module provides hypertext lookups on text within a previous lookup which makes nested searches fairly straightforward. It also provides for backwards navigation of the nested searches. Even better - this package provides some real documentation on how to use it (though you still need to be familiar with Emacs before you attempt it).

gdict. (Web site may not work) Gdict is the GNOME interface, written in C using the GTK+ widget set, to the MIT dictionary server. It simply contacts the server with the request and returns the definition. Originally included with GNOME 1.2, you can now download it with the larger gnome-utils package.

flyspell.el. Like its ispell.el cousin, flyspell.el is an Emacs front end to the ispell spell checker. Flyspell works on the fly, however, providing recommendations to misspelled and unknown words as you type. The ispell.el version, on the other hand, requires a manual pass over the document to search for and update spelling problems.

Translators

QTrans. This tool is a translator based on KDE and the Windows-based (and commercial) Babylon dictionaries. You need to download the dictionaries before you can use the software, of course, but the dictionaries can currently be downloaded for free.

User choice

The trick to finding a spell checker (or dictionary tool) is to decide whether you need a simple dictionary lookup used manually or if you need some form of dictionary and spell check feature added to your application. A number of these tools can be launched from a script and use the highlighted text from the X clipboard (for example, highlighting text in Netscape). Others are more interactive in nature, such as gaspell. Like most things in Linux, its a matter of user choice, and needs.

It might interest readers to note that LWN.net uses emacs together with flyspell and ispell modes to edit the weekly pages. Unfortunately, in a world dominated by acronyms and creative code names, we still manage to let a few bad spellings slip by.

KIllustrator author fined by Adobe (Heise Online). Adobe has set lawyers in Germany against the author of KIllustrator (German language news). According to the Babelfish translation (which is exceptionally poor) it appears that Adobe never contacted the author about changing the name of the program prior to sending lawyers after him and the University of Magdeburg. The official word posted by KIllustrator author Kai-Uwe Sattler to the KOffice Developers mailing list was more to the point: "I have just received a dissuasion from an Adobe lawyer the name "KIllustrator" would violate Adobe's trademark and I should pay 2500 euro." The KIllustrator web site is currently down pending resolution of this issue. (Thanks to Thomas Meinders)

The thread which followed the announcement in the KOffice Developer list was interesting in that at least one person felt compelled to denegrate trademarks. Remember that trademark law is what prevented William R. Della Croce, Jr and a Korean company (and others) from usurping "Linux" in countries outside the US for something other than our beloved OS. While patents are arguably a problem, copyrights and trademarks can serve a useful purpose.

That said, Adobe has some serious issues to resolve here. The first is the fair use of the term "Illustrator". In essence they have to prove that Illustrator (in capitilized form) is more protected than, say, Word or Draw. Second, the student who is being sued isn't the copyright holder of the application. The "KOffice Team" is. Adobe has to show that the individual holds the responsibility for the application name in some way. Guilt by association probably won't be enough in this case. The student simply managed the web site on his University's computers. And if Adobe can't attack the individual, they'll have to step into deeper waters - how do you sue an unofficial (re: not officially organized by law) group for compensation?

The truth is, Adobe could have just asked for a name change, but they didn't. Instead they went for monetary compensation. It's possible such tactics are required in order to show claim to existing trademarks, but we're not lawyers here at LWN.net. And the actual outcome of this action may lay a foundation for future encounters between existing products and open source alternatives. So how should the community react? It shouldn't - it should be proactive. Many projects start life with an intended goal of replacing an existing commercial application. It is easy to name a project something that won't, even to the most thorough examiner, be misconstrued to be taken from the original product's name. Common sense rules here. If your project has taken its name based on a commercial product with matching features or target use, then change it.

And speaking of conversion... One of the most overlooked tools on Linux has got to be units, one of the many GNU provided utilities. This package allows the user to specify a measurement in one format and have it converted to another. For example, to convert from feet to meters you could try this command:

You have: 10 feet
You want: meters
        * 3.048
        / 0.32808399
The number of supported unit types is long. Running the program with the -V option will tell you where the configuration file is located. You can view this file with any editor to find a measurement of interest. Other fun conversions you can try:
mjhammel(tty8)$ units -v
2112 units, 59 prefixes

You have: 1 mile
You want: nauticalmile
        1 mile = 0.86897624 nauticalmile
        1 mile = (1 / 1.1507794) nauticalmile
You have: 1 homestead
You want: acre
        1 homestead = 160 acre
        1 homestead = (1 / 0.00625) acre
You have: 5 gallon
You want: hogshead
        5 gallon = 0.079365079 hogshead
        5 gallon = (1 / 12.6) hogshead
You have: 1 egg
You want: pound
        1 egg = 0.11023113 pound
        1 egg = (1 / 9.0718474) pound
Unfortunately, it won't tell us how many eggs are in a hogshead or will fill a homestead. At least not without complaining.

Desktop Environments

KDE moved to LXR. The entire KDE source tree has been moved to LXR. According to Kurt Granroth, this is a major improvement in cross referencing. "If I go to the KConfig class in LXR, though, I see that all objects and methods in the file are hyperlinks. If I click on KConfig, I get a list of where it is defined, where it is declared as a forward declaration, and where it is referenced (in 939 files!). I can click on any of those links to go directly to where it is used."

Kernel Cousin KDE #15. Despite the recent departure of Mosfet, the status of his code was not the most talked about thing on the KDE mailing lists this past week, according to Kernel Cousin KDE. The more pressing topics included compiling KDE with the new GCC3 compiler and multithreading issues.

KDE 2.x Systems. How many systems does KDE 2.x run on? The Dot counts, "... three BSDs, eight Linuxes and four other Unices, ... "

GNOME Board Meeting, 26 June 2001. The summary of the weekly GNOME Board meeting has been posted.

GNOME 1.4 programming book(in Japanese). A new text on programming with GNOME 1.4 has been published in Japan, according to this report from the GNOME News web site.

Office Applications

The StartX Files: An AbiWord to the Wise (LinuxPlanet). The first of what is promised as a series on word processor reviews has been posted over at LinuxPlanet. The first review examines the GNOME Office entry - AbiWord. "Since the whole thing's built with GTK, then of course there is no anti-aliasing in sight, so on-screen fonts in AbiWord are the usual Linux fun-fest of jagged edges. If I seem embittered about this, you'd be correct. The lack of anti-alias support in this area of open source development is just one more glaring example that proprietary developers can point too and say 'See? They can't even manage that.'"

AbiWord Weekly News #50. The AbiWord Weekly News #50 has been released. Printing on UNIX has been improved, bugs have been squashed, and much more.

KWord 1.1beta3 review. KDE Dot News noted the beginnings of a review of KOffice 1.1 Beta 3. The review currently only covers KWord (over 5 pages - be sure not to miss the link at the bottom of each page to navigate to subsequent pages). "After I finished entering my bogus financial information, I moved the mouse cursor out of the KSpread frame, and clicked on the KWord document. Then I created the border by selecting the KSpread frame. This is different from selecting the KSpread object and editing it. The way KWord works is to place the KSpread object in a frame, which gave me the flexibility to resize, add borders, and layer other frames on top of it." Eventually, the reviewer expects to cover all the major applications in KOffice.

1st release of GnomeMeeting. The first public release of GnomeMeeting, an H.323 compatible video conference client, has been announced over at Gnotices, the GNOME News site.

Desktop Applications

GIMP 1.2.2-pre3. The GIMP development team has released another release candidate for the 1.2.2 version. Release 1.2.2-pre3 is available from the official GIMP FTP site and its mirrors.

And in other news...

Ford looks to open source (Silicon.com). Ford Motor Company's European division is looking to replace up to 33,000 desktop systems with open source systems running either KDE or GNOME, according to this story from Silicon.com. "Asked if he would consider a Linux desktop, he said `I think ultimately we will look for an open source desktop. I think that's eventually where the industry will go.`"

Programming Linux Games (NoStarch). No Starch Press and Loki Software today announced a new text for developing games for Linux. Programming Linux Games: Learn To Write The Games Linux People Play, which covers development tools and gaming APIs, including the Simple DirectMedia Layer (SDL), is produced by Loki Software.

Section Editor: Michael J. Hammel


July 4, 2001


Note: An asterisk (*) denotes a proprietary product, (w) denotes WINE based tools.

Desktop Environments
GNOME
GNUstep
KDE
XFce

Window Managers (WM's)
Afterstep
Enlightenment
FVMW2
IceWM
Sawfish
WindowMaker

Minimalist Environments
Blackbox

Widget Sets
GTK+
Qt

Desktop Graphics
CorelDRAW (*)(w)
GIMP
Kontour
Photogenics (*)
Sketch

Windows on Linux
WINE
Win4Lin
VMWare

Kids S/W
Linux For Kids

Send link submissions to lwn@lwn.net

 

Next: Development

 
Eklektix, Inc. Linux powered! Copyright © 2001 Eklektix, Inc., all rights reserved
Linux ® is a registered trademark of Linus Torvalds