(電子ブック版センチュリー英和よりまるごと引用) らくがき【落書き】  scribble; scrabble;〔公衆便所などの〕graffiti pl.ただし単数 graffito はまれ. RakuGaki - poorman's (*omitted*) らくがき は、一筆のストロークを認識して文字を入力するタブレットです。1ス トロークの入力が即座に処理されるため、あゆみ のような待ち時間なしで快適な 入力ができます。 らくがき の辞書はユーザがほぼ自由に設計できるため、思い通りのストロークで 文字入力ができます。 準備:辞書のインストール らくがき 本体には辞書が提供されていません。その代わり、辞書を自由に構成す るためのユーティリティ(辞書コンパイラ)が付属しています。辞書の作り方を よく読んで、自由に使ってください。それだけではナニなので、辞書のサンプル もサービスで付録しています。 辞書をコンパイルした結果はスープに格納されます。 「らくがき」本体は起動時にこれを読んで動作します。 まず、RakuUtil.pkg をインストールしてください。次に、ノートに辞書のソース を入力してください。仕様は下にあります。もしくは、sample フォルダにある ソースを何らかの方法でノートに転送してください。 パソコン上のテキストを Newton に転送するには、いくつかの方法が考えら れます。 TermLimit, WabTerm などの通信ソフトを使う方法、PaperBack で パッケージにしてしまう方法、TekIO, Serial Input, TransMemo などノート にテキストを転送するツール、アップル日本語環境の JKEY1 の「接続」によ るシリアルキーボード、などなど。そういうことをやったことのないひとも、 いい機会ですから挑戦しましょう。まぁキーボードでしこしこ打ち込んでも 私は構いませんが。 RakuUtil.pkg を起動し、上部の書き込めるエリアに先のソースをコピーしてくだ さい。そして、"Compile As..." ボタンをタップし、適当な宛先を指定してくだ さい。このコンパイル結果は、画面右下に出ている らくがき パネルでテストで きます。ここで入力すると、その左に認識結果が出力されます。結果が思わしく ないときはさらに辞書ソースを修正してください。 コンパイルした辞書をインストールするには、"Install..." ボタンをタップし、 インストールしたい結果の残っている先を指定してください。ダイヤ記号の付い ているものがインストールする情報のあるものです。それしか選べません。 アルファベット、数字、記号のそれぞれについてこの辞書のインストールを繰り 返してください。 RakuUtil の中の辞書ソースは保存されないし、辞書のコンパイル結果から辞書 ソースを再構成する手段も提供していないので、辞書のデバッグはノートでやっ た方がいいでしょう。苦心の作を泡と消えさせないように注意してください。 使い方: Caps, Number ボタンはそれぞれ大文字、数字のモードに移行します。 Caps ボタンの下はシフトのインジケータです。シフト状態は上矢印で、大文字 モードでのシフト(小文字が出る)は下矢印で、記号は黒丸で示されます。 真ん中の大きな枠が入力領域です。下から上に引くとシフトが入ります。もう一 度引くと大文字モードになります。逆もしかりです。(決して上から下へ引くと いう意味ではないぞよ) 左下から右上に引くと数字モードに移行します。 ペンを動かさずに点を入れると記号シフトが入ります。 それ以外の入力はすべてあなたのインストールした辞書の内容によって文字が入 力されます。 ただし、記号シフト時には、他のモードへの移行の為の記号も文字入力に使 うため、点(ピリオド)、下から上(びっくりマーク)、右上から左下(コ ンマ)、左下から右上(スラッシュ)は固定になっています。 また、この例外は RakuUtil の中でも有効なので、編集中の辞書に変な記号 を入れてしまわないように注意してください。 その他: このように複雑な構成になっている理由の一つは、当然「辞書を他人に構成させ よう(自分が楽をしよう)」というものですが、もうひとつ、「何もかも似せて しまったらヤバいんじゃないか」というのが大きな理由です。私はサンプルを付 属させているとはいえ、基本的には器を提供して、実際の仕様上でどんな入力を してしいようが知ったことではない、という言い逃れをするつもりなのですが、 これで本当に言い逃れられるのでしょうか。詳しい方教えてください。 #某社のパテントの内容によるのだろうけど。 もちろん、個人的にどうしてもこの文字はこう書きたい(Oを時計廻りに書くと か)とかの要求にも「かってにやれば」という明解かつ的確な対応ができるとい う利点もあります。 お願い: よりよい辞書が欲しいです。特に現在怪しい '?'/"'" などの認識率が問題です。 記号ももっと増やした方がいいかもしれません。そういう辞書を作られたらご報 告下さい。 また、まったく別の形による辞書を0から作ってしまうというパワーある協力も もちろん大歓迎です。 認識のしくみ: ペンの軌跡を、上下左右斜めの8方向の小ベクトルの列に分解します。テンキー の方向によって、_1,_2,....,_8,_9 とこれを表すと、例えば‘L’は [_2,_6] という列で表現されます。 また、それぞれの小ベクトルが、どちらに曲がりながら描かれたのかが検出され ます。例えば、‘O’は(反時計まわりに書きますよね)左にカーブしているの で L、‘S’は前半は L、後半は R になります。 これらは実際に RakuUtil の中で見ることができます。やってみて下さい。 テンキー数字がベクトルの方向を、その前の R/L が曲がり方を表していま す。ただし、先頭のベクトルはかならず LR の両方が表示されます。 入力から抽出されたこの情報の列を vec と仮に呼びます。 次にこれを辞書の内容と先頭から比較します。 配列におさめられたそれぞれのパターンについて、次を行います。 ・方向があっていないあいだ、vec はよみとばす ・方向があっていれば、そのマッチする vec の要素を全てとりのぞき、パターン も1つ前に進める。ただし、方向が指定されている場合、方向が間違っていれ ば即座に失敗する。 vec がすべて無くなったとき、パターンも最後まで使われていたら、マッチが成 功したとして文字を出力して終了します。中途半端に終わったり、方向が違って いた場合には辞書の次の要素を取り出して繰り返します。 ちょっとややこしいですが、サンプル辞書の内容と RakuUtil での経験で理解し てください。 辞書の作り方: 上の認識の仕組みが理解できれば、辞書はサンプルを見たら書けるでしょう。辞 書は大きな配列として定義します。その1つ1つが辞書の要素で、また配列です。 その先頭は文字を指定します。NewtonScript では1文字は $ に続けて書きます。 ただし、ASCII に入っていない文字や、特別な意味を持つ backslash (0x7F) は chr(0x????) という形で文字コードで指定します。配列の残りの要素は、この文 字として認識させるパターンです。曲がり成分を指定するなら _l もしくは _r 、また曲がりを気にしないなら _n を入れます。ベクトルは複数を同時に指定で きます。右下方向に向いている間全てを、方向を無視して指定するなら 「_n+_1+_2+_4」というように書きます。vec が _1,_2,_4,_4,_7 となっていた ら、このパターンに _7 以前はすべて対応します。(で、消される)省略形とし て _up = _7 + _8 + _9 とか _dn = _1 + _2 + _3 とかがあります。サンプルを 見てください。 検索は先頭から順に行われるので、‘I’のような単純なパターンは下の方に置 くようにしないと、すべてここで喰われてしまって下の方が無視されてしまいま す。‘N’も同様に‘W’や‘M’よりは下にした方がよいでしょう。(辞書の 作り方次第ですが) では、頑張って良い辞書を作って contribute してください。