JTC1/SC2/WG2 N2206



Why Input Assistance

(A proposal to develop new Annex for ISO/IEC TR15285 Annex Y)


Tatsuo L. Kobayashi

Yutaka Kataoka

Seiji Kuwari


This document proposes an annex (annex Y) of ISO/IEC 15285. The purpose of the annex Y is an essential basic recommendation to realize an effective conversion method generating a character(s) from key strokes with ‘human friendly’ input operation by ‘machine friendly’ coded character set which is proposed as annex (annex X) separately.

The purpose of Annex X for ISO/IEC TR15285 is description of categorized requirements to render correct visual output by a coded character stream without ambiguity.  The requirements may determine the essential information to be embedded in an appropriate coded character set. The scheme of the character set focuses for ‘machine friendly’ but not human friendly.

The appropriate coded character set satisfying correct rendering would differ a human friendly coded character set that can cover writing/input custom(s) when some characters or sequences are gotten input. Thus, assistance for Input can be defined as an essential common module to help operators. It is not necessary to say that the character set satisfying rendering should also satisfy schemes restricted by Input. And also the requirements to realize effective Input Assistance may specify an appropriate encoded character set. Already a lot of assistant functions have been used to gotten input respective language(s) in specific coded character set(s).


Note: In order to realize a helpful INPUT mechanism, total input stream should be considered. ‘Input Assistance’ covers a range between keyboard to a function returning a character(s), and that processes input events and generates a character(s). Thus, an IA is a simple device driver or more complicated module(s).

In some cases, the functions of IA are quite much. But role of the IA is equivalent to simple device drivers. And it is easily possible to integrate an IA called by an application programs.



This contribution focuses two purposes:

·          One is to clarify the needs of Input Assistance.  In another words, the Input Assistance is a solution to resolve the issues to input complexity problems.

·          The other is to recommend a common guideline to develop useful interfaces and functionalities of Input Assistance.


1.       Necessity of Input Assistance (recommended solution summary)

The proposal of Annex X recommends two requirements for coded character stream within computer system:

Coded character stream, which output process receives, should has proper termination information to distinguish multiple coded elements corresponding to a unit for rendering.

Coded character stream, which output process receives, should be properly ordered for correct rendering.


But, usually, it is very troublesome and difficult for common and novice users to input characters in machine friendly order and with some additional code element(s) for machine sake. Even for expert operators, it is almost impossible to remember all orders of element combinations.

On the other hand, because of two reasons below, the process/presentation of some national scripts deeply concern culture/language dependency that makes the system be unique to the scripts in the culture/language. Thus, co-existence of scripts in one culture/language and the other is very difficult.

-          Input operation and sequence of the coded elements should directly reflect the traditional habits of hand-writing (or mechanical typewriter) of a writing system.

-          Sequence of typed coded elements in a computer system that are influenced by hand writing should be reordered for rendering/processing purpose.


The resultant system above is:

-          Not friendly enough to human being.  (needs special training in many cases)

-          Not friendly enough to the application programs.  (needs uniqueness to script processing and rendering)

The result is usually called as “the result of poor compromise”.  This situation should be improved to make computer systems be used commonly in next generation.


To solve the problems above, ‘Input Assistance’, which is a module, is very helpful as to be a bridge between users’ convenience and machines’ requirements. IA can absorb human factors and then rearrange typed elements for the purpose of character manipulations like rendering.


A well-designed IA can be seen as a part of an application software to assist input by an operator. And a well-designed IA can be implemented as a programmable module invoked from an application program and can realize additional functions for the human factors. One of well-known and successful example of Input Assistance is Japanese “Input Method Editor”(IME), and IME can provide several useful issues to be considered.


Input Assistance is a kind of code conversion and/or code generation program, so it can be considered as a module equivalent to usual input drivers in a computer system. Thus, an IA in a language may be very large module for wide coverage assisting input but the other IA may be as the same as device driver for no input requirement cases. This means any IA can be invoked in the same manner – even in the simplest case, the IA also can be taken as the same IA implementation style as the most complicated. If every IA is implemented as isolated module from application programs, new functions may be added into only the IA without any changes in the application programs. By the reason above, preparing to hook IA is no demerit in any case. To do so, following summary of IA functions is needed.


2.       Benefits and advantages of IA

By the approach of using IA, following benefits and advantages can be obtained.


2.1   [Feature]

IA internal code (representation) should be independent from physical key code from a keyboard to change key assignments on the keyboard.


Various keyboards and IA can be selected separately and freely.

Key assignments can be changed freely to absorb difference of keyboards.


Language and culture dependent keyboard can be chosen with any condition and any combination.

A new IA can be adaptable to any environment.



2.2   [Feature]

IA internal code should be independent from a coded character code (output code) from the IA.


IA internal code and output code can be selected separately.


Application programs can get prefer coded character set and Output module can get appropriate sequence of character elements without culture/language dependency.

Operator can use prefer IA which satisfy traditional literacy.


2.3   [Feature]

IA should show input mode indicating one of character element orders and other modes. The order of character elements should be programmable by the operator.

Operator and application program can easily and interactively change the mode.


Operator can choose more than one input order or input mode.

Operator can choose prefer input method if multiple input methods exist.

Operator can select one IA interactively without stop the computer.


Operator can choose input order that does not conflict with one’s literacy.

Operator can use several input method such as voice recognition system and Braille.


3. Guideline for I/F with it’s benefit and advantage

By experience of developing IME in Japan, it is known that additional functionalities are needed. The enhanced interface for all culture/language is named IA method I/F.  For developing more effective and better usability of IA, it is recommended that following functionalities are commonly required in addition to usual input process specification.


There are two kinds of requirements;

-          One is the subject relating to control the IA internal processing and to show process indicator by IA.

-          And another is the subject relating the INPUT WINDOW control (input location etc).



3.1 Interface with keyboard, internal process, output process


[Feature] Input device and application should be received a set of specific key signals without IA processing. (Some keys should be not processed by IA and the signals by the keys should sent directly to device driver of keyboard and/or application program)

[Benefit] Some functional codes by keyboard can be sent to application program without IA processing.

Keyboard device driver and/or output module can catch specific events directly from a keyboard.

[Advantage] A bypass to order some instruction to device drivers, application programs and output module(s) can be provided when some function like ‘software reset’ is required.



[Feature] Application should indicate which IA is attached in several IAs or not attached.

[Benefit] Operator/application program can attach or can detach IA.

Operator can switch proper IA or adequate IA from a set of IAs.

Application program can switch IA from a set of IAs

Event signals from the keyboard can be used as input event directory to the application and/or to an IA..



[Feature] Application program should reset IA. The categories of reset should be (1) resetting IA to all initial states, (2) resetting IA to initial input state after flashing out intermediate sequence of character elements to the application, (3) resetting IA after erasing intermediate sequence of character elements.

[Benefit] Application program and operator can terminate processing in IA safely.



[Feature] A repository for locale information should be provided to keep consistency among IA(s), application program and output module(s). And information in the repository can be referred and can be changed consistently by them. (Also operator can refer and change the information at any time)

[Benefit] Some glyphs depending on the language or locale can be rendered correctly.

[Advantage] Hard-coded part in application programs, IAs and Output modules can be removed and can be replaced by general part that can process characters by the information in the Locale and/or language repository.


Note relating to output: Following subjects are closely relating IA’s functionality of displaying intermediate character elements. Thus, a kind of mechanism that returns culture/language dependent information should be shared to keep consistency among all of relating processing.

Which glyph should be selected for one code string does not depend on the language, or the means of conveying the linguistic context of the dependence is standardized. But it is very difficult to get rid of language dependency. Which glyph should be selected for one code string does not depend on the direction in which the script is written, or the means of conveying the directional context of the dependence is standardized. Which glyph should be selected for one code string does not depend on the position in which the glyph is written, or the means of conveying the positional context of the dependence is standardized


3.2 Mode indication control


[Feature] Both an operator and application program can change input mode in IA with retrieving IA’s mode information.

[Benefit] Not only an operator can change current input mode but also the application program can change current input mode. And the IA should indicate the result(s) of the change.

[Advantage] An application program automatically can change input mode to appropriate mode according to input condition.



[Feature] Both operator and application program can select that mode indication will be controlled by operator or application program.

[Benefit] Application program is able to control mode indication by the view of GUI.



[Feature] IA process should send mode information such as coded character set, image, sound, etc. to application program.

[Benefit] Application program is able to display mode indication information by itself by the view of GUI.



[Feature] IA process should send attribute for mode indication such as font, size, color, size of rectangle, position of display etc. to application program.

[Benefit] Application program is able to control mode indication style by the view of GUI.


3.3 Intermediate INPUT WINDOW (for input operation);

Since input operation is independent from the final display, the IA should need monitoring window to verify/edit the input operation while each small group of input stream is being performed.



[Feature] Application program should specify that the INPUT WINDOW should be displayed or not.

[Benefit] Application program is able to control INPUT WINDOW by the view of GUI.



[Feature] Capability of selection which IA or application program indicates intermediate sequence inside of IA should be realized.

[Benefit] Application software can indicate intermediate sequence except for IA.



[Feature] IA should control application program that the application program can perform intermediate processing (insertion, deletion, replacement and etc.).

[Benefit] Application program is able to control mode indication at the proper position and style by the view of GUI. In this case, information of action from IA should be reached to the application program and the application program should perform according the information.




[Feature] To IA, application program should specify attributes (font, size, color, location, rectangle size and etc.) to display intermediate sequence.

[Benefit] To keep the unique GUI, application program can use the same style for both a string displayed by IA and a string via IA.


Important Note: To share the intermediate string by IA and application program, coded character code for the intermediate string should be one of standard.



3.3.5 Requirement to coded character set

[Feature] Coded character set for displaying character strings on the INPUT WINDOW should be as standardized.

[Benefit] Output module can correctly display intermediate sequence stored in IA, i.e. IA is not necessary to have special drawing function to intermediate glyph composition.

Note: Requirements to be Solved

For incomplete transitional character glyphs aroused during the input process of compound scripts like syllabics, determination of possible/impossible combination of the elements should be done.