1 CANNA Version 3.6, a Japanese input system
2
3 Canna Project
4 http://canna.sourceforge.jp/
5
60. Preface
7
8 This file describes the introduction of Canna. For
9 installation of Canna or changes from the previous versions of
10 Canna, see the file `INSTALL' or `CHANGES.jp' respectively. (Sorry,
11 but `INSTALL' and `README' may not be updated compared to the files
12 written in Japanese. Also sorry that `CHANGES' is provided only in
13 Japanese.)
14
151. Overview
16
17 This directory includes files which are source codes for a
18 Japanese input system named Canna. Canna provides a unified user
19 interface for Japanese input.
20
21 *Note: Canna was called Iroha among developers of Canna
22 previously.
23
24 There exists a commonly usable Japanese input system called
25 Wnn. Canna gives an alternative Japanese input system.
26
27 Canna is based on a client-server model for kana-to-kanji
28 conversion, that is, an application program which uses a Japanese
29 input system communicates with a kana-to-kanji conversion server,
30 which is a separate process from the application program. Canna has
31 several features as follows:
32
33 1) Based on client-server model kana-to-kanji conversion
34 2) Supporting automatic kana-to-kanji conversion
35 3) Providing a unified user interface to input Japanese
36 4) Supporting customization by users
37 5) Based on lisp language customization
38 6) A mechanism to add a suitable part of speech to each registered
39 words by users
40 7) Providing a library which supports a unified user interface
41 8) Maintenance tools for conversion dictionaries
42 9) A customizing tool which supports easy customization
43 10) Supporting Nemacs(Mule), kinput2 and uum
44
45 Below, we would like to describe details of Canna's features.
46
472. Features of Canna
48
492.1 Based on client-server model kana-to-kanji conversion
50
51 Canna converts kana to kanji based on a client-server model.
52 That is, an application program communicates with a kana-to-kanji
53 conversion server to achieve Japanese input.
54
552.2 Supporting automatic kana-to-kanji conversion
56
57 Canna is the first free Japanese input system which supports
58 automatic kana-to-kanji conversion which based on client-server
59 model. Generally, it is not easy to operate Japanese with automatic
60 kana-to-kanji conversion in PC environment. However, Canna makes it
61 easier for supporting better user interface which extended their
62 generally(unautomatically) conversion.
63
642.3 Providing a unified user interface to input Japanese
65
66 Developers of Canna used to use Egg on Nemacs when we had to
67 input Japanese. Egg was very harmonious with Nemacs and its user
68 interface was convenient.
69
70 *Note: Nemacs is a Japanese version of Emacs. Egg is an interface
71 between Nemacs and Wnn. Egg provides a user interface by
72 itself.
73
74 On the other hand, if we had to input Japanese without Nemacs,
75 for example, to input Japanese in command line of shell, we were not
76 able to use Egg because Egg was usable only in Emacs environment.
77 On the other hand, there is also a Japanese input system for TTYs
78 called Uum, Uum has a different user interface from Egg and we did
79 not become accustomed with it.
80
81 Especially in using X clients, we were eager to use Egg's user
82 interface to use them. We found a lot of good tools on the X window
83 system such as xmh and xcalendar. Our desire was to localize those
84 clients into our national language and to operate them with Egg's
85 user interface.
86
87<<Let's create another Egg by ourselves>>
88
89 Thus, we decided to create an Egg like system and to provide it
90 in a library. This is the Canna. Now, Canna provides more features
91 than Egg. Canna can be used in Emacs, in X environments, and also
92 on TTYs.
93
942.4 Supporting customization by users
95
96 As well as key binding, it is possible to customize
97 romaji-to-kana conversion rules, status describing strings,
98 dictionaries, etc. A customization is described in a customization
99 file. A customization file can be shared among applications using
100 Canna.
101
1022.5 Based on lisp language customization
103
104 Canna used to use a simple syntax for a customization file.
105 But once a new function is introduced to the syntax of the
106 customization file, old application programs will have to be
107 re-written to incorporate the new rules and conditions of Canna.
108
109 According to use new customization syntax based on lisp
110 language, it is possible to ignore the descriptions which old
111 version's Canna cannot understand. With new syntax, you can get
112 version of Canna or connected server, and it is also possible to
113 customize on conditions of these versions.
114
1152.6 A mechanism to add a suitable part of speech to each registered
116 words by users
117
118 When we made our own user interface, we added one new idea into
119 the word registration part of Canna.
120
121 In kana-to-kanji conversion system, more detailed parts of
122 speech are used than what are used in school grammars. Canna uses
123 almost 400 parts of speech. On the other hand, it might be almost
124 impossible and unkind to ask users what kind of a part of speech
125 must be used for the registered word.
126
127 In Canna, we made a new mechanism to add a suitable part of
128 speech to registered words. Canna shows several sentences using
129 newly registered word, and ask user the usage is correct or not.
130 Asking several questions to user helps Canna to decide what part of
131 speech is suitable for the newly registered word.
132
1332.7 Providing a library which supports a unified user interface
134
135 A user-interface library is provided. With this library,
136 programmers can easily add a Japanese input system with unified user
137 interface to application programs.
138
139 This library has higher-level functions than those Wnn's
140 high-level library has, and interpretation of each input key is also
141 processed inside of this library.
142
143 An interface to this library is simple. Giving input key to
144 this library returns several pieces of information to display
145 pre-edit status. Interpretations of key functions are hidden inside
146 of this library, and it is not necessary for application programs to
147 be conscious of them.
148
149 This library meets the case of treating inputs from several
150 windows. By giving context identifiers which correspond to each
151 window with key inputs to this library makes it possible to process
152 plural kana-to-kanji conversion concurrently in a process.
153
1542.8 Maintenance tools for conversion dictionaries
155
156 Canna provides more than ten tools to maintain kana-to-kanji
157 conversion dictionaries. Using these tools, you can do the
158 following things.
159
160 - Conversion between text format dictionaries and binary format
161 ones.
162 - Creating, deleting, listing, renaming dictionaries by remote
163 operation
164 - Uploading and downloading dictionaries
165 - Adding/deleting items to/from a dictionary by a batch procedure
166
1672.9 A customizing tool which supports easy customization
168
169 In place of editing a customization file directly, it is
170 possible to set up customization by using a customizing tool.
171
1722.10 Supporting Nemacs(Mule), kinput2 and uum
173
174 Canna provides a patch for Nemacs(Mule), which makes
175 Nemacs(Mule) possible to input Japanese in Canna's unified user
176 interface. And, after Mule 0.9.5, the distribution of Mule includes
177 interface to Canna.
178
179 If kinput2 use Canna as kana-to-kanji conversion engine,
180 application programs which use kinput can use Canna's unified user
181 interface to input Japanese
182
183 Additionally, Canna supports a patch for uum, which makes
184 possible to input Japanese in Canna on TTYs. For uum, see
185 canuum/README.jp. (Sorry, but canuum/README.jp is in Japanese.)
186
1873. Contents of Canna
188
189 Canna contains the following things.
190
191 - Kana-to-kanji conversion server (cannaserver)
192 - User interface library (libcanna.a, libcanna.so.1)
193 - Remote version of dictionary accessing library (libRKC.a)
194 - Local version of dictionary accessing library (libRK.a)
195 - Maintenance tools for conversion dictionaries
196 - Patch files for uum of Canna version
197 - A sample program
198
1994. Documents
200
201 Under this directory, there are several documents. Most of
202 them are in Japanese.
203
204 1) Document of Canna (in Japanese)
205
206 The document is in jlatex format and is in doc/man/guide.
207 This document describes the general comments of how to use Canna.
208
209 2) Documents for commands
210
211 The documents are in man macro format of roff and are in the
212 respective directory. Source codes are also available in same
213 directory. Japanese documents have suffix .jmn, and English have
214 .man.
215
216 3) Documents for application interface library
217
218 The documents are in man macro format of roff and are in
219 lib/canna and lib/RK.
220
221 4) Document for kana-to-kanji conversion protocol (in Japanese)
222
223 The document is in jlatex format and is in doc/intern. Canna
224 has the protocol versions 1.0, 1.1, 2.0, 2.1, 3.0 and 3.2. The
225 document of the protocol version 1.0 and 1.1 is the file
226 proto12.tex. Other version's document is protocol.tex.
227
228 5) Document for lisp language of customization file (in Japanese)
229
230 The document is in jlatex format and is in doc/lisp as
231 canlisp.tex.
232
233 6) Document for uum of Canna version
234
235 The notes is in text file format and is in canuum as README.jp.
236
237 7) Other Documents
238
239 The documents are in jlatex format and are in doc/misc.
240
2415. Bugs
242
243 Canna have some bugs as follows:
244
245 (1) Canuum doesn't run on Solaris 2.1.
246
247 (2) Canuum doesn't run on SunOS 4.2 with compiler gcc.
248
249 (3) On SONY NEWS, the terminal mode on pseudo tty is different which
250 make by canuum.
251
252 (4) No English documents as follows:
253 canuum/canuum.man
254
255 (5) When using automatic kana-to-kanji conversion, you sometimes can
256 not convert correctly.
257
258 (6) On Solaris 2.3, you will have some cores.
259
260 (7) When you compile, you will have a warning message "Undefined row
261 vectors: BM". Don't worry it.
262
263
2646. Acknowledgements
265
266 see README.ja.
267
268/* Copyright (c) 2003 Canna Project. All rights reserved.
269 *
270 * Permission to use, copy, modify, distribute and sell this software
271 * and its documentation for any purpose is hereby granted without
272 * fee, provided that the above copyright notice appear in all copies
273 * and that both that copyright notice and this permission notice
274 * appear in supporting documentation, and that the name of the
275 * author and contributors not be used in advertising or publicity
276 * pertaining to distribution of the software without specific, written
277 * prior permission. The author and contributors no representations
278 * about the suitability of this software for any purpose. It is
279 * provided "as is" without express or implied warranty.
280 *
281 * THE AUTHOR AND CONTRIBUTORS DISCLAIMS ALL WARRANTIES WITH REGARD TO
282 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
283 * FITNESS, IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE FOR
284 * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
285 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
286 * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
287 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
288 */
289
290/* Copyright 1994 NEC Corporation, Tokyo, Japan.
291 *
292 * Permission to use, copy, modify, distribute and sell this software
293 * and its documentation for any purpose is hereby granted without
294 * fee, provided that the above copyright notice appear in all copies
295 * and that both that copyright notice and this permission notice
296 * appear in supporting documentation, and that the name of NEC
297 * Corporation not be used in advertising or publicity pertaining to
298 * distribution of the software without specific, written prior
299 * permission. NEC Corporation makes no representations about the
300 * suitability of this software for any purpose. It is provided "as
301 * is" without express or implied warranty.
302 *
303 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
304 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
305 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
306 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
307 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
308 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
309 * PERFORMANCE OF THIS SOFTWARE.
310 */
311
312($Id: README,v 1.6 2003/09/25 15:24:31 aida_s Exp $)
313