(57)【要約】【目的】  ペン・ストロークとジェスチャーに関連する表現力や直観的な使い易さがあるが、複雑な文字認識ソフトウエアは必要ない。【構成】  小文字「ａ」はスタイラスをグラフィック・キーボードの「ａ」のキーの上でタップすることにより入力される。大文字の「Ａ」は「ａ」のキーの上で始められた上向きのストロークにより入力される。ユーザは他の方向でストロークを入れることにより、「コントロール」、「代替」、「コマンド」などの基本文字に対する他の変更子を表現できる。【選択図】  図４
2004206731.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、センサ、表示装置、およびバッファを具備する計算システムにおいて、文字を作成するためにグラフィック・キーボードを使用するための方法であって、
（ａ）前記表示装置上にグラフィック・キーボード・イメージを表示するステップと、
（ｂ）前記センサを用いて、前記センサに対するペン装置の移動を探知し、前記ペン装置が前記移動のかなりの部分で前記センサにもっとも近いままで維持されるステップと、
（ｃ）前記移動の開始における前記ペン装置の最初の位置に従って、修正対象の文字を決定するステップと、
（ｄ）前記移動の間に前記ペン装置によってなされた少なくとも複数のパスに対して、前記ペン装置によってなされたパスに従って第１と第２の変更子を決定するステップと、
（ｅ）前記第１と第２の変更子を前記修正対象の文字に適用し、前記修正対象の文字を修正して、修正文字を提供するステップと、
（ｆ）前記修正文字を前記バッファ内で受け取るステップと、
を含むグラフィック・キーボード使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィック・ユーザ・インタフェースに関し、特に、プロセッサ、センサ、表示装置、およびバッファを具備する計算システムにおいて、文字を作成するためにグラフィック・キーボードを使用するための方法に関する。
【背景技術】
【０００２】
ペン・ベースの計算は、ますます普及してきている。ペン・ベース・コンピュータのユーザは、ペンまたやスタイラスを使用して、一般的にはペンを使って普通の紙の上にプリントしたり、書いたりするのと類似した方法で、コンピュータの表示画面上にペンまたはスタイラスを使用して文字をプリントしたり、書き込むことにより、コマンドおよびデータをコンピュータに入力する。ある種のコマンドは、ペン・ストローク（ジェスチャー）として入力することができる。例えば、ワードを、それに棒線を引いて消すことによって削除したり、ファイルをそれを表すアイコンの上に「o」と書き込むことでオープンすることができる。ペン・ベースの計算の例は、掌サイズのパーソナル・デジタル補助手段から、ノート・パソコンのような小型黒板サイズの機械、壁サイズの対話型表示装置までさまざまなシステムに見られる。また、ペン・ベースのインタフェースは、ある種のコンピュータ・システムなどの元来ペン・ベースとなるように設計されていないコンピュータ・システムに付加、または改装することもできる。
【０００３】
ペン・ベース計算の実用性は、文字認識ソフトウェアの限られた機能のために制限されている。多くのペン・ベース・システムにおいて、ユーザは筆記体の手書きで書き込むことはできず、活字体で書かなければならない。これにより、入力が遅くなる。さらに、システムによる活字体で書かれた文字の認識は難しい。結果的に、ユーザは注意深く（つまり、ゆっくりと）活字体を書かなければならず、たいていの場合、特定のウィンドウ内に、指定されたボックス内に活字体を書かなければならず、システムは各個々のユーザに特別な訓練を要求する場合がある。それでも、文字認識性能は比較的お粗末である。加えて、文字認識を使用するペン・ベース・システムは、例えばマウスなどが備えられた従来のコンピュータ・ワークステーションで実行するのに十分に適応しない。
【０００４】
ペン・ベースの入力に対する文字認識アプローチに限界があるため、代替のアプローチが使用されることがある。このアプローチでは、視覚的には、ペン・ベースではないコンピュータ・システムに通常使用される従来の機械的な（タイプライター）キーボードに類似した、グラフィック・キーボードが・コンピュータ・ディスプレイ上に表示される。ユーザは、グラフィック・キーボードの希望のキーをタップ（打ち込む）するためにスタイラスを使用してテキストを入力する。
【０００５】
グラフィック・キーボード・アプローチは、文字認識アプローチに対してある種の優位点を提供する。データをグラフィック・キーボードを使用して入力すると、（特に数字キーパッドを使用した場合）活字体で書き込むより速いし、正しく実施されると（つまり、グラフィック・キーが小さすぎない場合には）エラーはさらに発生しにくくなる。さらに、アプローチは、既存ソフトウェア・アプリケーションに簡単に実現・統合できる。
【０００６】
残念なことには、周知のグラフィック・キーボードには多くの欠点がある。グラフィック・キーボードは視覚的には機械的なキーボードと類似しているが、機能的にははるかに限定されている。グラフィック・キーボードを使用すると、ユーザは両手のすべての指を使用して「タッチ・タイプ」することはできないが、代わりに、機械的なキーボード上で１本の指を使ってタイプするように、ペンまたはスタイラスを用いて「探して、たたく」必要がある。グラフィック・キーボードでのタイピング・スピードは、ユーザが指／スタイラスをキーボード上でキーからキーへ移動するのに必要となる時間によって制限される。また、ユーザは、同時に複数のキーをタップすることはできない。特に、ユーザは、文字キーやナンバー・キーなどの通常のキーと同時に、「シフト（shift ）」、「コントロール（ctrl）」、「オプション（option）」、または「代替（alt ）」キーなどの変更子キーをタップすることはできないが、代わりに、最初に変更子キーをタップしてから、文字キーやナンバー・キーをタップしなければならない。ユーザが、変更子を設定するために変更子キーを１度タップして、文字キーやナンバー・キーをタップしてから、変更子を解除するために再度変更子キーをタップしなければならないシステムもある（例えば、大文字の「A」を入力するために、「シフト」、「a」、「シフト」をタップする）。これは、１文字を形成するために複数の変更子が構成されなければならない場合に、特に不便である（例えば、ctrl-alt-xのように二重に変更された文字やctrl-alt-Xのように三重に変更された文字）。
【０００７】
グラフィック・キーボード・アプローチのもう一つの問題点は、ユーザに視覚的に大きな負担を課すという点である。機械的なキーボードを用いると、ユーザは、一般的に使用されるキーストロークのシーケンスを覚え、キーボードを見なくても「感覚によって」それを実行できるのに対し、グラフィック・キーボードを使用する場合、ユーザは通常スタイラスを使用するたびにその前に、スタイラスが正しい位置にあることを確認するために、ディスプレイを見なければならない。さらに、一部には、キーボードに、機械的なキーボードに見られる変更子およびファンクション・キーの多くまたはすべてが含まれるため、グラフィック・キーボードは画面表示の大部分を占める傾向がある。
【０００８】
その欠点のために、ペン・ベースの入力に対するグラフィック・キーボード・アプローチはしばしばめんどうであると考えられ、ペン・ベースの計算システムでは、文字認識がうまくいかない場合や十分に信頼できない場合にのみ、代替システムとして使用される。ペン・ベース計算に対する文字認識およびグラフィック・キーボードのアプローチは、一般的には、補足手段としてではなく、相互に相入れない代替策であると見なされている。特に、文字認識アプローチによって（常に提供されているのではない場合には）約束される直観的な使いやすさをグラフィック・キーボード・アプローチが提供する速度、堅牢さ、および実施の手軽さと組み合わせることは不可能であった。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ユーザが単にキーをタップすること以上のことをできるようにするグラフィック・キーボードである。本発明により、専門家ユーザは「感覚」により進むことができ、初心者ユーザは、必要時におよび必要に応じて促される。グラフィック・キーボードは、ペン・ストロークとジェスチャーに関連する表現力および直観的な使いやすさを役立てるが、複雑な文字認識ソフトウェアは必要としない。
【００１０】
本発明のグラフィック・キーボードは、異なった種類のペン・ストロークに違うふうに対応する。例えば、小文字（lowercase ）の「a 」は、グラフィック・キーボードの「a」のキーの上でスタイラスをタップすることにより入力される。大文字（uppercase ）の「A 」は、「a 」のキーの上で始められた上向きのストロークにより入力される。同様に、ユーザは、他の方向でストロークを入れることによって、「コントロール」、「代替」、「コマンド」などの基本文字に対する他の変更子を表現することができる。また、明瞭な方向のストロークを使用してスペース（space ）、後退（backspace ）、削除（delete）、リターン（return）などの文字を表現することもできる。複数の変更子を表現するために、複数のストロークを連続して１つのキーに適用することもできる。ペン・ストロークの視覚的なフィードバックは、ペンによって作成されるマークという形式で提供可能である。ポップアップ・メニューを使用して、コマンド・ストロークおよびストローク・シーケンスの記憶を助け、容易にすることができる。
【００１１】
別の面では、本発明は、グラフィック・キーボードを使用してペン・ベース・コンピュータに文字を入力するための改良型方法を提供する。
【００１２】
明細書および図面の残りの部分を参照することにより、本発明の性質および利点を明らかにさらに理解することになるであろう。
【課題を解決するための手段】
【００１３】
本発明の一態様は、計算システム用ユーザ・インタフェース装置であって、（ａ）グラフィック・キーボード・イメージを表示する表示装置を有し、（ｂ）指定装置、具備する入力ソースを有し、前記入力ソースがキー情報およびパス情報から構成される入力を提供し、前記キー情報が前記グラフィック・キーボードのイメージのキーを表し、前記パス情報が前記指定装置により指定されるポイントのシリーズを表し、（ｃ）前記入力ソースにより提供される前記パス情報に応答して、出力を作成するための出力ジェネレータを有する、ユーザ・インタフェース装置である。
【００１４】
本発明の一態様は、計算システムにおける、グラフィック・キーボード装置であって、（ａ）センサを有し、前記センサは前記センサに対する位置指定装置の複数の位置に応答し、（ｂ）表示装置を有し、（ｃ）前記センサおよび前記表示装置に連結されるプロセッサを有し、前記プロセッサは、（イ）前記表示装置とともに、キーボードのグラフィック・イメージを表示し、前記イメージは、それぞれのキーが前記イメージ内での位置と対応するような複数のキーから構成され、（ロ）前記センサから位置情報およびパス情報から構成される入力を受け取り、前記位置情報が前記位置指定装置の前記複数の位置の内の１つの選択済み位置から構成され、前記パス情報が前記位置指定装置の前記複数の位置の位置のシリーズを構成し、前記シリーズが前記センサに対する前記位置指定装置の相対位置を表し、（ハ）選択された位置を決定するために前記イメージ内の任意の位置と前記選択された位置を相関させ、（ニ）前記選択された位置を、選択されたキーを決定するために前記複数のキーの内の１つのキーと関連付け、（ホ）コマンドを決定するために、前記パス情報を解釈し、（ヘ）出力を作成し、前記出力が、前記コマンドを前記選択されたキーに適用することにより決定された文字、および前記選択されたキーとは関係の内前記コマンドを実行することにより決定される文字から構成されるグループから選択される、ことを具備するグラフィック・キーボード装置である。
【００１５】
本発明の一態様は、プロセッサ、センサ、表示装置、およびバッファを具備する計算システムにおいて、文字を作成するためにグラフィック・キーボードを使用するための方法であって、（ａ）前記表示装置上にグラフィック・キーボード・イメージを表示するステップと、（ｂ）前記センサを用いて、前記センサに対するペン装置の移動を探知し、前記ペン装置が前記移動のかなりの部分で前記センサにもっとも近いままで維持されるステップと、（ｃ）前記移動に対応して文字を作成するために前記プロセッサを使用するステップと、（ｄ）このようにして作成される前記文字を前記バッファ内で受け取るステップと、を含むグラフィック・キーボード使用方法である。
【発明を実施するための最良の形態】
【００１６】
１．はじめに
本発明は、異なった種類のペン・ストロークに違うふうに応答する改良型グラフィック・キーボード用のシステムおよび方法を提供する。ユーザは、適切なストロークを適用することにより、複数のキーを同時に押すことによって機械的なキーボードで入力される文字を容易に入力することができる。また、ユーザは、スペース、後退、削除、リターンなどのある種の頻繁に使用されるキーをキーボードの任意の位置から入力することができる。ペン・ストロークを使用すると、タイピングはさらに容易で速くなり、ユーザに課される視覚的な負担も減少し、キーボードが画面表示上で占めるスペースも減らすことができる。
【００１７】
２．例
本発明を理解するためには、図１−１０に描かれるように、その使用のいくつかの図解例で始めることが有益である。本発明に従ったサンプルのグラフィック・キーボードの表示されたイメージは、図１に示されている。ペンまたはスタイラスを使用してキーのいずれかをタップすると、機械的なキーボード上で類似したキーを押すのと同じ効果がある。したがって、小文字、数字、またはピリオドやコンマのような別の未修正文字を入力するためには、ユーザは単に希望のキーをタップするだけである。
【００１８】
大文字を入力する場合には、タップする代わりに、ユーザは希望のキー上で始めて上向きのストロークを作成する。例えば、図２に図解されるように、「a 」キー上をタップすると「a 」という結果となる。「a 」上での上向きのストロークは「A 」（図３）という結果になる。
【００１９】
ユーザは、同様な方法で、コントロール、代替、オプション、またはコマンドなどの他の変更子キーにアクセスする。例のマッピングは図４に示される。図４のマッピングに従うと、右側のストロークは、コントロール（「ctrl」）変更子を示す。このようにして、文字「c 」上で始められる右向きのペン・ストロークによって、グラフィック・キーボードは文字「ctrl-c」を出力することになる。左側のストロークは、オプション変更子を示し、下向きのストロークは、コマンド変更子を示す。
【００２０】
変更子は容易に組み合わせることができる。例えば、いったん図４のマッピングを適用すると、上向きのストロークが後に続く、文字「c 」で始まる右側のストロークは、「ctrl-c」とは異なる「ctrl-C」を表現する。これは、図５に図解される。
【００２１】
もう一つのストロークの方向は、ある出力の頻繁に使用されるキーを置き換えるために使用することができる。例えば、斜めの方向のペン・ストロークは、スペース、後退、削除、およびリターンを表現するために使用することができる。これらのコマンドの考えられるレイアウトが、図６に示されている。このクラスのストロークは、図３、４、および５に関係して上述される変更子ストロークと、これらのストロークの意味がストロークが作成される場所によって影響されないという点で、異なっている。したがって、斜めの上および左に向かうストロークは、それがグラフィック・キーボードの「a 」キー、「c 」キー、またはそれ以外のキー上で作成されるかどうかには関係なく、図６のマッピング内で後退として解釈される。
【００２２】
視覚的なフィードバックは、ペン・ストロークをグラフィック・キーボードに適用する際にユーザに役立つ。ユーザがペンを画面を横切って使用すると、ラインが画面上に表示され、まるでペンが画面上にマークを残すインクを含んでいるかのように、ペンがどこを通ったかを示す。いったんペン・ストロークが認識されると、文字が入力され、「インクの軌跡」は消える。これは、図８などに図解される。
【００２３】
図７−１０のそれぞれが、ユーザがどのようにして入力を本発明のグラフィック・キーボードに入力するのかを示す図のシリーズである。図７の２つの図のシリーズは、ユーザが本発明のグラフィック・キーボードを使用して小文字を入力するのを示している。ユーザは、ペンまたはスタイラスを用いてグラフィック・キーボードの希望のキーをタップすることによってこれを行う。さらに正確には、ユーザは、ペンがキーボード・イメージ内の希望のキーの位置に近い画面表面をタップするポイントで、グラフィック・キーボードのキーボード・イメージが表示される画面の表面に対してペンをタップする。
【００２４】
図７の第１の図では、ユーザはペンを瞬間的に入力対象の文字またはその他の文字に対応するキー上に置く（この場合は「a 」）。キーボード、ペン、およびユーザの図の隣の小さな長方形で表されている文字バッファは、この段階で空である。第２の図では、ユーザはペンをグラフィック・キーボードから取り除き、それによってタップする動作を完了する。グラフィック・キーボードは、文字「a 」を作成し、それを文字バッファに送る。強調表示は、表示から消える。
【００２５】
図８の３つの図のシリーズは、ユーザが本発明のグラフィック・キーボードを使用して大文字を入力するのを示している。ユーザは、グラフィック・キーボードの希望のキーの上で上向きのストロークまたはマークを作成することによりこれを行う。
【００２６】
図８の第１の図では、ユーザはペンまたはスタイラスを入力対象の文字に対応するキーの上に置く（この例では「A 」）。キーは、表示で強調表示される。文字バッファは空である。
【００２７】
図８の第２の図では、ユーザは、ペンをキーボードに対して押さえつけながらも、ペンを「上向きに」−−つまり、キーボードのいちばん上の行に向かって−−移動する。ユーザは、ペン・ポイントと、キーボード・イメージが、実質上、上向きの移動の間表示される画面表面との間の接触を維持する。これが、ペンのドラッギングと言う。表示装置はユーザがペンをドラッギングしたラインまたはマーク（インクの軌跡）を示す。文字バッファは、入力対象の文字はまだ認識されていないので、この段階では空のままである。キーは、表示で強調表示されたままである。
【００２８】
図８の第３の図では、ユーザがキーボード表面からペンを取り除き、上向きのストロークを完了する。強調表示と同様にラインまたはマークは消え、上向きのストロークに対応してグラフィック・キーボードによって作成される文字は文字バッファに表示される。
【００２９】
図９の３つの図のシリーズは、ユーザが本発明のグラフィック・キーボードを使用してコントロール文字を入力するのを示している。「コントロール文字」は、文字キーを押している間に「コントロール」つまり「ctrl」とマークされる変更子キーを押し下げることによって、従来の機械キーボードで作成される。例えば、文字「a 」のキーを入力する間に「ctrl」キーを押すと、本発明のグラフィック・キーボード上で「ctrl-a」または「＾a 」として作成することもできる「コントロール-a」と呼ばれる文字が作成され、ユーザはグラフィック・キーボードの希望のキーの上に右方向のストロークまたはマークを作成することにより、コントロール文字を入力することができる。
【００３０】
図９の第１の図では、ユーザは、入力文字に対応するキー（この例の文字「＾a 」に対応するキー「a 」）上にペンまたはスタイラスを置く。キーは、表示で強調表示される。文字バッファは空である。
【００３１】
図９の第２の図では、ユーザがペンを右側にドラッギングする。ユーザは、ペンをキーボードに押し続けながらペンを右側に移動し、ポイントと、キーボード・イメージが右向きの移動を通して実質上表示される画面の表面との間の接触を維持する。表示装置は、ユーザがペンをドラッギングしたラインまたはマークを示す。キーは強調表示されたままである。入力対象の文字がまだ認識されていないため、文字バッファはこの段階で空のままである。
【００３２】
図９の第３の図では、ユーザは、キーボード表面からペンを取り除き、右向きのストロークを完了する。キーの強調表示と同様に、ラインまたはマークが消え、右向きのストロークに対応してグラフィック・キーボードによって作成される文字が文字バッファに表示される。
【００３３】
図１０は、異なった方向のストロークを組み合わせる複合ストロークを作成することにより変更子を組み合わせることができることを示している。図１０の３つの図のシリーズは、ユーザが本発明のグラフィック・キーボードを使用してコントロール大文字を入力するのを示している。「コントロール大文字」は、文字キーを押しながら、同時に「シフト」および「ctrl」変更子キーを押し下げることによって、従来の機械的なキーボード上で作成される。例えば、文字「a 」のキーを入力する間に「シフト」および「ctrl」キーを押すことにより、「ctrl-A」または「＾A 」としても作成することが可能な「コントロール−シフト-a」と呼ばれる文字が作成される。本発明のグラフィック・キーボード上では、ユーザは、グラフィック・キーボードの希望のキー上に右向き−上向きの複合ストロークまたはマークを作成することにより、コントロール大文字を入力することができる。
【００３４】
図１０の第１の図では、ユーザは、入力対象の文字に対応するキー（この例では文字「A 」に対応するキー「a 」）の上にペンまたはスタイラスを置く。キーは表示で強調表示される。文字バッファは空である。
【００３５】
図１０の第２の図では、ユーザは、右に一定距離ペンをドラッギングしてから、一定距離「上向きに」−−つまり、キーボードのいちばん上の行に向かってドラッギングする。ユーザは、ペン・ポイントと、キーボード・イメージが右向きおよびその後の上向きの移動を通して実質上表示される画面の表面との間の接触を維持する。キーは、表示で強調表示されたままである。入力対象の文字がまだ認識されていないため、文字バッファは、この段階で空のままである。
【００３６】
図１０の第３の図では、ユーザは、ペンをキーボード表面から取り除き、複合ストロークを完了する。キーの強調表示と同様に、ラインまたはマークが消え、ストロークに対応してグラフィック・キーボードによって作成される文字が文字バッファに表示される。
【００３７】
図１０の例は上向き部分に先行する複合ストロークの右向き部分を示しているが、同じ「＾A 」文字は、ストロークの上向き部分が右向き部分の前に実行されると作成される。他の方向で複合マークを作成することにより、他の種類の変更子を組み合わせることもできる。例えば、左向きのストロークは、「代替」変更子を示し、左向き−上向きまたは上向き−左向きの複合ストロークは、「代替」と「シフト」（大文字）変更子を組み合わせ、左向き−右向きまたは右向き−左向きの複合ストロークは「コントロール」と「代替」変更子を組み合わせる。
【００３８】
３．マーキング・メニュー
マーキング・メニューと呼ばれる対話技法は、説明される特定の実施例での本発明のグラフィック・キーボードでのペン・ストロークの提示およびそれに対する応答を実現するために使用される。本項では、技法を一般的に説明し、第４項で、技法が本発明に当てはまるので、より具体的に技法を説明する。マーキング・メニュー技法の完全な説明は、完全に規定されるように参照により本明細書に取り入れられる１９９３年、トロント大学、コンピュータ・サイエンス学部の博士論文である、ゴードン・Ｐ・クルテンバッハ（Gordon P. Kurtenbach）の「マーキング・メニューの設計および評価」に記載される。
【００３９】
３．１  マークおよび関連する概念
マーキング・メニュー技法は、初心者ユーザと専門家ユーザを同様にサポートし、ユーザが初心者から専門家に成長するのを助けるための効率的なメカニズムを提供することを意図している。マーキング・メニューでは、ユーザがペンまたはスタイラスを用いてコンピュータ表示装置表面上に「書き込む」に従って、コンピュータが、その色や陰影が背景のピクセルの色や陰影と対照を成すピクセルの軌跡（一般的にはインクの軌跡と呼ばれる）を残すことによりインクの現れをシミュレーションする。
【００４０】
マークとは、ペンが押されてから表示を横切って移動されると、特殊な「インク」の色や陰影に変化する一連のピクセルである。インク・カラーに変化するピクセルとは、ペンが表示を横切って移動されるにつれて、ペンの先端の直下にあるピクセルのことである。手書きを含む、意味のない落書きから意味のあるラインの描画や記号までさまざまな自在画が、マークの例である。マークを描画する動作がマーキングと呼ばれる。
【００４１】
マークは、ペンだけではなく他の種類の入力装置を使用しても作成することができる。例えば、マウスは、マウスボタンが押されマウスがドラッギングされると、インクの軌跡を追跡記号の後に残すことができる。ペンとタブレットを使用するシステムもある。この場合、マークは、表示装置の代わりにタブレット上に書き込むことによって表示装置上で作成される。トラックボールを使用するそれ以外のシステムもある。
【００４２】
マーキング・メニューは、コマンドおよびパラメータとしてユーザが作成する多様なマークを解釈することができるペン・ベース計算システムおよびインタフェースに応用できる（これは、ユーザのマークがシステムによって認識されず、ユーザに役立つための注釈として厳密に役立つシステムと対照的である）。
【００４３】
ペン・ベース計算についての参考文献の多くは、マークをジェスチャーと呼んでいる。ただし、ジェスチャーという用語はマーキング・メニューというコンテキストでは不適切である。マークの作成に物理的な仕草が必要なことは本当であるが、システムによって解釈されるのは、マークそれ自体である。例えば、「X 」マークは、マウスの代わりにペンを用いて実行された場合、完全に異なった物理的な仕草を必要とする。いくつかのマークは入力装置を使ったぎこちない物理的な仕草を必要とする場合があるため、ジェスチャーは、マーキングの重要な一面である。ただし、２つの用語は区別することができる。マークという用語の方が、ペン・ベース・コンピュータ・システムまたは用紙とペンを真似るアプリケーションにはより適切であるため、これ以降マークを使用する。
【００４４】
３．２  マークを使用する理由
通常の人間−コンピュータのインタフェースは、入力機能と出力機能という観点では非対称的である。視覚、聴覚、および触覚などの数多くのコンピュータ出力モードがある。大部分のコンピュータは、広範囲に視覚モードを活用する。数千もの色を使う高解像度イメージが、素早く、ユーザにとって意味のあるやり方で表示される。対照的に、コンピュータのユーザの入力を探知する能力は限られている。人間は、言語と接触などの幅広い伝達技能を持っているが、大部分のコンピュータはこれらの小さなサブセットを探知するにすぎない。例えば、キーボードは、指の（圧力ではないが）押しだけしか探知しないし、マウスは非常に単純な腕または手首の動きしか探知しない。したがって、ペンのコンピュータ入力手段としての到来により、マークを使用して入力帯域幅を増やす機会が生まれる。
【００４５】
マークを使用する主要な動機は、マウスとキーボード・インタフェースの不適当さである。この例には、ボタンの押しと位置情報によって制御されるアプリケーションがある（ボタンという用語はここではメニュー・アイテム、ダイアログ・ボックス、アイコン、キーボード上のキーなどを記述する総称的な方法として使用される）。これらの種類のシステムの専門家ユーザは、ボタン・インタフェースが効率的でないために、インタフェースが不適当であることに気づく。効率のためにボタンを無視する対話技法の存在がこの証拠である。インタフェースに精通している専門家は、利用できるコマンドのセットを知っている。彼らは、利用可能なコマンドを彼らに思い出させるメニューは必要としていないし、メニュー表示を使用してコマンドを呼び出すことが非常に長たらしくて飽き飽きすることであることに気づく。
【００４６】
設計者は、いくつかの方法でこの問題に取り組んできた。１つの解決策は、専門家がコマンドに直接アクセスできるようにするアクセラレータ・キーである。アクセラレータ・キーは、押されると、直ちにメニュー・アイテムまたはボタンに対応する機能を実行するキーボード上のキーである。その意図は、アクセラレータ・キーを使うことによって、専門家ユーザが、メニュー・アイテムまたはボタンを表示選択するのに必要となる時間を節約することである。多くのシステムは、ユーザがアクセラレータ・キーと機能の対応を学習し、記憶するのに役立つように、メニュー・アイテムやボタンの隣にアクセラレータ・キーの名称を表示する。
【００４７】
アクセラレータ・キーには問題点がある。アクセラレータ・キーと機能の間の任意のマッピングを学習し、記憶するのは困難である。アクセラレータ・キーと機能の間にニモニックを設定することもできるが（例えば「オープン」のためのコントロール-o）、ニモニックはアクセラレータ・キーの数が増えるにつれてすぐに足りなくなる。異なった機能に１つの共通のキーを使用するさまざまなアプリケーションや、１つの共通の機能に異なったアクセラレータ・キーを使用するさまざまなアプリケーションによって、さらに混乱が生じることがある。その結果、専門家は、アプリケーションに応じたキーと機能の間の任意のまたは複雑なマッピングを記憶しなければならない。
【００４８】
専門家ユーザをサポートするもう一つの方法は、直接処理インタフェースに加えてコマンド・ライン・インタフェースを供給することである。ただし、特に、コマンド・ライン・インタフェースは、直接処理インタフェースとは根本的に異なっているために、コマンド・ライン・インタフェースにも問題点がある。専門家になるためには、初心者はもう一つの完全に異なったインタフェースを学習しなければならない。
【００４９】
マークは、アクセラレータ・キーおよびコマンド・ライン・インタフェースの解決策の問題点を克服する。マークは、その記号の性質のために、機能をより迅速にアクセス可能にすることができる。ボタンを押して機能をトリガするより、マークはコマンドを信号で知らせることができる。例えば、記号マークは、機能と関連付けられ、ユーザがその機能を記号を描画することによって呼び出すことができる。理論的には、マークは任意の記号または記号のシリーズを描画するのに使用することができるため、マークは物理的なボタンまたはグラフィック・ボタンを探してそれを押すより、コマンド選択のさらに迅速な方法となる。実際には、マークの数はシステムの記号を認識する能力および人間の記号セットを記憶する能力によって制限されている。にもかかわらず、小規模なセットのマークしか使用されないなら、ユーザは関連機能をただちに呼び出すことができる。
【００５０】
また、マークは、機能を隠すのにも使用できる。ボタンによって提供されない機能は、それでもなおマークによって提供される。これは、完全な機能のインタフェースをより少ない数のボタンで可能にし、これは、代わりに利用可能な表示領域のさらに効率的な使用を意味する。さらに、多くの場合に、マークは、機能を呼び出すためのボタンよりはるかに効果的となる。
【００５１】
マークを使用するもう一つの動機は、（空間情報や時間情報などの）マークを使用しなければ表現するのが難しい概念または表現しずらい概念をより「自然な」方法で表現する方法となる、マークが持ついくつかの固有の質があるという点である。特に、マークは複数のコマンドの属性を１つのマークの中に埋め込む率直な方法となる。
【００５２】
３．３  マーキング・メニューおよび関連概念
マーキング・メニューとは、ユーザがアイテムのメニューから選択できるようにする対話技法である。選択を実行することができる２つの方法、つまりモードがある。
【００５３】
（１）メニュー・モード  このモードでは、ユーザはメニューを表示することによって選択する。ユーザは、ペンを表示装置に押しつけ、約１秒の３分の１などの短時間、待機することにより、このモードに入る。この動作は、プレス・アンド・ウェイト（押して待つ）と呼ばれることがある。そうすると、アイテムから成る放射メニュー（またはパイ・メニュー）がペン先端の回りを中心にして表示される。放射メニューは、メニュー・アイテムがカーソルを囲む円の中に位置し、それぞれのアイテムが円のある種のセクタと関連付けられている。ユーザは、ペンの先端を希望のアイテムの部分に移動して任意のメニュー・アイテムを選択することができる。選択されたアイテムは強調表示され、選択肢は、ペンが表示装置から持ち上げられると確認される。放射メニューの中心には、中心円、一般的には直径約１センチメートルの円が強調表示されるか、強調表示されていない場合は視覚的に示されている。ペンは、メニューを選択しなくても中心円内で移動することができる。
【００５４】
（２）マーク・モード  このモードでは、ユーザは、マークを描画することにより選択する。ユーザは、ペンを表示装置に押しつけ、ただちに希望のメニュー・アイテムの方向で動かすことによってこのモードに入る。システムは、メニューを表示するのではなく、ペン先端に従ったインクの軌跡を描画する。ペンが持ち上げられると、移動の方向に対応するアイテムが選択される。
【００５５】
図１１は、それぞれ、マーキング・メニューからコマンドを選択する２つのモードを図解する２つの図を示している。図１１の左側の第１の図は、メニュー・モードでメニュー選択肢を選択するユーザを示している。この例では、２つのメニューがユーザに続いて提示されている。ユーザは、ペンを第１メニューの上部右側の四分円の中にドラッギングして、「ペースト」メニュー選択肢を選択してから、ペンを画面から持ち上げずに、ペンを第２のメニューの下部四分円の中にドラッギングして「クリップボードｃ」メニューを選択する。この選択肢のシリーズの効果は、クリップボードCと呼ばれるクリップボード（記憶領域バッファ）からデータをペーストする（作業文書内に挿入する）ことである。第１メニューおよび第２メニューは、いくつかの実施例では、−−特に、本明細書の本発明のグラフィック・キーボードの実施例では−−図１１の表示画面上に同時に表示されるとして説明を明確にする目的で表示されているが、ユーザが一度に１つのメニューしか提示されないように、第１メニューは、第２メニューが表示されると消えてしまう。
【００５６】
図１１の右側の第２の図は、ユーザが第１図と同じメニュー選択肢を選択するが、今回はマーク・モードでこれを行うのを示している。ユーザは、実質上同じペンの移動を行うので、第１図の場合と実質上同じマーク（斜めの上向き−右向きのライン・セグメントの後に下向きのライン・セグメントが続く）ではあるが、放射メニューは表示されない。この選択肢のシリーズの効果は、再び、データをクリップボードCと呼ばれるクリップボードからペーストすることである。図１１の第２図は、マーキング・メニューの重要な概念を図解する。マーク・モードでマークを使用してアイテムを選択するのに必要な物理的な移動は、メニュー・モードでアイテムを選択する場合に必要となる物理的な移動を真似する。
【００５７】
マーキング・メニューは、階層構造となる。メニュー・モードでは、メニュー・アイテムがそれに対応するサブメニューを持つ場合、ユーザは、ペンを持ち上げてアイテムを選択するのではなく、ペンを押しつけて待機し、サブメニューの表示をトリガする。サブメニューも放射メニューである。それから、ユーザは、以前に説明した方法でサブメニューからアイテムを選択することができる。マーク・モードでは、ユーザは、方向の変更がサブメニューからの選択肢に相当するマークを描画することにより選択する。図１１の例は、メニュー・モードとマーク・モードを使用して階層メニューから選択する例である。第１メニューは、階層のいちばん上にある。第２メニューは第１メニューのサブメニューで、階層の中では第１メニューの下にある。
【００５８】
このようにして、放射メニューを使用すると、さまざまな角度でのライン・セグメントのシリーズからなるマークのセットが作成される（「ジグザグ・マーク」）。階層アイテムを持たないマーキング・メニューは、厳密にまっすぐなライン・セグメントを作成する。図１２は、メニュー階層の例およびその対応するマーク・セットを示す。図１２の左側の図は、メニュー階層を示している。図１２のいちばん上のメニューは、１、２、３、および４という４つのメニュー選択肢を含む数値メニューである。これらの選択肢のそれぞれが、選択肢a、b、c、
およびdから構成されるそれに対応する英数字サブメニューを持つ。図１２の右側の図は、マーク・セットを示す。マークのラベルが、それが選択するメニュー・アイテムを示す。ドットは、マークの開始ポイントを示す。
【００５９】
また、マークまたはマークの一部に対応するアイテムを検証することも可能である。これは、マーク確認と呼ばれることがある。この場合、ユーザは、マークを描画するが、マークの描画の最後にプレス・アンド・ウェイトする。そうすると、システムは、「まるで」選択がメニュー・モードで実行されているかのように、マークに沿って放射メニューを表示する。図１３は、３つの階層レベルを持つメニュー内でのこの例を示す。図１３の左側の図では、ユーザは、マークの最初の部分を描画してから、ペンを押しつけた状態で、システムがそこまでの選択を認識するのを待機する。図１３の右側の図では、それから、システムはマークについての解釈を表示し、選択を完了するためにメニュー・モードに入る。
【００６０】
メニュー階層でのバックアップやメニュー・モードでのアイテムの再選択など、マーキング・メニューから選択すると、他の種類の動作が起こることもある。
【００６１】
３．４  まとめ
以下に、マーキング・メニューを貴重かつ独特な対話技法とする設計特徴を要約する。マーキングメニューは、
・キーボードを使用しなくても、メニュー選択の加速を可能にする。
・すべてのメニュー・アイテムでの加速を可能にする。
・メニュー選択および加速された選択の間の相違点を最小限にする。
・同じ入力装置を使用したポインティングおよびメニュー選択加速を可能にする。
・描画が容易で高速なマークを活用する。
・メニュー・アイテムとマークの対応を学習し、記憶するための空間的な方法を使用する。
・「プラグイン（plug-in ）」ソフトウェア・モジュールとして実現可能である。
【００６２】
従来のメニューを使用して、（例えばマウスを使用して）ユーザは、メニューからアイテムを選択するために、カーソルを特定の絶対画面位置または相対画面位置まで移動する。マーキング・メニューを使うと、メニュー選択を行わせるのは、移動先の特定の位置ではなく、移動の方向である。例えば、カーソルを画面上で上向きに移動すると、第１メニュー・アイテムが選択でき、下向きに移動すると、第２メニュー・アイテム、右向きに移動すると、第３メニュー・アイテム、左向きに移動すると、第４メニュー・アイテムが選択できる。追加の選択は、斜めのカーソルの移動と対応させることができる。マーキング・メニューは、移動の各方向が一意のメニュー選択に対応するように、直線状ではなく（「ペン・メニューとして」）放射状に配列される。
【００６３】
マーキング・メニューは、その幾何学上の性質により、ユーザが記憶しやすくなっている。ユーザは、メニューを通して空間的な通路を学習し、記憶する。このような通路は、メニュー選択を置き換えるのに通常使用されるアクセラレータ・キーの組み合わせより覚えやすい。複数のレベルの階層メニューから選択肢のシーケンスに対応するアクセラレータ・キーのシーケンスがいくぶん任意であるのに対し、中間マーキング・メニュー上をスキップする際にペンによってトレースされるパスは、メニュー表示時にそれらを選択するのに使用されるのと同じである。つまり、マーキング・メニューは、初心者ユーザにメニューを表示し、専門家ユーザには単にマークを作成させる。
【００６４】
４．本発明でのマーキング・メニュー
本発明に適用されるように、マーキング・メニュー技法は、メニューを、ペン・ストロークを記憶していないユーザを補助するのに利用できるようにし、メニューをそれらを必要としないユーザから隠す。任意の時点で、ユーザは、ペンを横に移動せずに押しつけることにより、利用可能な選択肢を表示する放射ポップアップ・メニューを起動することができる。それから、ユーザは、ペン（すなわち、入力探知表示画面または入力タブレットと接触している、ペンのポイント、つまり先端）を希望の選択肢が占めるパイの「スライス」の中に移動することにより、希望の選択を行うことができる。横に移動しなくても単にペンを表示画面から持ち上げるだけで、メニューは消え、選択は行われない。
【００６５】
図１４−１７は、本発明のコンテキストで適用されるマーキング・メニューの図解例を示す。図４および６の例で定義される８つのストロークに対応する放射メニューまたはパイ・メニューが図１４に示される。ストロークの方向は、パイのスライスに実質上対応する。
【００６６】
図１５は、ユーザが、メニュー・モードで使用されるマーキング・メニューで、本発明のグラフィック・キーボードを使用して「＾a」を入力する図のシリーズである。
【００６７】
図１５の第１の図では、ユーザは、ペンを押し、ペンをグラフィック・キーボードの「a」のキーの上に押しつける。より正確には、ユーザはペンを押し、グラフィック・キーボードのキーボード・イメージの「a」キーの位置で表示画面に対してペンを押しつける。キーは、表示装置で強調表示される。その後、「大文字」、「オプション」、「コントロール」、および「コマンド」という変更子の４つの選択肢を示す放射メニューが画面上に表示され、キーボード・イメージ上でオーバレイされ、ペンの先端の位置の回りでだいたいセンタリングされる。他の変更子または他のメニュー選択肢は、代替実施例で提供できる。また、この時点では、ユーザは単にペンを画面から持ち上げ、メニュー表示を取り消すことができ、その場合、グラフィック・キーボードは文字を作成しない。
【００６８】
図１５の第２の図では、ユーザは、画面とペンを接触させたままでペンを右に移動し、「コントロール」変更子を選択する。放射メニューは表示されたままである。キーは強調表示されたままである。
【００６９】
図１５の第３の図では、ユーザは、ペン・ポイントを画面から持ち上げる。これによって、グラフィック・キーボードが「＾a」文字を作成するように、「コントロール」変更子が「a」キーに適用される。放射メニューは、キー強調表示と同様に消え、キーボード・イメージがそれが本来表示されたように残る。
【００７０】
図１６は、ユーザが、メニュー・モードで使用されるマーキング・メニューで、本発明のグラフィック・キーボードを使用して「＾A」文字を入力する図のシリーズである。
【００７１】
図１６の第１の図では、ユーザはペンを押し、グラフィック・キーボードの「a 」キー上にペンを押しつける。より正確には、ユーザはペンを押し、グラフィック・キーボードのキーボード・イメージの「a 」キーの位置の表示画面に対してペンを押しつける。その後、「大文字」、「オプション」、「コントロール」、および「コマンド」という４つの選択肢を示す放射メニューが画面に表示され、キーボード・イメージ上にかぶせられ、ペンの先端の位置の回りにほぼ中心をおく。
【００７２】
図１６の第２の図では、ユーザは、ペンを画面と接触させたまま、右に移動し、「コントロール」変更子を選択する。選択されたメニュー選択肢（「コントロール」変更子）が強調表示される。放射メニューは表示されたままで、キーは強調表示されたままである。
【００７３】
図１６の第３の図では、ユーザは、ペンを静かに持ち、ペンを「コントロール」変更子の選択の上で以前到達した位置にペンを維持する。その後で、４つの選択肢の第１メニューは消え、この文字に適用するのに利用可能な変更子の残りの利用可能選択肢−−「オプション」と「コマンド」−−を示す第２放射メニューによって置き換えられる。この第２メニューは、キーボード・イメージ上にかぶせられ、ペンの先端の位置の回りにほぼ中心をおく画面に表示される。キーは、この例では、メニューによって部分的にはっきりしていないが、強調表示されたままである。
【００７４】
図１６の第４の図では、ユーザはペンを上向き、つまり画面表示のいちばん上に向けて、移動し、「大文字」変更子を選択する。選択されたメニュー選択肢は強調表示される。放射メニューは表示されたままで、キーは強調表示されたままである。
【００７５】
図１６の第５の図では、ユーザはペンを画面から持ち上げる。これによって、グラフィック・キーボードが「A 」文字を作成するように、「コントロール」と「大文字」変更子が「a 」キーに適用される。キー強調表示と同様に、放射メニューは、消え、キーボード・イメージが本来表示されていたように残る。
【００７６】
メニューは、図１６に示される２つのレベルよりさらに深いレベルまでネストすることができる。例えば、変更子の３つのレベルを１文字に適用し、グラフィック・キーボードを使用して「コマンド−オプション-A」または「コントロール−代替-X」などの文字を作成することができる。
【００７７】
図１７は、本発明の実施例での８アイテム・マーキング・メニューからの選択の例を示す図のシリーズである。３つのメニュー選択には、「大文字」（シフト）、「オプション」、「コントロール」、「コマンド」、「後退」、「スペース」、「リターン」、および「削除」が含まれる。
【００７８】
図１７の第１の図では、文字バッファは、ユーザが削除を希望する文字「A 」を含む。この必要のない文字は、小さな長方形で表されているカーソル位置の直後にある。ユーザはペンを押し、ペンを、グラフィック・キーボードのキーボード・イメージのキー（ここでは「d 」）の位置での表示画面に対して押しつける。キーは表示装置で強調表示される。その後で、「大文字」、「オプション」、「コントロール」、および「コマンド」という変更子の４つの選択肢−−および「後退」、「スペース」、「リターン」、（図１７では図示されていない）「削除」という特殊文字の４つの選択肢−−を含む、８つの選択を表示する放射メニューが、画面上に表示され、キーボード・イメージ上でかぶせられ、ペンの先端の位置の回りにほぼ中心をおく。この時点で、ユーザは単にペンを画面から持ち上げて、メニュー表示を取り消すことができ、その場合、グラフィック・キーボードは文字を作成しない。
【００７９】
図１７の第２の図では、ユーザは、ペンを画面と接触させたまま、放射メニューの「後退」アイテムの方向で、ペンを上向きおよび左に斜めに移動する。これにより、「後退」文字が選択される。放射メニューは表示されたままである。キーは強調表示されたままである。
【００８０】
図１７の第３の図では、ユーザは、ペン・ポイントを画面から持ち上げる。これによって、グラフィック・キーボードは「後退」文字を作成し、この実施例ではバッファ内の必要の内文字が消去され、カーソル位置が左側に移動する（その他の実施例では、「後退」文字、または「＾h 」などの相当するものがバッファ内に置かれ、これを消去として解釈するかどうかは、グラフィック・キーボードから入力を受け取るアプリケーション・プログラムにまかされる）。キーボードの強調表示されたキーは、無視される。キーの強調表示と同様に、放射メニューは、消え、キーボード・イメージはそれが本来表示されたように残る。
【００８１】
本発明で使用されるマーキング・メニューの追加例は、図７−１０に見られた。ただし、図１５−１７で図解されたマーキング・メニューとは異なり、図７−１０のマーキング・メニューはマーク・モードにあるため、放射メニューは表示されない。
【００８２】
本発明のいくつかの実施例では、マーキング・メニューはオプションである。メニューは、マークをメニューを使用しなくても使用できるように、専門家ユーザによってオプションでディスエーブルできる。いくつかの実施例では、マークを、見えないインクで描画されたかのように、見えなくすることもできる。ユーザによって描画されるペン・ポイント（またはマウス・カーソル、または他の入力装置の代表）のパスは、グラフィック・キーボードによって、マークが描画されたかのように解釈されるが、インクの軌跡は画面には表示されない。
【００８３】
５．システム構成要素
図１８は、本発明のグラフィック・キーボードの実施に適切なシステム１を図解する。システム１は、プロセッサ（ＣＰＵ）５、プロセッサ５に連結される記憶装置６、プロセッサ５により実行されるユーザ・インタフェース・ソフトウェア７、ペン１０、表示画面２２に密接に連結される入力センサ２１を具備する入力探知表示装置２０、文字バッファ３０、および遅延タイマ４５を搭載するイベント・ドライバ４０を具備する。画面２２は、複数のキー２６を含むキーボード・イメージ２５を表示する。センサ２１、画面２２、バッファ３０、およびイベント・ドライバ４０は、操作上、プロセッサ５に接続され、ユーザ・インタフェース・ソフトウェア７にアクセス可能である。システム１は、通常、さらに、プロセッサ５により実行されるオペレーティング・ソフトウェア（図示されていない）およびシステム１のさまざまな構成要素を相互接続するためのハードウェア（図示されていない）を具備する。システム１の一部ではない、アプリケーション・プログラム５０は、バッファ３０を経由してシステム１により（すなわち、グラフィック・キーボードによって）供給される文字を受け入れる。
【００８４】
使用する場合、システム１は、入力センサ２１に適用されるペン１０からのタップおよびストロークという形で入力を受け取る。ユーザ・インタフェース・ソフトウェア７に従った命令を実施するプロセッサ５が、ペン・ストロークおよび特にペン・タップおよびマークが対応する文字の意味を判断する。プロセッサ５は、このようにして判断された文字のストリームをバッファ３０に出力し、オプションで、インクの軌跡およびポップアップ・メニューなどの視覚的なフィードバックを、画面２２に出力する。それから、バッファ３０に記憶された文字は、（図１８に示されるように）プロセッサ５によって、または（図示されていない）追加の１台または複数のプロセッサによって、実行できるアプリケーション・プログラム５０によるさらなる処理のために送られる。アプリケーション・プログラム５０は、オプションで、やはり画面２２に表示可能な、その視覚表示装置の一部として文字をエコーすることができる。
【００８５】
今度は、システム１のある種の要素を、さらに完全に記述する。プロセッサ５は、中央処理装置（ＣＰＵ）である。一般的には、それは、メインフレーム、ワークステーション、またはパーソナル・コンピュータの一部である。プロセッサは、いくつかの実施例で複数の処理要素を具備することがある。
【００８６】
ペン１０は、入力をグラフィック・キーボードに提供するためにセンサ２１といっしょに使用される。ペン１０は、センサ２とともに使用するために適切ないかなる器具であってもよい。例えば、装置２０が触感表示画面である場合、ペンに単純なプラスチック、金属、木、またはその他の１つまたは複数の材質のスタイラスを使用できる。別の例では、装置２０が光感知画面であるならば、ペンにライト・ペンを使用できる。いくつかの実施例では、通常のペンまたは鉛筆、レーザ・ポインタ、またはユーザの指でさえペン１０としての役割を果たすことができる。
【００８７】
センサ２１は、ペンが装置２０と接触しているかどうかを検知するために使用され、接触している場合には、装置２０に関してペン１０の位置を決定するために使用される。つまり、センサ２１は、ペン１０が「上向き」なのか「下向き」なのか、およびペン１０が表示画面２２に関して、特にキーボード・イメージ２５に対してどこにあるのかを判断するのに、使用される。センサ２１は、センサ２１に相対するペン１０の位置が、画面２２に相対するペン１０の位置と一致するように、実質上、画面２２上にかぶさる（実施例によっては、下になる）。
【００８８】
前述のマーキング・メニュー技法は、ペン１０が、通常のボールペンまたは万年筆が用紙に影響するのと類似した方法で画面２２によって示される表示に影響することを前提としている。つまり、ペン１０は、画面２２上にインクの軌跡を残す。したがって、ユーザが、ペン１０を使用して入力センサ２１上で、１つのストローク、または左向きに進んでから上向きに進むストロークのようなストロークの組み合わせを作成すると、L字形のマークなどの対応するマークが画面上に表示される。
【００８９】
キーボード・イメージ２５は、ユーザ・インタフェース・ソフトウェア７に従ってプロセッサ５によって作成され、画面２２上で表示されるグラフィック・イメージである。キーボード・イメージ２５は、標準的な QWERTY キーボード・レイアウトでのキー２６を含むとして図１８に示される。他の種類のキーボードおよびレイアウトを、本発明の範囲内で使用することは可能である。例えば、キーボード・イメージ２５が、ファンクション・キーを含んだり、Dvorakキーボードのような非標準型キーボード・レイアウトのイメージである場合がある。いくつかの実施例では、キーボード・イメージ２５は、数値キーパッドや鍵盤である場合もある。
【００９０】
図１８に示されるようなキーボード・イメージ２５は、「シフト」、「コントロール」、「代替」、または「コマンド」などの変更子キーは含まない。本発明によれば、これらのキーは不必要である。その機能性は、本発明においては、適切なペン・ストロークにより置き換えられている。したがって、キーボード・イメージ２５は、画面２０で追加キーが存在した場合より狭い面積を占める。
【００９１】
バッファ３０は、ユーザ入力に応答してグラフィック・キーボードによって作成される文字を記憶する。一般的には、これらの文字は、アプリケーション・プログラム５０などのアプリケーション・プログラムによって入力として受け入れられる。画面２２は、オプションで、バッファ３０に記憶される文字、またはアプリケーション・プログラム５０が受け取る文字を表示（「エコー」）することができる。バッファ３０は、記憶装置６を使用して実現できる。それは、ユーザ・インタフェース・ソフトウェア７およびアプリケーション・プログラム５０の両方によってアクセス可能である。
【００９２】
イベント・ドライバ４０は、プロセッサ５、入力センサ２１、および遅延タイマ４５に接続され、ユーザ・インタフェース・ソフトウェア７によってアクセス可能である。一般的には、イベント・ドライバ４０および遅延タイマ４５は、プロセッサ５によって実行されるオペレーティング・システム・ソフトウェアで実施される。それらは、また、ハードウェアにおいて、またはいくつかの実施例では部分的にハードウェアで実現することができる。
【００９３】
５．１  イベント駆動型アーキテクチャ
イベント・ドライバ４０は、グラフィック・キーボードに、ペン１０に対応する、ある種のイベントや状態の変化について知らせるために使用される。具体的には、イベント・ドライバ４０は、次のイベントを作成することができる。
【００９４】
PenDown - このイベントは、ペン１０が押されると、つまりペン１０が新規にセンサ２１と接触させられると、作成される。
【００９５】
PenDrag - このイベントは、ペン１０が押されたままの状態でペン１０の位置が変化すると、作成される。PenDrag イベントは、ペンが認識可能な量、つまり１ピクセル移動するたびに、作成される。
【００９６】
PenUp - このイベントは、ペン１０がセンサ２１から持ち上がられると（センサ２１との接触から外されると）、作成される。
【００９７】
PenStill -このイベントは、ペン１０がセンサ２１上で押されたままの状態で、ペン１０のセンサ２１に対する位置が、E 秒間、かなりの量（通常は、２ミリメートル）変更しない場合に作成される。この場合、E は遅延時間である。E が固定時間値である実施例もあれば、ユーザによって調節可能な実施例もある。一般的には、E は、約０.3秒から1 秒の範囲である。遅延タイマは、ペン１０が押しつけられたまま、静かに保たれていた時間の長さを決定するのに使用される。タイマ４５は、経過時間がE秒に達すると、イベント・ドライバ４０に信号を送り、それによって、イベント・ドライバ４０はPenStillイベントを作成する。タイマ４５は、ペン１０が押されているか、移動と停止するとカウントを開始し、ペン１０が持ち上げられるか、移動を開始すると、リセットされる。
【００９８】
４種類のイベントが、本発明のグラフィック・キーボードの異なる動作を作成するために多様な組み合わせで使用される。例えば、ユーザが、「＾a 」などの変更された文字の入力を希望すると仮定する。ユーザは、グラフィック・キーボードのキー上でペンを押すことによって文字を入力するプロセスを開始し、それによってイベント・ドライバ４０がPenDown イベントを作成する。それから、ユーザは、ペンを押しつけながら、ペンをドラッギングすることにより、マークを作成する。そうする過程で、ユーザは、イベント・ドライバ４０に多数のPenDrag イベントを作成させる。オプションで、ユーザは、システムにメニュー（いちばん上のメニューまたはサブメニュー）を表示するようにプロンプトするためにマーキングの間に休止することができる。これによって、イベント・ドライバ４０は、PenStillイベントを作成する。最後に、マークを完了するために、ユーザはペンを画面または入力センサから持ち上げ、それによってイベント・ドライバ４０はPenUp イベントを作成する。それ以降、ユーザのマークは、PenDown イベントの時点でのペンの位置によって決定される基本的な文字およびマークによって決定される変更子（複数の場合がある）に従って、プロセッサ５によって処理される。一般的には、これにより、希望の文字が文字バッファ３０に出力される。
【００９９】
５．２  ソフトウェア環境
当業者によって理解されるように、本発明のグラフィック・キーボードは、一般的には、オペレーティング・システムまたは操作環境のコンテキストで、グラフィック・ユーザ・インタフェースとして使用される。環境は、プロセッサ５により実行されるソフトウェアによってサポートされる。一般的には、環境は、ウィンドウをキーボード・イメージ２５に関連付けたり、このウィンドウの画面２２の任意の位置で表示したり、ペン１０に関連するイベントがこのウィンドウ、したがってグラフィック・キーボードに関係しているかどうかを判断したり、ペン１０からの位置情報をこのウィンドウ、それからグラフィック・キーボードに向けたり、文字バッファ３０の出力をアプリケーション・プログラム５０のアプリケーション・プログラムに向けたりすることなどのウィンドウ操作をサポートする。
【０１００】
一般的には、ソフトウェア環境は、すべておよびグラフィック・キーボードの操作に関連するイベントだけをグラフィック・キーボードにフィードするために、イベント・ドライバ４０とともに動作する。他のウィンドウまたはプロセスに関係するイベントは、それらの他のウィンドウまたはプロセスに向けられる。このような実施例では、グラフィック・キーボードはその動作に関係するイベントと関係しないイベントを区別するための論理を取り入れる必要はない。ここでは（特に、以下の第６項では）、本発明のグラフィック・キーボードによって処理されるイベントは関連イベントであると想定されている。
【０１０１】
非ウィンドウ環境を含む、他の種類のソフトウェア環境は、本発明の範囲内で考えられる。例えば、本発明のグラフィック・キーボードは、分離ウィンドウのコレクションの類似したものではなく、連続用紙や用紙のロールの類似したものを使用して、ユーザ・インタフェースを提示するペン・ベースのコンピュータ・システムで実現することができる。
【０１０２】
５．３  入力探知画面の代替策
図１８の実施例では、入力センサ２１は、入力探知表示装置２０の画面２２に密接に連結される。これにより、ペン１０およびキーボード・イメージ２５のキー２６の相対位置はユーザにすぐに明らかになる。ユーザが、効果的に表示装置上で書き込むこのような装置は直接インターフェースと称される。本発明は、ペンまたはその他の書き込み計器が表示装置を接触しない、間接インタフェースとともに使用するために適合することができる。このような実施のいくつかの例は、これから説明する。
【０１０３】
図１９に示される代替実施例では、従来の非入力探知表示装置が使用できるように、センサ２１および画面２２が分離されている。デジタル化タブレット７０は、ペンからの入力を検知するために使用され、タブレット７０上のペン１０の位置は、画面２２のカーソル２７などのインジケータの位置によって表される。ユーザは、キーボード・イメージ２５のキーに対するペン１０の相対位置を、カーソル２７の位置を検査することにより判断することができる。
【０１０４】
図２１に示されるように、別の実施例では、マウス８０（またはそれ以外の同等な入力装置）が、ペン１０およびセンサ２１の代わりをする。マウス位置は、プロセッサ５によって実行されるユーザ・インタフェースソフトウェア７の一部である適切なソフトウェアによって探知される。マウス・ボタン８１は、マウス８０がアクティブであるかどうかを判断するために使用することができる。これは、ペン１０が下がっているか、上がっているかを判断するためにセンサ２１を使用するのに類似している。カーソル２７は、マウス８０およびキーボード・イメージ２５のキー２６の相対位置について視覚的なフィードバックを提供する。当業者は、トラックボールおよびジョイスティックを含むがそれらに限定されない、２つ以上の次元を探知する広範囲な同等な入力装置をマウス８０の代わりに使用できることを理解するであろう。
【０１０５】
いくつかの実施例では、キーボード・イメージ２５は、ステンシルで刷り込まれ、接着されるか、それ以外の場合は、電子表示画面に表示されるだけではなく、あるいは表示される代わりに、書き込み表面上に付けられる。書き込み表面とは、図１９の実施例のデジタル化タブレット７０や、図２１の実施例のマウス８０とともに使用されるマウスパッドである。図２０は、図１９の実施例でデジタル化タブレット７０の代わりに使用されるデジタル化タブレット７０’を図解する。デジタル化タブレット７０’は、その上に、キー２６’を含むキーボード・イメージ２５’をステンシルで刷り込んだ。ユーザは、ペン１０を使用してグラフィック・キーボードと対話し、ステンシルで刷り込まれたキーボード・イメージ２５’のキー２６’を横切るストロークを作成する。ステンシルで刷り込まれたキーボード・イメージ２５’は、表示画面２０上にその対となるグラフィック・キーボード・イメージ２５を表示させる、ページ１０の位置をカーソル２７によって、ペン・ストローク・パスをインクの軌跡（図１９では図示されていない）によって示すことができる。代わりに、画面上での視覚的なキュー（つまり、カーソル２７およびキー２６を含むキーボード・イメージ２５）は、いくつかの実施例では省略可能であり、その場合、ステンシルで刷り込まれたキーボード・イメージ２５’が、文字情報、位置情報、および類似情報を本発明のグラフィック・キーボードのユーザに伝達する際に、表示２０を置き換える。それ以外の実施例では、ステンシルで刷り込まれたキーボード・イメージ２５’は、入力探知表示画面の専用部分に適用するか、適切に構築された膜入力センサに適用することができる。
【０１０６】
６．方法のステップ
図２２−２９は、マーキング・メニューを取り入れる実施例での本発明のグラフィック・キーボードからの入力を処理する際に必要なステップのフローチャートである。これらのステップは、プロセッサ５の制御の元で、イベント・ドライバ４０によって作成されるPenDown イベント、PenDrag イベント、PenStillイベント、およびPenUp イベントシステム１によって実施される。
【０１０７】
６．１  データ構造
説明するイベント処理ルーチンは、ある種のデータ構造を共通で共有する。これらのデータ構造は、一般的には記憶装置６に記憶され、プロセッサ５によってアクセス可能である。ある実施例では、データ構造は、次の種類である。
【０１０８】
（１）ＭＭ−メニューを表す。ＭＭは、
・アイテム名のリスト（例えば、シフト、コントロール、コマンド、オプション）・サブメニューのリスト（他のＭＭによって表される）
・アイテム名のリストおよびサブメニューのリストへのインデックスである、選択されたアイテム
を含む。
【０１０９】
文字の処理が開始する前に（つまり、新しいPenDown イベントが発生する前に）、表示することができるメニューの階層を説明するＭＭから成る階層が存在する。ＭＭ階層は、メニュー・モードで、もっとも最近のPenDown イベント以来いままで表示されたメニューのシーケンス、またはマーク・モードで、現在のマークによって選択されるメニューのシーケンスを反映するために更新することができる。
【０１１０】
（２）ポイント−組（x 、y 、t 、φ）：
x −  水平画面位置
y −  垂直画面位置
t −  時間x とy が記録された
φ  −  先行するポイント、このポイント、および次のポイントによって形成される角度
（３）PointList −  ポイントの順序付けられたリスト。マークは、マークが描画されるに従って、ペンの画面（または入力センサ）位置を示すPointList によって表される。それぞれの位置には、それに対応するその発生時刻（例えば、もっとも最近のPenDown イベントからミリ秒単位で測定される）がある。
【０１１１】
（４）ModeFlag  −  マーキング・メニューの現在のモードがメニュー・モードなのか、マーク・モードなのかを示すトグルまたはフラグ。
【０１１２】
６．２  イベント処理ルーチン
図２２は、イベント・ドライバ４０によって作成される、PenDown 、PenDrag 、PenStill、およびPenUp という４種類のイベントの内の１つに応答するためのステップを示している。最初に、処理対照のイベントの種類が決定される（ステップＴ）。イベント種類に従って、PenDown （ステップＡ）、PenDrag （ステップＢ）、PenStill（ステップＣ）、PenUp （ステップＤ）という４種類の異なったイベント応答ルーチンの１つが呼び出される。これで、次のイベントが発生するまで処理を完了する。
【０１１３】
（１）PenDown  イベントがPenDownイベントである場合（ステップＡ）、そ
のフローチャートが図２３に表示されるルーチンが実行される。グラフィック・キーボードのどのキーが押されるのかという決定がなされる（ステップＡＡ）。一般的には、入力探知表示画面が入力に使用される場合、押されているキーは、ペンの先端がその境界線内にあるキーである。画面から分離したマウスまたはタブレットが入力に使用される場合には、押されているキーは、その位置が、マウスまたはペンを表すカーソル２７の表示位置ともっとも密接に相関するキーである。次に、押されているキーは表示装置で強調表示される（ステップＡＢ）。一般的には、これは、その境界線の外観を暗くするか、あるいはその境界線の色を変更することにより行われる。次に、モードがマーク・モードに設定される（ステップＡＣ）。これは、マーク・モードを示すためにModeFlag をセットすることにより実行される。最後に、ペンの位置および現在時刻は、現在作成中のマークを表すのに使用されるPointList内のポイントとしてセーブされる（ステップＡＤ）。このポイントの値の組が、画面２２に対するペン１０の位置（または、カーソル位置としてペン位置を表す実施例でのカーソル２７の対応する位置）を示す。
【０１１４】
（２）PenDrag イベントがPenDrag イベントである場合（ステップＢ）、図２３にそのフローチャートが表示されるルーチンが実行される。現在のモードは、ModeFlagを検査することにより決定される（ステップＢＡ）。現在モードがマーク・モードである場合、ペン位置および時刻は現在のPointList のポイントとしてセーブされ（ステップＢＢ）、インクの軌跡が以前のペン位置から現在のペン位置まで秒がされる（ステップＢＣ）。これにより、マークが、ペンがドラッギングされるのつれて、ペンのパスに沿って表示画面上に表示される。ユーザがマークを作成するためにペンをドラッギングすると、一般的には数多くのPenDrag イベントが作成される。
【０１１５】
現在モードがメニュー・モードである場合には、メニューは、すでに画面上にある。どのメニュー・アイテムが選択されているのかはペン位置に基づいて決定され（ステップＢＤ）、この選択は、現在のメニューを表すＭＭの「選択されたアイテム」フィールド内に記憶される（ステップＢＥ）。
【０１１６】
メニュー・モードでは、ユーザは、ペンを表示されるメニューの中心円からメニューの放射上のセクタ（つまり「パイのスライス」）の中にドラッギングすることにより、現在のメニューからアイテムを選択することができる。ユーザがペンをドラッギングするに従って、PenDragイベントのシリーズが発生する。ユーザは、メニューの外辺部の外側でさえ、メニューを移動し続けることが可能で、ユーザがセクタの角張った境界内に留まる限り、選択は維持される。ペンを別のセクタの中に移動すると、異なったメニュー・アイテムが選択され、以前に選択されたメニュー・アイテムの選択が解除される。このようにして、説明したばかりのメニュー選択は、取消可能な選択である。選択によって、グラフィック・キーボードに、文字または変更子をただちに作成させない。現在選択されているメニュー・アイテムを文字の作成または修正のために実際に適用するのは、PenUpイベントの場合だけで発生する。
【０１１７】
（３）PenStill  イベントがPenStillイベントである場合（ステップＣ）、そのフローチャートが図２５に表示されるルーチンが実行される。現在の選択モードは、ModeFlagを検査することにより決定される（ステップＣＡ）。ペンを静かに保つことにより、ユーザは、メニューを表示させることを意図する。したがって、現在モードがマーク・モードの場合、モードは、ModeFlagをトグルすることによりメニュー・モードに切り替えられ、ルーチンが、いままで描画されたマークに対応するメニュー選択を決定するために呼び出される（ステップＣＣ）。図２７に関連して後述されるルーチンの率直な延長である、このルーチンは、ＭＭ階層を更新し、選択されたメニューを反映し、表示をそれに応じて更新する。（いちばん上のメニューまたはサブメニューのどちらかである）現在のメニューは、ペン・ポイント位置に表示される。描画されたマークは、マークの概要のクリーンアップされたバージョンを表す１つ以上の直線セグメントで、表示内で置き換えられる。マークに方向の実質上の変更が含まれない場合には、１本の直線セグメントが表示される。ライン・セグメントには、マークの起点およびペン・ポイントに端点がある。マークが実質上１つ以上の中間点で方向を変更すると、一般的には、ユーザが複合変更子を基本文字に適用することを意図することを示し、異なった直線セグメントから成るジグザグが表示される。ジグザグのそれぞれのライン・セグメントは、方向の実質上の変更を含まないマークの一部に対応する。
【０１１８】
現在のモードがメニュー・モードである場合には、メニューは、すでに表示中で、ユーザはおそらくそのメニューからアイテムを選択することを意図している。したがって、ユーザがすでに表示されたメニューからアイテムを選択したことを示すために、ペンが表示されたメニューのセクター内に位置する場合（ステップＣＤ）、および示されたメニュー・アイテムに対応するサブ・メニューが存在する場合（ステップＣＥ）、現在のメニューが表示から取り除かれ（ステップＣＦ）、示されたメニュー・アイテムに対応するサブメニューが表示され、現在のメニューとなる（ステップＣＧ）。ＭＭ階層は、それに応じて更新される。図１６の例は、これがどのようにユーザに見えるのかを示している。図１６の第２の図は、表示中のメイン・メニューを示し、図１６の第３図は、表示から排除され、サブメニューによって置き換えられたメニュー・メニューを示している。ペンが表示メニューのセクター内にない場合（ステップＣＤ）、または示されたメニュー・アイテムに対応するサブメニューが存在しない場合（ステップＣＥ）、イベント応答ルーチンが単に戻り、現在メニューを表示したままにする。
【０１１９】
（４）PenUp  イベントがPenUpイベントである場合（ステップＤ）、そのフ
ローチャートが図２６に表示されるルーチンが実行される。現在の選択モードは、ModeFlagを検査することにより決定される（ステップＤＡ）。現在モードがマーク・モード出ある場合、描画されるマークは表示から消去され（ステップＤＢ）、マークに対応するメニュー選択は、図２７に関連して後述されるルーチンに従って決定される（ステップＤＣ）。この決定後に、ＭＭ階層は選択されたメニュー・アイテムを反映する。このようにして、変更子または現在表示されるメニューおよびもっとも最近のPenDownイベント以来、以前表示されたあらゆるメニューに対応する空間文字がＭＭ階層に反映される。モードがメニュー・モード出ある場合、すべてのメニューとラインが表示から消去される（ステップＤＤ）。ＭＭ階層はすでに最新であるため、メニュー選択を決定するためのルーチンは、この場合には呼び出されない。
【０１２０】
ペンを画面から持ち上げることにより、ユーザはマークを完了し、グラフィック・キーボードにキーボード・バッファ内に格納する文字を作成させる。それに応じて（現在のモードには関係なく）、ＭＭ階層が、どの変更子または空間文字が選択されたのかを決定するために注意深く検討される（ステップＤＥ）。それから適切な文字が、それに応じて作成され、文字バッファ３０内に格納される（ステップＤＦ）。この文字は、ＭＭ階層ではコード化されるユーザのメニュー選択に依存している。それは、そのキーがもっともさいきんのPenDownイベントで押された基本文字の修正済み（または未修正）バージョンである。例えば、基本文字が「a 」で、「ctrl」および「大文字」変更子が選択されると、出力文字は「＾A 」となる。代わりに、ユーザのマークまたはメニュー選択が、後退またはリターンなどの特殊文字を示す場合、その特殊文字は作成対照の文字であり、押されるキーは無視される。
【０１２１】
最後に、押されたキーは、強調表示されていない、つまり表示装置内でその通常の外観に復元されている（ステップＤＧ）。これにより、イベントのサイクルが完了し、グラフィック・キーボードは、次のPenDown イベントで新しい文字を受け入れる準備ができた。
【０１２２】
６．３  決定変更子
図２７は、どの変更子（または特殊文字）がユーザによって描画される指定のマークに対応するかを決定するためのルーチンのステップをフローチャートで示している。このルーチンは、PenUp イベントの処理の一部として、図２６のステップＤＣで呼び出される。ルーチンは、入力として（例えば、PointList として表される）マークを受け入れ、出力として変更子のセット（おそらく、空のセット）を戻す。
【０１２３】
最初に、マークは、それが認識できる長さであるかどうか、例えば、５ミリメートルのような試験値より長いかどうかを確認するために試験される（ステップＥＡ）。マークが試験値より短い場合には、それは、ユーザが単にキーをタップしたかのように、マークであるとはまったく見なされない。この場合、空のセットが戻される（ステップＥＢ）。
【０１２４】
マークが試験値と同程度の長さであるか、あるいは試験値より長い場合、マークはその明瞭度ポイントを決定するために分析される（ステップＥＣ）。この分析は、図２８に関連して後述されるルーチンに従って実行される。それ以降、明瞭度ポイントは、対応するメニューおよびサブメニューの中心と一致され、選択された修飾子を決定する（ステップＥＤ）。この分析は、図２９に関連して後述されるルーチンに従って実行される。これらの「効果的な」または「視覚的な」メニュー選択に従って、変更子のセットが作成され、出力として戻される（ステップＥＥ）。
【０１２５】
６．４  明瞭度ポイントの決定
一般的に、マークの明瞭度ポイントは、ユーザがメニューまたはサブメニューから選択を示すマークに沿ったポイントである。一般的には、これは、マークの最初の（開始）ポイントおよび最後（終了）ポイント、およびマークが実質上の方向の変更を経るあらゆるポイントを含む。例えば、メニューのかくセクタが４５度を占めるように、放射メニューに８つのアイテムがある場合、角張ったヘディングでの約２２．５度以上の変更は、かなりのものと考えられる。かなりの角度の変更は、マークがノイズとジッタに関してフィルタされてから、決定される。
【０１２６】
より具体的には、マークの明瞭度ポイントは、そのフローチャートが図２７に表示されるルーチンに従った１つの実施例で決定される。この実施例ではGetArticulationPoints と呼ばれるこのルーチンは、図２７のステップＥＣで呼び出される。ルーチンは、入力として現在のマークのPointList （入力PointList ）を受け入れ、明瞭度ポイントだけしか含まない別のPointList （出力PointList ）を出力する。
【０１２７】
ルーチンの開始時に、入力PointList は、ユーザが、マークを描画しながらかなり休止したかどうか、およびどこで休止したかを判断するために調べられる。これは、例えば、その間で、経過時間が０．５秒などの指定遅延時間以上のポイントの組を探すことによって実行できる（一般的には、ここで遅延時間に使用される値は、PenStillイベントをトリガするのに使用される遅延時間に使用される値より少ない）。
【０１２８】
少なくとも２つの休止ポイントが発見される場合（ステップＦＢ）に、マークの開始ポイントが休止ポイントに含まれていないと、それは出力PointList に加えられる（ステップＦＣ）。したがって、休止ポイントは、明瞭度ポイントであると解釈される祖励行の分析なしで、入力PointList でのその外観の順序で出力PointList の最後に対かされる（ステップＦＤ）。それから、マークの終了ポイントが、出力PointList の最後に追加される（ステップＦＥ）。これでルーチンが完了する。
【０１２９】
発見される休止ポイントが２つ以下の場合、入力PointList がさらに分析される。まず、PointList のデータがある種の不正確さおよび人工品を取り除くために前処理される。ペンが最終的に表示画面から持ち上げられた（ステップＦＧ）ときに発生する不正確さのように、特に、ペンが最初に表示装置に触れたときに発生する不正確さは取り除かれる（ステップＦＦ）。また、ペン・ジッタによる小さな角度の変更は、ろ過して取り除かれる（ステップＦＨ）。
【０１３０】
PointList は、このようにして「クリーンアップ」されてから、マークが重要な角度を形成するポイント−−つまり、メニューが表示されていたならメニュー選択が行われるのに十分なほどペンの移動の方向が変更するポイントを検知するために探索される。例えば、これは、φの値がしきい値角度を越えるポイントを見つけだすことにより、実行可能である（ステップＦＪ）。しきい値角度は、一般的に、メニュー選択肢の数に依存する。例えば、図１４の例で図解されるメニューの場合のように、マーキング・メニューが８つの選択肢をサポートすると、約２２．５度以上の角度変化は、かなりであると考えられ、しきい値角度は２２．５度にセットできる。図１５の例で図解されるメニューの場合のように、メニューが４つの選択肢しかサポートしない場合には、しきい値角度は４５度にセットできる。
【０１３１】
かなりの角度変化が検知されない場合（ステップＦＫ）、マークの最初のポイントと最後のポイントが明瞭度ポイントとして戻される出力PointList に格納される（ステップＦＬ）ように、マークは直線であると見なされる。それ以外では、１つ以上のかなりの角度変化が検知されると、最初のポイント、最後のポイント、および最大角度変化のポイントまたは複数のポイントが明瞭度ポイントとして戻される出力PointList に格納される（ステップＦＭ）ように、マークは１つまたは複数の角度を含むと見なされる。これで、ルーチンが完了する。
【０１３２】
６．５  明瞭度ポイントを対応するメニューと一致させる
一般的に、いったん明瞭度ポイントが見つかると、適切なメニューおよびサブメニュー（複数の場合がある）がマークの明瞭度ポイントで表示されるように、マークは、システムがメニュー・モードにあり、ユーザが各明瞭度ポイントを休止したかのように解釈される。より具体的には、ある実施例では、そのフローチャートが図２８に表示されるルーチンが明瞭度ポイントを解釈するために使用される。この実施例ではArticulationPointsToMenuItems と呼ばれるこのルーチンは、図２６のステップＥＤで呼び出される。
【０１３３】
ArticulationPointsToMenuItems は、入力として、図２６のステップＥＣで呼び出されるGetArticulationPoints ルーチンからの出力PointList として戻された現在のマークの明瞭度ポイントを含むPointList 、および表示可能なメニューおよびサブメニューの階層を記述するＭＭデータ構造の階層も受け入れる。ルーチンは、適切な選択されたアイテムで、変更子のセットを表すＭＭ階層を出力する。
【０１３４】
ルーチンは、現在のメニューとなる、ＭＭ階層からいちばん上のメニューを選択することにより開始する（ステップＧＡ）。それ以降、ルーチンは、メニューの階層が尽きるか、明瞭度ポイントのリストが尽きるか、どちらか先に起こるまで、ループする。
【０１３５】
特に、ループは次のように進行する。最後のポイント以外のPointList 内での明瞭度ポイントのそれぞれに（ステップＧＢ）、対応するメニュー選択が決定される（ステップＧＣ）。これは、現在のメニューが現在の明瞭度ポイントでセンタリングされ、ペンがPointList の次の明瞭度ポイントの位置で位置づけられると、選択されるメニュー・アイテムである。メニュー選択は、現在のメニューを表すＭＭデータ構造の内容に適切な修正を加えることにより、現在のメニューの「選択済みアイテム」として記憶される（ステップＧＤ）。それから、選択されたメニュー・アイテムにそれに対応するサブメニューがあるかどうかを判断するために試験が行われる。選択済みのアイテムにサブメニューがない場合（ステップＧＥ）、メニュー階層が尽き、ルーチンが完了する。それ以外の場合、サブメニューは新しい現在のメニューとして解釈され（ステップＧＧ）、最後のポイント以外のすべての明瞭度ポイントが処理されるまで（ステップＧＨ）、ループが繰り返される。それから、ルーチンは完了する。このルーチンから戻ると、ＭＭデータ構造の階層は、選択済みメニュー・アイテムのセット、したがって図２６のステップＥＥで作成され、戻されるる変更子のセットを反映する。
【０１３６】
６．６  文字を作成するためのイベント・シーケンスの使用
ユーザの動作によってトリガされるイベントのシーケンスにより、グラフィック・キーボードは文字を作成する。例えば、ユーザが「a 」などの小文字の入力を希望する場合、ユーザはキーボード・イメージの希望のキーのうえでペンをタップする。これで、イベントのシーケンスが立ち上がる（PenDown 、PenUp ）。このイベント・シーケンスによって、代わりに、これらのイベントに対応するステップが、図２１のフローチャートの論理に従って実行される。特に、PenDown イベントが発生すると、プロセッサ５は、キー２６のどのキーが押されているかを判断し、そのキーを表示画面２２で強調表示させ、モードをマーキングにセットし、ペン１０の位置をセーブする。それ以降、PenUp イベントが発生すると、プロセッサ５は、モードがマーキングであると判断する。マークは作成されず、変更子が適用されなかったので、プロセッサ５は、単に表示画面２７でキーの強調表示を解除し、キーに対応する未収性の文字を文字バッファ３０内に格納する。
【０１３７】
メニューを表示させずに、「A 」、「＾a 」、または「＾A 」などの修正済みの文字を入力するには、ユーザはペンを希望のキーにタッチさせ、ペンをドラッギングして希望のマークを作成してから、ペンを持ち上げる。これによって、イベントのシーケンスが立ち上がり（PenDown 、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenUp ）、適切な関連付けられたステップが実行される。特に、PenDown イベントが発生すると、プロセッサ５は、キー２６の度のキーが押されているかを判断し、ペン１０の位置をセーブする。それ以降、PenDrag イベントが発生すると、プロセッサ５は、モードがマーキングであると判断し、ペン１０の現在の位置をセーブし、画面２２上に表示されるインクの軌跡を更新する。それ以降、PenUp イベントが発生すると、プロセッサ５は、モードがマーキングであると判断し、画面２２の表示からインクの軌跡を消去し、どの１つまたは複数の変更子がマークの明瞭度ポイントに従って選択されたのかを判断する。また、プロセッサ５は、表示画面２２でキーの強調表示を解除し、キーに対応する修正済み文字を文字バッファ３０の中に格納する。
【０１３８】
同様に、メニューを表示しなくても、後退またはリターンなどの斜線マークによって表される頻繁に使用される文字を作成するには、ユーザはペンを任意のキーにタッチし、ペンをドラッギングし、希望のマークを作成してから、ペンを持ち上げる。再び、これでイベントのシーケンス（PenDown 、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenUp ）が立ち上がり、適切な関連付けられたステップを実行させる。
【０１３９】
「A 」または「＾a 」などの単一の変更子がある文字を入力するためにメニューを使用するには、ユーザはペンを希望のキーにタッチさせ、メニューが表示されるのに十分な時間（例えば、０．３秒間）それをそこで保持する。ユーザは、ペンをドラッギングして希望のメニュー選択を行ってから、ペンを持ち上げる。これにより、イベントのシーケンス（PenDown 、PenStill、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenUp ）が立ち上がり、適切な関連ステップが実行される。同様に、表示メニューを使用して、後退またはリターンなどの斜線マークによって表される頻繁に使用される文字を作成するには、ユーザは、ペンを任意のキーにタッチし、それを、メニューが表示されるまで静かに保持し、ペンをドラッギングすることにより希望のメニュー選択を行ってから、ペンを保ちAが得る。ここでも、これにより、イベントのシーケンス（PenDown 、PenStill、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenUp ）が立ち上がり、適切な関連付けられたステップが実行される。
【０１４０】
「＾A 」などの二重変更子を持つ文字を入力するためにメニューを使用する場合は、ユーザはペンを希望のキーにタッチし、それを、メニューが表示されるまでそこで保持し、希望の選択を行い、ペンを再び次のメニューが表示されるまで保持し、希望の選択を行い、ペンを持ち上げる。これにより、イベントのシーケンス（PenDown 、PenStill、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenStill、PenDrag 、PenDrag...PenDrag 、PenUp ）が立ち上がり、適切な関連付けられるステップが実行される。同様に、ユーザは、ドラッギングを続けることによりメニューを使用してさらに変更子を加えてから、必要に応じてペンを静かに保持することができる。したがって、「コマンド−オプション-A」などの三重に修正された文字を入力するためにメニューを使用する場合は、ユーザはペンを希望のキーにタッチさせ、それを、メニューが表示されるまでそこで保持し、希望の選択を行い、次のメニューが表示されるまで、再びペンを静かに保持し、希望の選択を行い、ペンを持ち上げる。これにより、イベントのシーケンス（PenDown 、PenStill、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenStill、PenDrag 、PenDrag 、PenDrag...PenDrag 、PenStill、PenUp ）が立ち上がり、適切な関連付けられるステップが実行される。
【０１４１】
また、ユーザは、複合変更子を表すマークを作成する過程でメニュー表示を取得するために、マーキング・メニューのマーク確認機能を使用することもできる。例えば、ユーザがペンをキーにタッチし、（実質上、方向の変更の間休止せずに）ペンを右にドラッギングしてから、上向きでドラッギングしてから、ペンを画面から持ち上げずにペンを静かに保持すると、それ以降、右向きのマークのメニューおよび上向きのマークのサブメニューの両方が表示される。この例のイベントのシーケンスは（PenDown 、PenDrag 、PenDrag...PenDrag 、PenDrag 、PenStill）である。再び、適切な関連付けられたステップが実行される。
【０１４２】
それ以外のイベントの組み合わせはいくつかの実施例でサポートすることができる。例えば、いくつかの実施例では、修飾子が、斜線ストロークによって作成される文字に適用することができる。
【０１４３】
７．ソフトウェアの説明
本発明の現在の実施例は、デジタル・コンピュータ上のソフトウェアで実現される。付録（参考資料）は、この実施例の実現のためのソフトウェア・プログラム用ソース・コードを提供する。実施例は、一重に修飾された文字をサポートする。ソース・コード（未出版の研究、著作権、１９９３ゼロックス社）は、単一ソース・コード・ファイルを含む。それは、アップル・マッキントッシュ・ファミリのコンピュータ用のハイパーカード記述言語で作成される。当業者は、幅広い範囲のプログラミング言語およびハードウェア構成が、本発明の範囲を逸脱することなく、本開示に基づいて容易に使用できることを理解するであろう。
【０１４４】
８．結論
本発明は、英数字データなどのコマンドおよびデータを、グラフィック・キーボードを使用してペン・ベース・コンピュータに正確かつ効率的に入力できるようにする単純かつ実現が容易な技法を提供する。グラフィック・キーボードを使用すると、ユーザは、キーボード入力の既存の知識を利用することができる。ストロークおよびマーキング・メニューを使用すると、入力が加速される。マーキング・メニューの自然に表される性質のために、これらのアクセレレータは、初心者にアクセス可能である。これらは、また、例えば、より多様なコマンドを持つさらに大きなメニューがグラフィック・キーボードに対するソフトウェア更新の一部としてインストールされる場合に、ときどきメニューに再度慣れることを必要とする経験豊富なユーザにとっても貴重である。
【０１４５】
本発明およびグラフィック・キーボードは、既存のグラフィック・キーボードより優れた改良された使いやすさを提供する。例えば、本発明のグラフィック・キーボードにはモードがない。以前のグラフィック・キーボードでは、変更子キーをタップすると、明示的にリリースされなければならないモード（例えば、シフト・モード）がセットされた。この不便さとぎこちなさは、本発明では回避されている。さらに、スペースおよび削除などの変更子キーおよびある種のコマンド・キーは明示的に表す必要がないので、本発明のグラフィック・キーボードは、以前のグラフィック・キーボードより画面表示サイズという点で小型にできる。さらに、本発明のグラフィック・キーボードを使用すると、ユーザは「感覚で」進むことができる−−つまり、複数の変更子を適用し、ストローク・ベースのコマンドを各ステップごとに表示キーボードを見なくても入力できる。本発明の数多くのそれ以外の優位点は、当業者には明かであろう。
【０１４６】
本発明は、大部分のペン・ベースのおよびスタイラス・ベースの計算システムに関連する。特に、本発明は、それ自体既存のアプリケーションへの容易な変更に使用される。このような変更に必要となるのは、コンピュータ・システムが標準機械テキストキーボードに同等なものと見なすモジュールを構築することだけである。
【０１４７】
本発明は、特定の実施例に関連して説明された。それ以外の実施例は、本発明の精神および範囲から逸脱することなく考えられる。例えば、マークによって修正される基本文字は、マークの開始ポイントではなく、終了ポイント荷したがって指定することができる。マークは、また、キー指定から分離することもできる。例えば、ユーザは、画面へのタップのあるキーを示してから、別個にマークを描画する。二重タップのような異なった種類のストローク（マウス・ボタンの「ダブルクリック」に類似した、迅速に続くスタイラスの２回のタップ）を、本発明とともに使用することもできる。同様に、ペンの圧力または速度は、コマンド情報をコード化するのに使用することができる。フォント・サイズ・コマンドなどの異なった種類のコマンドを実現することができる。代替メニュー・レイアウトは、ポップアップ・メニューに使用できる。メニューは、階層で編成される必要はない。異なった種類のグラフィック・キーボードおよびキーボード・レイアウトを使用することができる。さらに、本発明は、ペン・ベースと通常考えられるシステム以外のシステムでも使用できる。特に、本発明は、指、マウス、レーザ・ビーム、またはペンに類似した無数のそれ以外の計器のいずれか１つが、文字を入力するために機械的なキーボードの代わりに使用されるシステムでアプリケーションを見つける。さらに、バリエーションおよび拡張は、本発明の範囲内で当業者には明かであろう。したがって、本発明を、付録の請求項によって示される以外に、制限することは意図されていない。
【図面の簡単な説明】
【０１４８】
【図１】サンプルのグラフィック・キーボードを図解する。
【図２】本発明のグラフィック・キーボードのキーをタップすることにより、どのように小文字が入力できるのかを図によって説明する。
【図３】本発明のグラフィック・キーボードのキー上での上向きのストロークによってどのように大文字を入力できるのかを図によって説明する。
【図４】その特定のストロークの方向によって各変更子をどのように区別できるのかを図によって説明する。
【図５】変更子の組み合わせ方の例を図で示す。
【図６】ある種の頻繁に使用されるキーをどのようにして斜線のストロークとして表現できるのかの例を図によって示す。
【図７】グラフィック・キーボードのキーをタップすることにより、ユーザが小文字を入力する図のシリーズである。
【図８】グラフィック・キーボードのキー上で上向きのストロークを作成することにより、ユーザが 大文字を入力する図のシリーズである。
【図９】グラフィック・キーボードのキーの上で右方向のストロークを作成することにより、ユーザがコントロール・キーを入力する図のシリーズである。
【図１０】グラフィック・キーボードのキー上で右向き−上向きの複合ストロークを作成することにより、ユーザがコントロール大文字を入力する図のシリーズである。
【図１１】マーキング・メニューから選択する２つのモードを説明する。
【図１２】放射メニュー階層およびそれから選択するマークの例である。
【図１３】マーク確認の例である。
【図１４】８つのストローク方向のストローク語彙を表すポップアップ・メニューを図で説明する。
【図１５】ユーザがマーキング・メニューを提示され、それから選択する図のシリーズである。
【図１６】本発明のコンテキストで変更子を組み合わせるために使用されるマーキング・メニューの例を示す図のシリーズである。
【図１７】どのようにして８方向のマーキング・メニューが本発明のグラフィック・キーボードと使用できるのかを示す図のシリーズである。
【図１８】本発明を実施するのに適当なペン・ベース・システムを図解する。
【図１９】表示画面および入力センサが切り放されている代替ペン・ベース・システムを図解する。
【図２０】追加キーボード・イメージが追加された入力センサを図解する。
【図２１】本発明を実施するのに適当なマウス・ベース・システムを図解する。
【図２２】マーキング・メニューを取り入れる本発明の実施例に従って、イベントに対応するためのステップのフローチャートである。
【図２３】PenDown イベントを処理するためのステップのフローチャートである。
【図２４】PenDrag イベントを処理するためのステップのフローチャートである。
【図２５】PenStillイベントを処理するためのステップのフローチャートである。
【図２６】PenUp イベントを処理すするためのステップのフローチャートである。
【図２７】マークに対応する変更子を決定するためのステップのフローチャートである。
【図２８】マークにそった明瞭度ポイントを決定するためのステップのフローチャートである。
【図２９】マークにそった明瞭度ポイントを対応するメニューの中心と一致させるためのステップのフローチャートである。
【図１】
2004206731.tif 000003
【図２】
2004206731.tif 000004
【図３】
2004206731.tif 000005
【図４】
2004206731.tif 000006
【図５】
2004206731.tif 000007
【図６】
2004206731.tif 000008
【図７】
2004206731.tif 000009
【図８】
2004206731.tif 000010
【図９】
2004206731.tif 000011
【図１０】
2004206731.tif 000012
【図１１】
2004206731.tif 000013
【図１２】
2004206731.tif 000014
【図１３】
2004206731.tif 000015
【図１４】
2004206731.tif 000016
【図１５】
2004206731.tif 000017
【図１６】
2004206731.tif 000018
【図１７】
2004206731.tif 000019
【図１８】
2004206731.tif 000020
【図１９】
2004206731.tif 000021
【図２０】
2004206731.tif 000022
【図２１】
2004206731.tif 000023
【図２２】
2004206731.tif 000024
【図２３】
2004206731.tif 000025
【図２４】
2004206731.tif 000026
【図２５】
2004206731.tif 000027
【図２６】
2004206731.tif 000028
【図２７】
2004206731.tif 000029
【図２８】
2004206731.tif 000030
【図２９】
2004206731.tif 000031