Subject: [COMP] ~{VwT*F4RtJdHk7(~} MEPY inputing method

From: [email-masked] (Wanli Wu )
Date: 25 Jun 1993 20:50:09 GMT

列位∶在下向您推荐【主元拼音】输入法。它是由张清(Zhang Qing) 先生
创作的。
以下是张先生关于【主元拼音】的说明文本。取自 ifcss.org. 未经作者
许可。若有冒犯，还请鉴谅！
相信cxterm users 一定会喜欢如此好的中文输入法。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                USER MANUAL OF MEPY HANZI INPUT METHOD

                   Copyright (C) 1993  by Qing Zhang
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Terminology

MEPY --- Main Element PinYin.
HZ   --- single chinese character.
CW   --- Chinese word or phrase.
UCW  --- user defined CW.

I. Definition of MEPY

In the current release, I defined the MEPY as follows:

Vowels:
        MEPY            non-MEPY
        a               ia, ai
        e               ie, ei
        o               ou, uo
        u               uu, iu, ui
        an              ang, ian, iang
        en              eng
        in              ing
        ong             iong
        ao              iao
        i               /* when not used with other vowels */

        some vowels may be decomposed into two parts, each has a MEPY
        corresponding to it. Like "uang", its MEPYs are "u" and "an".

Consonants:
        MEPY            non-MEPY
        z               zh
        c               ch
        s               sh
        l               r

        all other consonants are defined as MEPY.

The users can have their own preference to define MEPY, such as take
"ai", "ei", "ui", "uo" as MEPY.  There is a utility to automatically
convert user's preference into data, but this utility is not released
yet, because I am afraid some un-cautious user may do more damage than
good if not understanding the syntax clearly when change the preference.

II. Chinese Word (phrase) Input

For typing CW (Chinese Word or phrase), you just need to type in the 
MEPYs of the first two HZs (Hanzi).  The advantages of using MEPY are
twofold, on the one hand, it is much easy to spell the MEPY than to
spell the complete Pinyin, on the other hand, MEPY are usually one or
two letters shorter than the non-MEPY, thus save some key striking.

EX: If you want word "ChangJiang" (means Long River), it is not difficult 
to recognize the element "c", "an", "j", but some people may be uncertain
whether to use "c" or "ch", "an" or "ang".  In most PY input method, 
if you use "c" in the place of "ch", you will never get the correct 
word.  But in MEPY, it will tolerate your possible wrong spelling, and 
give you the correct word.  In this example, if you type in "chanjian", 
or "canjan" or "cangjang", or other combinations, it will always show 
you the correct word you are looking for. The reason is that, all these
inputs share the same MEPYs, that is, "c", "an", "j", "an".  In fact,
you can make use of this feature to save some key strikings, and purposely
use "canjan" to look for "changjiang".

May be you will worry if MEPY will result in too many selection for each
entry.  Statistical results based on 28000 CWs show that, on average, 
the number of selection for each entry is about 1.9 CWs, and 85% CWs are
in the entries with not more than 5 CWs to select, that means, they can
be displayed in a single screen in input area.

Moreover, dynamically adjusted CW list will put those frequently used CWs
at the beginning, making them easier to spot.  Also, for CWs with more 
than two HZs, you can typing one more key to further reduce the selection
range, this additional key is the first PinYin letter of the third HZ. 
This is useful when typing CWs like Sunday, Monday, ... Saturday. As you 
know, in chinese, the first two HZs of these CWs are the same.

III.  Single Hanzi Input

Though the strength of MEPY is in CWs input, but in single HZ input, it
also has some nice feature not available in other PinYin method.  Because
of MEPY, we can link those similar sounded HZ entries into a circular
list, if you can't find the HZ you want, you can switch to the next entry
with one key stroke: '>' or '<' (upper case).

EX:  If you are looking for "zhang", but you typed in "zan", you can use
'>' or '<' to look for other entries with the same MEPY. That is, you can
switch to "zang", "zhan", and "zhang" with '>' or '<'.  Each time it 
switches, the correct PinYin corresponding to the new entry will be 
displayed to help you to remember.  So if you know the correct PinYin, 
you don't loose anything, but if you don't, MEPY provides an easy way to
help you search. Is this nicer than having to use backspace to delete 
input and try other choice again?

Note, in HZ input, the key '.' and ',' (lower case) are different to '>'
and '<' (upper case).  the key '.' and ',' are used to select right screen
and left screen of the same entry, while the key '>' and '<' are used to
select the next entry and previous entry in the same MEPY list (Different 
entry has different PinYin).

When you type in a single consonant element, like 'c', 'm', you will find
some frequently used HZs which start with 'c' or 'm'.  I call these lists  
Hot HZ Caches, one for each consonant MEPY. When you select a
HZ, this HZ will be put into this hot HZ cache, so next time, you just 
need to type in one key to find this HZ.  The HZs in these caches will 
be replaced if they are not used for a number of selections.  I decided
not to dynamically adjust the normal HZ lists because this will make the
lists randomly ordered. Also I decided not to use tone because I don't want
to impose more restriction on the users.  Instead, the normal HZ lists
are regularly ordered, arranging from simple strokes to complex strokes.
Those which look similar are ofter clustered together to make them easier
to spot.  The un-commonly used HZs are alwayes put at the last.  You will
be supprised to find that this arrangement make HZ selection much easier 
than other methods, because you can roughly scan the display and know if
the HZ is in the display.

IV.  Symbol Input

All symbols input starts with the 'v' followed by a key which consists of
zero to four letters.  The key is defined in the text file "symbol.txt"
and can be edited by the users.  Read the comments in "symbol.txt" to
find out how to define symbols in your own way, but for most users, they
should be happy with the current definition.

Symbol input are basically the same as HZ input, except you have to
start with 'v'. Try it and you will like it.  One thing special is that
you can use some punctuation key as input. For example, if you type in
"v:", you will get a ':' in HZ; if you type in "v[", you will get all
different shapes of left brackets, and type in "v]" to get all right
brackets.  So you don't need to remember these key at all.  Try other
key like "va", "vm", and see what will be displayed.

If you are using Japanese, you can define "vjka", "vjki", "vjku", "vjke",
"vjko" for Japanese "Ka", "Ki", "Ku", "ke", "ko", and so on.  If you are
not using them, you can comment out them completely, or put them into a
single key entry "vj".

Note, each key in "symbol.txt" can only be defined once, but you can 
define as many symbols as you want under that key.  For multiple 
definitions of the same key, only the first key is valid.

V. User Defined Word (Phrase)

All user defined Word start with 'u' followed by a key which consists of
one to four letters.  The keys related to UCWs are defined in text file
"usr_cw.txt".  Read the comments in file "usr_cw.txt" to find out how to
define UCW of your own.

User defined CW could be anything you like, such as names, organizations, 
technical terms, addresses, commonly used expressions, and so on.  These
stuffs are usually specific to the user, and vary from person to person.
With MEPY, everyone can define his own set of UCWs, and these UCWs are
used in much the same as other CWs, except this is one to one or one to N 
mapping from key to the related UCW, and you have to remember these keys 
youself. If you have lots of UCWs, then it is better you define the keys 
in a consistent way. For example, you always use the first PinYin letter of
each HZ as the key, up to four letters.  For technical terms, you can 
also use the relevant English as the key.  

Note like symbols, each key in "usr_cw.txt" can be defined for more than 
one time, and when typing the key, all UCWs related to that key will be 
displayed, just like the build-in CWs.

==========================================================================
                Rules of Thumbs in Using MEPY
==========================================================================

0. If you can use CW, use it, unless it is not defined.  For commonly
used phrases, define them as UCWs.  For commonly used symbols, assign
a specific key to each of them.  For those frequently used single HZs,
like numbers, adverbs, conjunctions, most probably they can be found in 
hot HZ caches.

1. The first consonant PinYin letter is the key to the hot HZ cache which
is updated every time you select a HZ starting with that letter.

2. Continue typing, you will get HZs. The symbols '>' and '<' in the input  
area indicate there are more in the right and/or in the left. Use '.' and 
',' to search more in the right or left hands.  Also you can use '>' and 
'<' to search other entries with similar sounded PinYin.

3. You can continue typing in to get a CW. For some CWs with 3 HZs or more,
you can type in one more key after the first two HZ Pinyin to search more
specifically.  You can also search right and left in the same way as HZ.
The only thing to notice is that sometime, you may need a <'> to separate 
two HZ, such as "xi'an" is for a city name, but "xian" is a single HZ; also 
"ke'neng" is for the CW meaning "possibility", otherwise, it may be 
interpreted as "Ken Eng".  The keys are defined in file "usr_cw.txt".

4. To find various symbols, type in 'v', followed by some punctuation keys
or English letters, not exceeding four.  To find user defined CWs, type 
in 'u', followed by some English letters, not exceeding four.  The keys 
are defined in file "symbol.txt".

5. When you find the HZs or CWs, you can use number keys "0" to "9" to 
make the selection, or use space bar to select the one at the very
beginning (same as "0").  If you want to keep the input after selection,
you can use <shift> + "0" to "9" to make the selection, in that way, you
can continue selecting the same HZ or CW without retyping.

Warning:  You may find some commonly used phrases missing in MEPY. That
is true, I just don't have time to thoroughly check the correctness and
completeness of all data.  If you find any commonly used CWs missing,  
record them, and send a copy to me. I will put them into MEPY in the next
release.

Enjoy and have fun, you have got the most friendly HZ input method you
have ever met.

Acknowledge:

	Credit are due to Yongguang Zhang for making cxterm source code 
	available, and allowing modification to the source code. After
	MEPY is released, Yongguang Zhang first tested it, found one
	compatibility problem, and suggested the way to solve the problem.

Qing Zhang

[email-masked]
[email-masked]

Burnaby, B.C. Canada