The computer revolution led to the automation of numerous work processes and products. Many of us draw cash with credit cards instead of with the aid of a bank teller, use a word processor to print documents rather than a typewriter, and send mail by pressing a button without an envelope and stamp. This transition from traditional procedures to automatic and electronic methods has not always been smooth. Suffice it to mention the imminent Bug 2000, with billions of dollars poured into preventing the oncoming disaster, and more that may still be required to repair the damages left behind.
Software engineering is a young field in the academe whose aims are to plan software systems properly and supervise production processes. Though the principles that guide software engineers are thought to apply to large and complex systems, when preparing the electronic dictionary application we resorted to engineering guidelines which proved themselves appropriate for small software systems as well. That is probably due to not developing the program in a void, but making use of an existing traditional product.
At the beginning of our work it seemed there were no great challenges, and that the creation process would be fast and faultless. We had the dictionary data in ready-to-print format, containing various codes representing the desired typography for the printing press, codes we planned to use in order to decode the structure of the text and make it applicable for computer. Prima facie this looked easy; in an analogy from the real world, all that was necessary was to search for a word in the text, as simple a task as any for a computer, and then display its content and interpretations on a screen. Post-factum, realizing this elementary task required the lion's share of time for the software development. The need to use raw material that was not designated to serve the computer drove the decoding program into unforeseen entanglement. At the same time, the length and diversity of the dictionary text posed an obstacle to diagnosing all the potential problems that could occur during its decoding.
After processing nearly the entire text, a number of entries remained for which the decoding rules needed "bending". Then, naturally, solving one issue created new problems in other entries, etc. Had the dictionary program not been restricted to using existing data, and were it possible to determine the data structure that would serve as its input, such problems could have been avoided. Clearly, there should be a different approach to developing software which has to abide by traditional working methods and materials.
Moreover, the need that the software be as generic as possible, and be applicable to any language, added technical difficulties to the logical ones. Although nowadays graphic operating systems facilitate the transition from one language to another, it is still necessary to grant particular attention to this subject when developing multilingually-based software. For example, special problems can rise in the transfer to languages that rely on an extended set of characters, such as East Asian languages or Hebrew. The difficulties may occur in the screen display, and appear more acutely while printing, and that must be reckoned with.
A computerized dictionary might have no right to exist, in my opinion, without an interactive hyperlink capacity. A computer product should implement the computer's capabilities, enabling more than to merely imitate a product from the "real" world. Who has not gone through intensive dictionary browsing, searching chains of entries in order to elaborate on one word? We tend to give up quickly, and content ourselves with a hazy comprehension of the entry. The electronic dictionary's ability to shift from entry to entry by the push of a button is, thus, its main advantage. Dynamic word linkage is specifically vital for the age range of this dictionary's target users. The ease of searching and linking may encourage use of the dictionary to the point of complete comprehension, while, as added value, expose the user to more information. In addition, all the entries viewed during a session are available for instant review at any time.
The hyperlink feature required further solutions. The first was to establish the link associating words in the text with suitable entries, eg, connecting verb inflections such as running to the headword run, etc. A software module was developed to meet this need by automatically connecting words to relevant headwords, while leaving also the option of manual connection. In this way each word in the text was associated with its closest entry and, when relevant, hyperlinking was introduced between certain words and the dictionary supplements and illustrations.
Like in any software program, much effort was put into trying to create a graphic user's interface that meets the user's particular requirements. The need for learner-friendly access to each feature led to developing an interface which includes "everything on the screen" without having to resort to menus, etc. The program pops up ready for operation, with the screen display basically fixed. The user can change default aspects (and personalize the program). The different modes and features are displayed on a large, clear toolbar. This helps experienced computer users feel at home at a glance, whereas inexperienced users need slight instruction to proceed to manipulate all of the features. The pleasant colorful design, the illustrations, and the vocal options, offer a stimulating environment which attends to the learning purposes of the fairly young.
In conclusion, developing the
electronic dictionary was an instructive
task for us. Having to account for the inherent constraints,
some of which were unforeseen, some contradictive, became a challenge
of surprising complexity. I am pleased that the product succeeded
in attaining its two main goals: to be efficient and effective,
and to be clear and easy to use.
Assaf Siani is completing his postgraduate Computer Sciences studies at Bar Ilan University in Ramat Gan. He is the software engineer of PASSPORT Electronic Dictionary.
10 Nahum Street, Tel Aviv 63503 Israel
tel: 972-3-5468102 fax: 972-3-5468103