検索と入力と登録の統合
一般に検索と入力は全く別物だと考えられています。検索というとGoogle検索やパソコンのデスクトップ検索を連想するでしょうし、入力というとキーボードや日本語入力システムを連想することが多いでしょう。しかし検索と入力は実は深く関連しています。 http://gyazo.com/a100141c9169439c06932df3c44d7a28.png
「k」を入力
http://gyazo.com/d8171d0a901c5b4a4c3b6d2ea47e241a.png
「ken」を入力
http://gyazo.com/5c1c83ac11f35753d36977b82f31c0ae.png
「kens」を入力
Gyaimは入力システムですが、動作は単純であり、ユーザが入力した文字列にマッチする単語を辞書から検索して候補として表示して選択可能にしているだけです。つまり、比較的単純な検索システムを入力システムとして利用しているわけですから、検索システムと入力システムは関連が深いものだということがきます。「研鑽」という単語は辞書に登録されていないためここでは候補として表示されていません。
Gyaimで入力したい単語が候補に出てこなかった場合、「.」(ピリオド)キーを押すとネット上のGoogle IME APIを呼び出した結果を候補に加えるようになっています。「kensan」と入力した後で「.」を押すと以下のように「研鑽」が候補として表示されるのですが、ここで「研鑽」を選択して確定すると「研鑽」という単語が「kensan」という読みで辞書に登録され、以降は「k」などと入力するだけで「研鑽」が候補に出て選択できるようになります。 http://gyazo.com/7f0d4dd58639ddfe8a4377ed61e00bae.png
「kensan」で「研鑽」が候補に出ない
http://gyazo.com/7e4f0b14bf16d5e2c6745bf8514cf4dc.png
「.」を入力してGoogle IME呼び出し
http://gyazo.com/66b6afdce9d0517e67ba508f9dd7863e.png
「研鑽」が辞書登録された後で「k」を入力したところ
つまり、見えないところで検索を行ないながら入力作業をしているだけで単語が自動的に辞書に登録されて検索/入力可能になっていることになります。このような工夫をすれば、検索/入力/登録を統合した使いやすいインタフェースを作ることは難しくないのですが、入力作業と登録作業は完全に別物になっているのが普通であり、統合されているシステムはほとんどありません。
左図はEmacsエディタ上で動く「POBox for Emacs」のmigemo機能を使って「研鑽」をローマ字インクリメンタル検索しているところです。「研鑽」は「kensan」という読みで登録されており、「検索」は「kensaku」という読みで登録されているので、検索文字列として「k」「e」「n」を入力していくと同時に「検索」「研鑽」などの単語が順番にマッチしてハイライトされます。「xxx」という読みで登録された単語は必ず「xxx」という入力で検索可能になっているわけで、検索/入力/登録が完全に統合されていることになります。 http://gyazo.com/3dbe03724a47c4696f38269b21b94edd.png
「ken」で検索して「検索」がマッチしたところ
http://gyazo.com/5c2363329402592e234e73d1779e8dff.png
「ken」で「研鑽」がマッチしたところ
このように地道に検索/入力/登録を統合していくことにより、様々システムをより使いやすくすることが可能になるでしょう。