Linux.com

Feature

Graphite: Smart font technology comes to FOSS

By Bruce Byfield on March 28, 2006 (9:00:00 AM)

Share    Print    Comments   

Smart font technology, which automatically inserts advanced typographical features in the right context, has existed for a decade, but it is still only partly implemented in most operating systems and programs. Now, a project called Graphite is not only introducing smart font technology to GNU/Linux, but offering it in a form more advanced than any previous implementations. For typographically straightforward languages like English, Graphite delivers a higher level of sophistication in document design without any effort by the user. However, for non-European languages, Graphite's smart font technology is even more important, because it simplifies their use on computers.

The best-known examples of smart font technologies are the proprietary OpenType, developed by Microsoft and Adobe, and Advanced Apple Technology. Recently, they have been joined by SIL International's Graphite. Graphite is available for Windows and GNU/Linux, and dual-licensed under the GNU General Public License (GPL) and Lesser General Public License (LGPL). Although Graphite started behind other implementations of smart font technology, it just may make GNU/Linux the first operating system to offer full internationalization.

When used with compatible fonts, smart font technology has several advantages. In English, its main advantage is to give document design greater polish by automatically replacing combinations such as "ff" or "fi" in which the letters are close together with ligatures -- letterforms in which the separate letters are transformed into a separate unit. The technology does the same thing for other languages, but, especially with non-European ones or ones that use non-Latin alphabets, the need is often far more pressing than in English. For instance, smart font technology controls such elements as:

  • Stacked diacritical marks: The placing of more than one accent mark above a letter.
  • Context shaping: The changing of a letter's shape depending on its position in a word or on the characters around it.
  • Reordering and splitting: The changing of vowels' positioning and shapes depending on the consonants around them. This element is especially common in Indian languages such as Bengali.
  • Bidirectionality: The inclusion of different directions for writing. In Arabic, for example, letters are written from right to left, but numerals are written from left to right.
  • In addition, smart font technology also makes the inclusion of different languages in the same line or paragraph easier.

Without smart font technology, such elements must be added manually by the user. Often, the only way to input them is by making selections from a character map, or by assigning them to keyboard shortcuts. Such alternatives slow and complicate using many languages on the computer. For many users, they mean that using the Internet or conducting business and education on a computer in their own languages is difficult or even impossible. For this reason, support for smart font technologies becomes an issue of computer access, and even of survival for non-European languages.

The origins of Graphite

According to project leader Sharon Correll, Graphite began in the mid-1990s as a means of supporting SIL's work. "The project moved a little slowly at first," Correll remembers, "because the team kept hoping that a standard operating system-based solution would present itself." At that time, the only operating system that came close to offering the extensible support that SIL needed for working with minority languages was the Macintosh OS, and that support was not being used by many programs. Nor were Macintoshes widely available in some of the non-industrialized regions where SIL works.

Similarly, Uniscribe, Windows' implementation of OpenType, was neither extensible nor capable of all the behaviors SIL needed. Unable to find any other alternative, SIL began developing a tool for Windows under the name WinRend in 1998, changing the name to Graphite in 2000.

In the first years of the millennium, SIL became aware of GNU/Linux. "We began to perceive a match between the open source model and Graphite's target audience," Correll says, "especially minority language groups without enough economic clout to motivate support from major software developers, and those whose writing systems have not been incorporated into standards such as Unicode." Accordingly, SIL ported Graphite to GNU/Linux, and has recently begun to use free licenses, with the exception of some of the sample Graphite-enabled fonts available on the project's home page.

Most of the work on Graphite is done by a small group of developers, many of them SIL members. Besides Correll, the main maintainer, the project includes Martin Hosken, a member of SIL working in Southeast Asia who defined many of the conceptual ideas behind Graphite; Daniel Glassey, the project lead in developing the GNU/Linux support and making Graphite compatible with Pango; and Tim Eves, who added Graphite support into the SIL OpenOffice.org project. Non-SIL contributors include Frank Tang, the former Internationalization Lead at Netscape, who first added Graphite support to Mozilla, and Keith Stribley, who is continuing the work Tang began by incorporating Graphite into Firefox and Thunderbird, and assisted with SIL OpenOffice.org.

Graphite has advantages over other smart font technologies. Graphite is extensible, it works at the font level rather than the program level, and it is available as free software. For SIL International (SIL), the non-government organization behind Graphite, these features make the technology especially useful for linguistic studies and literacy programs worldwide.

Graphite is only one of SIL's series of overlapping free software projects. SIL has produced the SIL Open Font License, Keyboard Mapping for Linux, and smart font-enabled, Unicode-supporting TrueType fonts such as Charis SIL and Doulos SIL.

Using Graphite

Graphite consists of three parts. The Graphite Description Language describes the behavior needed for a writing system, such as whether it uses ligatures or bidirectional text. This Graphite compiler uses Graphite Description Language to add rendering tables to a font's TrueType file; needless to say, you must either have permission to alter the font or use a free font to be able to produce a Graphite-enabled font legally. Finally, Graphite includes a rendering engine that must be added to an application or operating system in order to use Graphite. You can follow the development of these tools on the project's SourceForge site.

To test Graphite, you need to have at least one Graphite-enabled font installed for your system or for an application. The projects' Web pages include a number of sample fonts for different languages. For English-speakers, the best choices are probably SIL's own Charis SIL and Doulos SIL.

Only a handful of Graphite-enabled programs exist. WorldPad is a Windows text editor intended to be used mainly for testing the compilation of fonts. SILA, a project for adding Graphite to Windows and GNU/Linux Mozilla applications, is in beta, and Fieldworks, SIL's suite of linguistic and anthropological research tools for Windows, is in the alpha stage of development.

For English-speakers, the best tool for seeing Graphite in action is SIL OpenOffice.org, which includes Graphite as part of the program. Available for GNU/Linux and Windows, SIL OpenOffice.org can be installed without overwriting other versions of OpenOffice.org on the system. However, be aware that the program only detects one Graphite-enabled font installed under the system font server. To install more than one Graphite-enabled font, you have to add all of them to the .sil.openoffice.org2/user/fonts folder in your home directory, which is created after you have used SIL OpenOffice.org for the first time.

Future plans for Graphite

The Graphite project is only now starting to move beyond the initial development work. "The package itself is fairly complete as far as features and capabilities," says Sharon Correll, Graphite's project leader. "The main outstanding behavior is advanced paragraph justification capabilities that are needed for high-end typesetting." The project is also discussing the possibility of adding support for Signwriting, a system for writing signed languages developed by Valerie Sutton. Yet, increasingly, the project is concentrating on ways of spreading the use of Graphite.

One of the key goals for encouraging the use of Graphite is to improve the availability of fonts that support it. Although SIL's own first Graphite-enabled fonts focus mostly on Latin and Cyrillic characters, Correll would like to see more focus on fonts for other writing systems. "There is a more pressing need for Graphite support for some scripts than others," she says, "depending on the level of standard support and the complexity of special needs. Given our limited resources, Graphite support may not be included in some fonts if the need is not urgent."

The project is concentrating on lobbying existing proprietary applications, freeware, and free software to include Graphite in their next releases. The project is also developing a plugin for Adobe's InDesign and an ActiveX control for Windows. On GNU/Linux, Graphite is working with Pango, the GTK library for international text rendering, and XeTeX, a freeware combination of TeX and OS X font-rendering capabilities that was recently ported to GNU/Linux by Jonathan Kew. Since Graphite is available under the LGPL, it can be integrated easily in a variety of applications without concern about how the projects themselves are licensed.

In the long term, Correll notes, instead of lobbying to have Graphite included in for individual applications, "A more strategic approach is to get Graphite integrated at the operating system level." The project hopes to have the Graphite-enabled version of Pango included in an upcoming version of Ubuntu. The project narrowly missed having its work included in the Dapper Drake release, scheduled for release this spring, but hopes to see it in the next Ubuntu release in fall 2006.

Ultimately, Correll says, "Our goal is for Graphite -- or something like Graphite -- to be ubiquitous on any system that is intended to be truly multilingual and multinational." This goal, she suggests, is unlikely to be realized on Windows, due to Microsoft's "policy of tightly controlling system components to ensure security and stability." Instead, the first operating system to provide full support for the users of all languages seems likely to be some variant of GNU/Linux.

Multilingual accessibility may not be part of the the letter of the Free Software Foundation's four freedoms. All the same, it's a cause that fits very well with their spirit.

Bruce Byfield is a course designer and instructor, and a computer journalist who writes regularly for NewsForge, Linux.com and IT Manager's Journal.

Bruce Byfield is a computer journalist who writes regularly for Linux.com.

Share    Print    Comments   

Comments

on Graphite: Smart font technology comes to FOSS

Note: Comments are owned by the poster. We are not responsible for their content.

Re:XeTeX for Linux?

Posted by: Anonymous Coward on March 29, 2006 05:06 AM
Contrary to the statement in the article, Graphite support has not been implemented in XeTeX at this time, although there is considerable interest in this as a future direction.

As for XeTeX on Linux, the current development version of the code can be built and run on Linux (it's been tried successfully on SuSE 10 and Ubuntu Breezy, at least), but there is still some installation and packaging work needed to put a release package together. When a package is ready for general use it will be announced on the XeTeX mailing list and web site, and perhaps elsewhere.

Jonathan

#

Re:XeTeX for Linux?

Posted by: Administrator on March 29, 2006 08:16 AM
add Gentoo to that list<nobr> <wbr></nobr>:-) Thanks a lot for the update, it made me inspect the XeTeX source further and finally I even stumbled upon the "build-xetex" script which worked much better than my lazy "./configure; make"...

#

Graphite/SIL background

Posted by: Anonymous Coward on March 29, 2006 03:16 PM
Interessting to read about the history of the Summer Institute of Linguistics (SIL):

SIL was allegedly financed initially by expatriate coffee processors in Guatemala, and later by the Rockefellers, Standard Oil, the timber company Weyerhauser, and USAID. [...] By the 1980s, [SIL] was expelled from Brazil, Ecuador, Mexico, and Panama, and restricted in Colombia and Peru. (Cleary/Steigenga 2004, p. 36)
<a href="http://en.wikipedia.org/wiki/SIL_International" title="wikipedia.org">http://en.wikipedia.org/wiki/SIL_International</a wikipedia.org>

Is Graphite just - clean room - software or will there be an political impact? Is Graphite a dirty tool for oil and other buisnesses?

#

Re:Graphite/SIL background

Posted by: Anonymous Coward on March 30, 2006 01:00 AM
Why do you just point out the negative rumours and not the other positive responses to SIL's work throughout the world. Do you have an ulterior motive?

#

Re:Graphite/SIL background

Posted by: Anonymous Coward on October 22, 2006 07:54 PM
I've been working for SIL for about six months now. While I have no personal knowledge of the events you mention, I do know SIL's current corporate culture. And that culture today is so vastly different from what your post suggests, that one of two things must be true: Either,

1) SIL has had a complete, 180-degree change in corporate culture from its origins, or

2) Your allegations are either false or misleading.

SIL's corporate culture today is all about helping indiginous people groups by enabling them to *use* their own language. That means things like literacy, translation of various resources into their own language, and pushing for education in their own language.

Actually, that last item (education in people's own language) has sometimes placed us at odds with various governments. I remember hearing stories about one South American country (unfortunately, I can't remember which one) where the Minister of Education was strongly opposed to SIL's policy of teaching people to read and write in their own language. "Let them learn Spanish!" he insisted. If I remember correctly, he even managed to get SIL kicked out of the country for a time -- but a few years later, after a change in government, a different Minister of Education looked at some of the results of SIL's work (which included a much higher literacy rate, and a corresponding better lifestyle and lower rate of preventable diseases, in the indigenous peoples SIL had been working with), and said, "Why in the world did we kick these people out? Let's invite them back and encourage them to continue their work." I have no clue whether the country that happened in was one of the ones you mentioned (Ecuador, Mexico, Panama...), but I wouldn't be surprised if it was. (Well, it couldn't be Brazil, since Brazil speaks Portuguese, not Spanish).

Disclaimer: the above is all from memory of something I heard about a year ago, when I was looking into joining SIL. I might very well have my facts confused, or be conflating events from two or more different countries. However, what I can say with complete confidence is that *every* SIL worker I personally know -- linguists, literacy teachers, airplane pilots, computer specialists like me, whoever, *without exception* -- is interested primarily in the good of the peoples they're working with. And, if they learned of exploitation by oil companies or coffee companies or whomever, would jump into the fray fighting for the rights of the indigenous peoples.

As I mentioned, I have no personal knowledge of what may have happened in the past. But SIL's corporate culture today is so very different from what your post implied that I felt I needed to respond. Even if the post I'm replying to is almost seven months old, it's never too late to try to set the record straight.

Full disclosure: I'm currently employed by SIL. That means either that I'm hopelessly biased and should be ignored, or else that I've got first-hand perspective on SIL's current corporate culture. Take your pick.<nobr> <wbr></nobr>:-)

#

XeTeX for Linux?

Posted by: Administrator on March 29, 2006 01:57 AM
last message (March 7th) regarding running on Linux on the XeTeX-Mailinglist seems to say that there's no Linux version yet. I found no references on the XeTeX-homepage, either. Can anyone direct me to the Linux version mentioned in this article?

#

Graphite in Dapper

Posted by: Administrator on May 02, 2006 11:07 PM
I see that `libsilgraphite-2.0` and `libsilgraphite-dev` are both in the Ubuntu Dapper repos now (102svn-1), as are the Charis and Doulos TTFs. Doubt they're in use for much, but it seems the Dapper release extension bought enough time to get them in.

LQ

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya