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