| 1 |
CANNA Version 3.6, a Japanese input system |
| 2 |
|
| 3 |
Canna Project |
| 4 |
http://canna.sourceforge.jp/ |
| 5 |
|
| 6 |
0. 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 |
|
| 15 |
1. 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 |
|
| 47 |
2. Features of Canna |
| 48 |
|
| 49 |
2.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 |
|
| 55 |
2.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 |
|
| 64 |
2.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 |
|
| 94 |
2.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 |
|
| 102 |
2.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 |
|
| 115 |
2.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 |
|
| 133 |
2.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 |
|
| 154 |
2.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 |
|
| 167 |
2.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 |
|
| 172 |
2.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 |
|
| 187 |
3. 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 |
|
| 199 |
4. 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 |
|
| 241 |
5. 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 |
|
| 264 |
6. 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.5.2.1 2003/09/21 06:46:15 aida_s Exp $) |