by Menasse Zaudou

The LibEth Project Homepage

10/07/01: Site News
ftp://ftp.geez.org/pub/libeth/

Recent changes are detailed in the LibEth ChangeLog.
See also the Supported Encoding Systems page for the updates.
Visit the SourceForge project page for libeth to submit bug reports and feature requests.

What is LibEth?

LibEth is a library for Ethiopic1 text and information processing that began development in 1995. Software applying components of LibEth has been available since '95 but the library itself has not been ready for public review until the end of 1998. Some minimal documentation is being prepared at this time and should be completed within days. The library sources will be available here immediately afterwards.

Unicode 3.0 U+1200 - U+137F

What Does LibEth Offer?

LibEth is written in ANSI C and replicates the routines in the ANSI C library with 16bit data types. But LibEth is much more than a 16bit version of the ANSI C library. Extensions are made for the unique needs of Ethiopic information processing:

Syllabic Processing
The ANSI C "strings" and "ctype" modules are extended to understand Ethiopic syllables under Ethiopic conventions. For instance you may do boolean tests for Ethiopic character classes, querry and reset syllabic forms, and progressive language sensitive orthographic simplifications for text retreival.

Character Code Conversions
In the absence of any standard for Ethiopic character encoding over the years (Unicode 3.0 will be the first recognized standard) a large miaraid of proprietary standards have evolved. LibEth recognizes over 70 encoding and transiliteration systems and offers conversions between most of these systems (at least output if not input is universally offered). The data that these encoding systems occupy within the library accounts for bulk of LibEth's mass. This section may be thought of as a less sophisticated version of GNU recode.

In application this functionality of LibEth has so far been the most often applied in web document conversion service.

Calendar Conversions
In addition to providing the ANSI time functions (with formatting localization of course) routines are available to convert between Gregorian and Ethiopic calendar systems. Since this section is often of greater interest by itself it is also provided as a separate package.

Other Localizations
Routines for Ethiopic to/from Arabic numeral conversions are available as well as for Ethiopic ordered lists generation. Routines for the various Ethiopic sorting schemes will later be a part of the library.


Who Should Use LibEth?

At this stage (no documentation) only the experienced programmer should consider looking into the internals of the library. It should look familiar to anyone who has spent any amount of time with the ANSI C library -the API is the same with the addition of one more argument.

If you are considering writing subroutines to import or export between the different Ethiopic font systems, give LibEth a look. The library is written in a fairly modular way so that you may take out the parts you need. Definitely if you are poised to write calendar conversion codes in C, get LibEth (or just grab the calendar codes).


Applications Using LibEth

Some significant applications have applied LibEth already. ``Fidel Banner'' and ``EDate'' are the Ethiopic replacements to Unix ``Banner'' and ``Date''. EDate comes with LibEth as does `g2'' (or ``Ge'ezTo'') a simple application that applies the core of the library's conversion functionality. An ``Ethiopic Grep'' that understands the syllabary is forthcoming.

Zobel is a CGI front end to LibEth used for document conversion under the Ethiopia Online domain (notably the ENH and Addis Admas). The goal of Zobel is to implement the LiveGe'ez Remote Processing Protocol.


LibEth Development

The present version of LibEth has been written by Daniel Yacob and includes calendar conversion codes ported by Menasse Zaudou from Calendrical Equations Java sources. LibEth's continued development is being coordinated by Daniel Yacob under the wings of the Ge'ez Frontiers Foundation.

See the LibEth ROADMAP file included with each distribution of LibEth for areas of LibEth open to development. If enough people become interested in LibEth development an email list could be started for this purpose. Companies and organizations that have Ethiopic programming needs not yet addressed by LibEth are invited to mail end their suggestions.

The Ge'ez Frontiers Foundation is also working on developing information and programming resources for developers to localize their software for the needs of Ethiopic languages. Please visit the Fidel Resource page for a list of currently available resources.


CVS Access

You may browse cvs to see the trees available:

To checkout libeth:
  1. Tell cvs to use ssh (required by Sourceforge): export CVS_RSH=ssh
  2. Tell cvs where to go (set the cvs root): export CVSROOT=:pserver:anonymous@cvs.libeth.sourceforge.net:/cvsroot/libeth
  3. Check out source trees: cvs login
    (no password just hit return)
    cvs co libeth-0.34

Potential Applications

Most anything under the sun of course. But here are a few thoughts:

Computational Ethiopics Links


Generously Hosted by
SourceForge Logo