説明

自動テキスト生成

ユーザインターフェース(205)上での作成者(201)のアクションに基づいてテキスト文書(235、245)を自動生成するテキストジェネレータ(200)。テキスト文書(235)を生成するために、作成者(201)は、記録コンポーネント(210)をアクティブ化する。記録コンポーネント(201)は、ユーザインターフェース(205)上での作成者のアクションを記録する。記録されたアクションに基づいて、テキスト生成コンポーネント(230)は、テキストデータベース(220)を検索し、作成者の記録済みアクションに合致するエントリを識別する。次いで、このテキストは結合されてテキスト文書(235)が形成され、このテキスト文書(235)は、命令または他の情報をユーザに提供する。テキスト文書(235、245)の生成プロセス中、文書(235、245)の分かりやすさを高めるなどのために、必要に応じてエディタ(240)を使用して、テキストを編集することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキストの生成に関する。より詳細には、本発明は、ユーザインターフェース上でのユーザのアクションを示すテキストを自動生成することに関する。
【背景技術】
【0002】
コンピュータとの自然言語/音声ベースの対話を可能にする試みがいくつかなされてきた。これらの試みの結果は、今までのところ限られている。これは、技術の不完全さと、押し付けがましくないマイクロホンインフラストラクチャの欠如(lack of non-intrusive microphone infrastructure)と、高いオーサリングコストと、固定化した顧客挙動と、グラフィカルユーザインターフェース(GUI:Graphical User Interface)の形態における競合相手とが組み合わさった結果であるが、GUIは、多くのタスクに対して、高い価値をもたらす。本発明は、これらの制限のうちの2つ、すなわち、GUIとのより密接な統合、およびオーサリングコストの削減に重点を置いている。
【0003】
GUIは、広く使用されているインターフェース機構である。GUIは、位置決定タスク(例えば、矩形のサイズを変更する)、視覚上の修正タスク(例えば、言葉では言い表せないわずかな青みを何かに与える)、または選択タスク(例えば、100個の画像のうちで回転させたいのは、この1つである)に対して非常に優れている。GUIはまた、1つの迅速なステップの機能に即時にアクセスすることに対しても優れている。アプリケーションGUIは、タスク指向の観点(例えば、「自分のコンピュータをハッカーに対して安全にする」など、ユーザが行いたいより高レベルのタスクによる体系化)ではなく、機能的な観点から体系化された(例えば、メニューやツールバーなどに体系化された)、有用なツールボックスである。
【0004】
しかしながら、GUIは、多くの問題もユーザに与える。ツールボックスを例にとると、ユーザは、ボックス内にツールを見つけること、または、タスクを完了させるためにツールをどのように使用するかを理解することが難しい。単語と、小さなボタンと、わかりにくい階層にならざるを得ないタブとによって表されたインターフェースは、人々が自分のタスクについて考える方法には適していない。GUIでは、ユーザは、タスクを完了するのにどのような要素が必要かを決定するために、タスクを分解する必要がある。この分解の必要性は、複雑さをもたらす。複雑さの問題だけでなく、GUI要素(すなわち、メニュークリック、ダイアログクリックなど)を組み立てるには時間を要する。これは、熟練したユーザにとってさえも非効率的であり、時間がかかる可能性がある。
【0005】
GUIの問題に対処するための既存の機構の1つは、文書によるヘルプ手順である。ヘルプ手順はしばしば、ヘルプ文書、製品サポートサービス(PSS:Product Support Service)知識ベース(KB:Knowledge Base)記事、およびニュースグループ投稿の形をとり、これらは、顧客ニーズとGUIの問題との間のギャップをうめる。これらは、ツールボックスに付属するマニュアルに似ており、多くの利点を有する。これらの利点には、例えば以下のものが含まれる。
【0006】
1)非専門の作成者にとってもオーサリングが比較的容易である。
【0007】
2)サーバ上で更新しやすので、接続ユーザは、新しいコンテンツに容易にアクセスすることができる。
【0008】
3)GUIを教えることにより、ユーザが問題解決を管理できるようにする。
【0009】
しかしながら、ヘルプ文書、PSS KB記事、およびニュースグループには、それら自体の1組の問題がある。これらの問題には、例えば以下のものが含まれる。
【0010】
1)複雑なタスクは、ユーザ側で非常に多くの処理を必要とする。ユーザは、各ステップにおいて説明されることからGUIへマッピングする必要がある。
【0011】
2)トラブルシュータ、さらには手順のヘルプ文書でさえ、ヘルプトピック内に複雑な分岐をもたらす状態情報(state information)をしばしば含む。それによりトピックは長くなり、ユーザにとって読みにくく処理しにくいものとなる。ツールバーが見えなくなっている場合があり、次のステップを行えるようになる前に、ツールバーをオンにすることが必要な場合がある。トラブルシュータはしばしば、状態に関する質問をするが、(トラブルシュータ自身で回答を見つけることができるべきものなので、)どんなに良くてももどかしいものであり、最悪の場合は専門外の者には答えられないものである。
【0012】
3)何百万もの文書があり、回答の検索には、どこから検索を開始するかという問題、および、次いで何千もの返答からどのように最良の検索結果を選ぶかという問題の両方を伴う。
【0013】
4)共有オーサリング構造がない。ニュースグループ投稿、KB記事、トラブルシュータ、および手順のヘルプ文書はすべて、異なる構造およびオーサリング方法を有しているにもかかわらず、これらはすべて同様の問題を解決しようとする。
【0014】
GUIの問題に対処するための別の既存の機構は、ウィザードである。ウィザードは、GUIおよび文書によるヘルプ手順の弱点に対処するために生み出された。今や何千ものウィザードがあり、これらのウィザードは、製造されているほとんどすべてのソフトウェア製品において見ることができる。これは、ウィザードが、既存のテキストベースのヘルプおよび補助により現在対処されていない真の必要性を解決するからである。ウィザードは、ユーザがタスク指向の方法で機能にアクセスできるようにし、GUIまたはツールを自動的に組み立てることができる。ウィザードは、顧客タスクに対処する手段をプログラム管理者および開発者に提供する。ウィザードは、タスクの成功に向けて必要なステップをユーザに進ませる、ボックス内の専門家のようなものである。いくつかのウィザードは、顧客がシステムを設定するのを助け(例えば、設定ウィザード)、いくつかのウィザードは、機能付きコンテンツを含み、顧客がコンテンツを作成するのを助け(例えば、NewsletterウィザードやPowerPoint(登録商標)のAutoContentウィザード)、いくつかのウィザードは、顧客が問題を突き止めて解決するのを助ける(例えば、トラブルシュータ)。
【0015】
ウィザードは、多くの利点をユーザに提供する。ウィザードの利点のいくつかは以下のとおりである。
【0016】
1)ウィザードには「タスク」の概念を組み入れることができる。通常、ユーザには、ユーザが達成しようとするどんなことをウィザードが助けているかがはっきりしている。順を追ったページにより、ユーザは容易に選択を行うことができ、うまく設計されたウィザードの場合、ユーザが視覚的に困惑することが生じることが、しばしば少なくなる。
【0017】
2)ウィザードは、自動的にソフトウェアの基礎をなす機能を組み立てて、その機能と対話することができ、ウィザードには、顧客が選択を行うのに必要な情報または専門知識を含めることができる。これにより、ユーザがタスクを実行する時間が低減する。
【0018】
3)ウィザードは、コンテンツを自動生成することができる。また、ウィザードは、テキストを作成しレイアウトを計画することによって、ユーザの時間を低減させることができる。
【0019】
4)ウィザードはまた、質問し、返答を得て、最も関連のある次の質問または機能に分岐するための優れた手段でもある。
【0020】
しかしながら、ウィザードもまた、それら自体の1組の問題を有する。これらの問題のいくつかには、人々が達成しようとするタスクの方が、そのタスクを達成するためのウィザードよりも多いということが含まれる。ウィザードおよびインダクティブユーザインターフェース(IUI:Inductive User Interface)は、基礎をなすGUIをどのように使用するかを顧客に教えることはせず、ウィザードが完了したときに、ユーザは、次にどこに進むべきか確信が持てないことが多い。ウィザードをオーサリングするコストは今もなお高く、ウィザードをオーサリングする技術的な専門知識を有する人員(例えば、ソフトウェア開発者)を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【0021】
本発明は、ウィザード、ヘルプ、知識ベース記事、およびトラブルシュータの問題のいくつかに対処するが、これは、何千ものタスク(またはウィザード)をオーサリングし、GUIと統合して、GUIをどのように使用してタスクを実行するかをユーザに教えるため、またはユーザに代わってタスクを実行するための容易な方法を可能にするコンテンツウィザードを提供することによって対処する。詳細には、本発明は、アクティブコンテンツウィザード(ACW:Active Content Wizard)スクリプトをオーサリングすること、特に、ACWスクリプトの一部であるテキストをオーサリングすることに関する。
【課題を解決するための手段】
【0022】
本発明は、ユーザインターフェース上での作成者のアクションに基づいて、テキスト文書を自動生成するためのシステムに関する。テキスト文書を生成するために、作成者は記録コンポーネントをアクティブ化する。記録コンポーネントは、ユーザインターフェース上での作成者のアクションを記録する。記録コンポーネントは、記録されたアクションをテキスト生成コンポーネントに渡す。テキスト生成コンポーネントは、記録されたアクション(ユーザインターフェースコントロールボタンおよび作成者アクションを含む)のプロパティに基づいて、テキストデータベースを検索し、作成者の記録済みアクションに合致するエントリを識別する。このテキストジェネレータは、システムのルールに基づいて、このテキストを生成することができる。次いで、このテキストが結合されてテキスト文書が形成され、このテキスト文書は、命令または他の情報をユーザに提供する。テキスト文書の生成プロセス中、またはその後、エディタを使用してテキストを編集して、文書の分かりやすさを高めることができる。
【発明を実施するための最良の形態】
【0023】
本発明は、ユーザインターフェース上でのユーザのアクションに基づいて、テキストを自動生成することに関する。本発明をより詳細に説明する前に、本発明を使用することができる例示的な一環境について説明する。
【0024】
図1は、本発明を実施することができる適切なコンピューティングシステム環境100の例を示している。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関して、何らの限定を意味するものでもない。またコンピューティング環境100は、この例示的な動作環境100に示すコンポーネントのいずれか1つ、またはコンポーネントの組合せに関して、いかなる依存関係や要件を有するとも解釈されるべきではない。
【0025】
本発明は、その他の多くの汎用もしくは専用コンピューティングシステム環境、またはコンピューティングシステム構成において動作する。本発明と共に使用するのに適する周知のコンピューティングシステム、コンピューティングシステム環境、および/またはコンピューティングシステム構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
【0026】
本発明は、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、タスクは、通信ネットワークを介して接続されたリモート処理デバイスによって実行される。また、分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【0027】
図1を参照すると、本発明を実施するための例示的なシステムには、コンピュータ110の形態の汎用コンピューティングデバイスが含まれる。コンピュータ110のコンポーネントには、処理ユニット120と、システムメモリ130と、システムメモリなどの様々なシステムコンポーネントを処理ユニット120に接続するシステムバス121とを含めることができるが、これらに限定されるものではない。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなど、いくつかのタイプのバス構造のいずれかとすることができる。例えば、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、および、メザニンバスとしても知られているPCI(Peripheral Component Interconnect)バスが含まれるが、これらに限定されるものではない。
【0028】
コンピュータ110は通常、様々なコンピュータ読取り可能な媒体を備える。コンピュータ読取り可能な媒体は、コンピュータ110がアクセスできる任意の利用可能な媒体とすることができ、コンピュータ読取り可能な媒体には、揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体の両方が含まれる。例えば、コンピュータ読取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。コンピュータ記憶媒体には、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術を用いて実装された、揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体の両方が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD:Digital Versatile Disk)、もしくはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶デバイスが含まれ、または、所望の情報を記憶するのに使用できコンピュータ110がアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は通常、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの被変調データ信号に組み入れるものであり、通信媒体には、任意の情報伝達媒体が含まれる。「被変調データ信号」という用語は、信号内の情報が符号化される形で1つまたは複数の特性が設定または変更される信号を意味する。例えば、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、およびその他の無線媒体などの無線媒体とが含まれる。これらの任意の組合せも、コンピュータ読取り可能な媒体の範囲に含まれるべきである。
【0029】
システムメモリ130には、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性メモリおよび/または不揮発性メモリの形態のコンピュータ記憶媒体が含まれる。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(Basic Input/Output System)133が記憶されている。RAM132には通常、処理ユニット120がすぐにアクセスすることができ、かつ/または処理ユニット120が現在処理している、データおよび/またはプログラムモジュールが含まれる。例えば、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137が示されているが、これらに限定されるものではない。
【0030】
コンピュータ110は、その他の取外し可能/取外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。一例として、図1には、取外し不可能な不揮発性磁気媒体に対して読み書きするハードディスクドライブ141と、取外し可能な不揮発性磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD ROMやその他の光媒体などの取外し可能な不揮発性光ディスク156に対して読み書きする光ディスクドライブ155が示されている。この例示的な動作環境において使用できるその他の取外し可能/取外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ141は通常、インターフェース140などの取外し不可能なメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェース150などの取外し可能なメモリインターフェースを介してシステムバス121に接続される。
【0031】
図1に示して上述したドライブ群、およびそれらに関連するコンピュータ記憶媒体は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ110に提供する。例えば図1には、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同一とすることもできるし、または、異なるものとすることもできることに留意されたい。図1では、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が少なくとも異なるコピーであることを示すために、それらには異なる番号を付している。
【0032】
ユーザは、キーボード162、マイクロホン163、およびポインティングデバイス161(マウス、トラックボール、タッチパッドなど)などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバスに接続されたユーザ入力インターフェース160を介して、処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB:Universal Serial Bus)など、その他のインターフェースおよびバス構造を介して接続されてもよい。モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介して、システムバス121に接続される。コンピュータは、モニタに加えて、スピーカ197やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは、出力周辺インターフェース195を介して接続することができる。
【0033】
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、通常は、コンピュータ110に関して上述した要素の多くまたはすべてを備える。図1に示す論理接続には、ローカルエリアネットワーク(LAN:Local Area Network)171およびワイドエリアネットワーク(WAN:Wide Area Network)173が含まれるが、その他のネットワークも含めることができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【0034】
LANネットワーキング環境において使用される場合、コンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用される場合、コンピュータ110は通常、インターネットなどのWAN173を介した通信を確立するためのモデム172またはその他の手段を備える。モデム172は、内蔵型でも外付け型でもよく、ユーザ入力インターフェース160、またはその他の適切な機構を介して、システムバス121に接続することができる。ネットワーク環境では、コンピュータ110と関連させて示したプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに記憶することができる。例えば、図1には、リモートアプリケーションプログラム185がリモートコンピュータ180に存在するものとして示されているが、これに限定されるものではない。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段も使用できることを理解されたい。
【0035】
図2は、本発明の一実施形態にしたがう自動テキスト生成システム200のコンポーネントを示すブロック図である。テキスト生成システム200は、記録部207およびテキスト生成部203を備える。記録部207は、記録コンポーネント210、フックコンポーネント212、およびユーザインターフェース(UI)自動化コンポーネント214を含む。任意的に、画像取り込みコンポーネントが含まれてもよい。テキスト生成部203は、テキストデータベース220およびテキスト生成コンポーネント230を含む。テキスト生成システム200は、ユーザインターフェース205と対話する。作成者は、システム200のコンポーネントを構成して、ユーザインターフェース205のコントロールボタン(control)に対するアクションを自動的に記録させ、こうしたアクションを記述するテキスト235を自動的に生成させることができる。作成者201はまた、自動生成されたテキスト235を編集して、タスク(またはUI制御アクション)を記述する最終テキスト245を得ることができる。次に、図2のいくつかのコンポーネントについて、より詳細に説明する。
【0036】
一実施形態では、ユーザインターフェース205は、ユーザがタスクを実行するためのアクションを行えるようにするコントロールボタンを備えたグラフィカルユーザインターフェースである。ユーザインターフェース205は、図1に示したディスプレイデバイス191上に表示される。グラフィカルユーザインターフェース(GUI)は、広く使用されているインターフェース機構である。
【0037】
図3は、本発明と共に使用できるGUIの一例を示すスクリーンショットである。この例では、GUIは、背景部分(図示せず)とウィンドウ部分300とに分割されており、一連のコントロールボタン310を含む。コントロールボタン310には、例えば、リストボックス、ボタン、タブ、ツリーコントロールボタン、およびリストビューアイテムを含めることができる。しかしながら、その他のタイプのコントロールボタンがGUI内にあってもよく、図示および列挙したコントロールボタンは例示的なものにすぎない。ウィンドウ部分300はさらに、ツールバー部分320とアプリケーション部分325とに分割される。ツールバー部分320は、メニュー322に構成された一連のタスクを有し、ユーザは、関連するアプリケーションの通常の操作中に、メニュー322を選択することができる。これらのメニューアイテムにはさらに、プルダウンメニューまたはオプションを含めることができる。これらのメニューアイテムにより、別のウィンドウ/GUIをスクリーン上にポップアップさせることもできる。
【0038】
一実施形態では、記録コンポーネント210は、作成者201または別のユーザがユーザインターフェース205上でタスクを実行できるようにするアプリケーションプログラムであり、タスクを記録するものである。作成者201が、ユーザインターフェース205上でタスクに関連するステップを実行している間、記録コンポーネント210は、作成者がユーザインターフェース205上でどのようなコントロールボタンおよびウィンドウと対話するかに関する情報を記録する。この情報が、テキストジェネレータ230に提供されて、ヘルプ文書などの文書中のテキストが生成される。
【0039】
記録コンポーネント210は、フック212およびユーザインターフェース(UI)自動化コンポーネント214を介して、ユーザインターフェース205と対話する。これらのコンポーネントは、記録コンポーネント210と別々のものとすることができるし、または、いくつかの実施形態では、記録コンポーネント210と統合することができる。
【0040】
一実施形態では、フックコンポーネント212は、コンピュータによって使用されるオペレーティングシステム内のモジュールまたはコンポーネントである。例えば、フックがマウスクリックに対して設定されている場合、マウスクリックはフックコンポーネント212に転送されて、そこに取り込まれ、記録コンポーネント210により記録された後で、マウスクリックを受け取るために登録している、コンピュータ内の他のコンポーネントのために再生される。したがって、一般にフックコンポーネント212は、オペレーティングシステムと、対象とするアプリケーションとの間のバッファとして動作する。フックコンポーネント212は、例えばシングルクリック、ダブルクリック、右クリックまたは左クリック、キーボードアクションなど、受け取られる信号のタイプなどの、ほとんどすべての入力アクションを待ち受けるように構成することができる。アクションを表す情報が記録コンポーネント210により記録されると、マウスクリック(または、記録された他の何らかのアクション)を表す情報は、フックコンポーネント212により、アプリケーションに対して再生される。この理由の1つは、ユーザが、第1アクションが記録される前に、第2アクションを行うかもしれないからである。第2アクションは、ユーザインターフェースの状態を大幅に変更する可能性があるので、第1アクションの記録が不適切になる場合がある。第1アクションを取り込んで、記録の完了後にそれを再生することにより、第1アクションが適切に記録されることが確実になる。
【0041】
フックコンポーネント212により実行される機能(すなわち、マウスクリックを待ち受けて、それを再生すること)は、例えば、別々のスレッドで実行されることにも留意されたい。これにより、すべてのユーザインターフェースアクション(例えば、マウスクリックやキーボードアクションなど)が、どれも失われずに、適切に記録されて再生されることが確実になる。さらに、フックコンポーネント212の記録および再生機構は、オペレーティングシステムに内在するいかなるタイムアウト機能よりも優先され得る。これは、アクションが適切に記録されるようにするにはオペレーティングシステムのタイムアウト期間が短すぎる場合に、必要なものになり得る。
【0042】
ユーザインターフェース自動化コンポーネント214は、例示的には、ユーザインターフェース205を介して作成者またはユーザにより実行されるタスクの原子的なステップ(atomic step)を解釈するように構成されたコンピュータプログラムである。一実施形態では、ユーザインターフェース自動化コンポーネント214は、Microsoft CorporationによるMicrosoft User Interface Automationを使用して実装されたGUI自動化モジュールである。このモジュールは、可視的なユーザインターフェースに関する情報にアクセスして、プログラムによって可視的なユーザインターフェースと対話するための、プログラムによる方法を提供する。しかしながら、システム設定に応じて、ユーザインターフェース自動化コンポーネント214は、グラフィカルユーザインターフェースをプログラムによって操作でき、かつ、ユーザインターフェースにおけるコマンドを実施、実行、および検出できる、任意のアプリケーションを使用して実装することができる。
【0043】
したがって、ユーザインターフェース自動化コンポーネント214は、ユーザインターフェース205上で作成者201(または別のユーザ)によって実行される所望のタスクに関連する各ステップをタスク順に検出する。例えば、ユーザがGUI上のボタンをクリックして新しいメニューまたはウィンドウを表示することをタスクが必要とする場合、UI自動化コンポーネント214は、ユーザインターフェース205上のマウスの場所にどのコントロールボタンが位置するかを判定する。記録コンポーネント210は、フックコンポーネント212からの情報(例えば、どちらのマウスボタンがクリックされたかや、マウスカーソルがユーザインターフェース上のどこにあるか)を、UI自動化コンポーネント214からの情報(例えば、コントロールボタンのタイプ、名前、および状態)と共に使用して、ステップを実行するために作成者によって使用されたコントロールボタンの名前およびプロパティを記録する。ユーザインターフェース自動化コンポーネント214によって判定されたこの情報は、記録コンポーネント210が、ステップを実行するために作成者によって使用されたコントロールボタンのタイプ、名前、および状態を記録できるよう、記録コンポーネント210に提供される。
【0044】
テキスト生成コンポーネント230は、記録プロセス中に実行または実施されたアクションを記述する自然言語テキストを生成するように構成されたプログラムまたはモジュールである。テキスト生成コンポーネント230は、記録コンポーネント210によって記録された記録済み情報を使用して、テキストデータベース220から適切なテンプレートまたはエントリを選択する。
【0045】
テキストデータベース220は、例示的には、テキストジェネレータ230によって検索可能なデータベースまたはその他の情報記憶システムである。テキストデータベース220は、ユーザインターフェース205上で利用可能なコントロールボタンに関連する情報を含む。この情報には、例えば、コントロールボタンの名前、コントロールボタンのタイプ、コントロールボタンに対して実行されるアクション、および、自然言語文であるアクションのテキスト記述を含めることができる。
【0046】
いくつかの実施形態では、エントリに関するテキスト記述は、複数の言語で提供される。テキスト記述が複数の言語で提供される場合、適切な言語が選択されるようにする言語識別子が、各エントリと共に提供される。
【0047】
しかしながら、システムの必要性に応じて、その他の情報をテキストデータベース220に含めることもできる。一実施形態では、テキストデータベース220内のいくつかのエントリは、連続的に実行される複数のコントロールボタンによって具現化される複数のアクションに関連する情報を有する。複数のコントロールボタンに対する複数のアクションが、テキストデータベース220内の単一のエントリによって表される場合、このエントリに関するテキストは、両方のコントロールボタンに対して実行されるアクションの自然言語記述を単一文として含む。2つのコマンドの記述を単一文として結合することにより、最終的なテキスト文書の可読性が向上する。
【0048】
一実施形態では、テキストデータベース220は、拡張マークアップ言語(XML:eXtensible Markup Language)で記述される。各エントリに関するデータは、一連の下位エントリとして記憶することができ、エントリの各下位エントリは、タスクを識別するのに必要な個々の情報を指す。しかしながら、データを記憶するために、その他のフォーマットを使用することもできる。
【0049】
一実施形態では、テキスト生成コンポーネント230は、テキストデータベース220内のエントリを検索するとき、複数の記録済みアクションを見る。これは、より可変性の高いテキスト文書を提供するために行うことができる。例えば、優れた手順文書化はしばしば、可読性の向上のために、複数のステップを単一文に結合する。テキスト生成コンポーネント230が、テキストデータベース220内で記録済み情報に合致するものを複数識別した場合、テキスト生成コンポーネント230は、各エントリをスコア付けすることに基づいてエントリを明確にし、最高スコアを有するエントリを選択するなどにより、任意の既知の方法を使用して、データベース内のどのエントリを選択すべきかを判定することができる。
【0050】
一実施形態にしたがうと、テキスト生成コンポーネント230は、ユーザインターフェース上で作動されたコントロールボタンのタイプと、実行されたアクションとに基づいて、実行されたコントロールボタンのタイプおよびアクションに合致するエントリをテキストデータベース220内で検索する。テキストデータベース220内で合致が識別されると、テキスト生成コンポーネント230は、テキストデータベース220から、関連するアクションの自然言語記述を得て、これを、生成されるテキスト文書235内に文命令として配置する。代替の一実施形態では、テキスト生成コンポーネント220は、UI自動化モジュール214により提供される情報に基づいて、テキスト文書の実行可能ファイルバージョンを生成することもできる。
【0051】
テキスト生成コンポーネントはまた、テキストデータベース235からテキスト記述を選択する際、コントロールボタンの状態を確認する(look to)こともできる。これは、コントロールボタンがチェックボックスである場合、または、展開ツリー(expandable tree)もしくは折り畳みツリー(collapsible tree)である場合に重要である。この場合、目的とする結果に関係なく、コントロールボタンに対するアクションが同じなので、ボックスをクリックするだけでは、アクションを記述するのに適したアクションにならない場合がある。したがって、この場合は、コントロールボタンの新しい状態が、選択されるテキストに影響を及ぼすことになる。例えば、コントロールボタンがチェックボックスであり、これを選択解除する場合、合致するテキストは、コントロールボタンの名前と、コントロールボタンの新しい状態とに基づくことになる。
【0052】
テキストエディタ240は、自動生成されたテキスト235を修正または変更するか、あるいは、このテキストに情報またはテキストを追加するように構成されたエディタである。テキストジェネレータ230によって生成された結果として得られたテキストと、作成者によって実行されたアクションとに応じて、テキストを編集して、その分かりやすさをさらに高めることが必要な場合がある。したがって、テキストエディタ240は、生成されたテキスト235を受け取り、作成者201が生成されたテキストを編集できるようにする。
【0053】
テキスト編集は、例えば、文法上の必要性から必要とされる場合がある。あるいは、テキスト編集は、記録されたステップの1つがユーザアクションを要したが、その記録時にシステムがユーザアクションの記述を要求しなかったために必要とされる場合がある。このような場合(ユーザ入力が必要とされる場合)、一実施形態にしたがって記録されるべきタスクが実行されている間、テキストジェネレータ235は、ユーザがこのステップで何をすべきかに関する命令/記述を作成者が提供するためのスペースをテキスト内に設けるだけである。
【0054】
例えば、ユーザおよび記録コンポーネントによって実行されているタスクが、コンピュータスクリーン上の背景パネルを変更することであると仮定する。これは、ユーザが背景のパターンを選択することを必要とする。したがって、背景を変更するための記録済みユーザアクションに対してテキストデータベースから返されるテキストは、「[アクションの記述を挿入する]を選択して下さい(Please select [insert description of action])」とすることができるが、この場合、作成者は、このテキストを編集して、「リストから所望の背景を選択して下さい(Please select the desired background from the list)」と読めるようにしなければならない。編集段階ではまた、作成者201は、タスクの記録前にタスク全体の記述が提供されなかった場合に、タスク全体の記述を提供することができる。テキストが編集されると、最終テキスト245がオーサリングツール200から出力され、この最終テキストは、ユーザが必要な時に取り出すことのできる適切な記憶モードで記憶される。
【0055】
図4は、本発明の一実施形態にしたがう、テキスト文書のオーサリング中に実行されるステップを示すフロー図である。この説明の目的上、書かれている文書はヘルプ文書であると仮定する。ヘルプ文書は、所望のタスクをどのように実行するかをユーザに説明する補助を文書によるフォーマットで提供するという点で、アプリケーションのユーザにとって有用である。様々な例示的なスクリーンショットを参照しながら、さらに図4のフロー図について説明する。これらのスクリーンショットを図5〜図8に示す。
【0056】
最初に、ヘルプ文書の作成者は、記録コンポーネントをアクティブ化する。記録コンポーネントは、図2に示した記録コンポーネント210と同様のものである。作成者は、まず図5に示すものと同様のウィンドウを開くことによって、記録コンポーネントをアクティブ化する。作成者は、この時点で、線510および520によって示されるスクリーンの一部を編集して、作成中の文書の題名や、タスクに関する任意の紹介情報などの情報を含めることができる。しかしながら、上述したように、この情報は、後に編集する間にテキスト文書に追加することもできる。記録コンポーネントのアクティブ化は、ステップ410に示されている。このステップ中ではまた、記録ツールが作成者に表示される。
【0057】
図6は、ディスプレイ要素600によって記録ツールを表すユーザインターフェースの一実施形態を示している。これは、記録ツールが、記録ボタン610、停止ボタン620、ユーザアクションボタン630、およびテキストボタン640を有することを表している。記録ボタン610をアクティブ化することにより、記録コンポーネント210は、ユーザインターフェース205上での作成者(または他のユーザ)のアクションを記録する。作成者が停止ボタン620を選択すると、記録は停止する。アクションがユーザアクションを必要とする場合、作成者は、アクションボタン630を選択する。作成者が記録プロセス中に文書のテキストを編集したい場合、作成者は、テキストボタン640を選択することができる。さらに、いくつかの実施形態では、追加のボタンがあってもよい。この追加のボタンにより、ユーザは値を設定することができる。これは、実行時にユーザがテキストを編集ボックスにタイプ入力しなければならないときに、適切なテキストが生成されるようにするためである。
【0058】
アクションの記録を開始する前に、作成者は、必要に応じて、テキスト文書が書かれる対象となるアプリケーションを立ち上げる。しかしながら、テキスト文書が、アプリケーションプログラムのフレームワーク外で実行されるように設計されている場合、ユーザインターフェース上でのアクションが記録される前に、ウィンドウが開くことはない。
【0059】
作成者が記録ツール600上の記録ボタン610を選択すると、記録プロセスが開始する。この時点で、UI自動化コンポーネント214は、ユーザインターフェース205上で利用可能な機能およびコンポーネントを判定する。これは、図5のステップ420に示されている。また、記録コンポーネント210は、UI自動化コンポーネント214から提供される情報を使用して、アクセスされているコマンドとしてどのようなコマンドまたは機能が現在識別されているかを示す指示を、ユーザインターフェース上に提供する。このコマンド強調表示は、図7の参照番号710により示されている。
【0060】
次に、作成者は、所望のコマンドをスクリーン上で実行する。これは、図4のステップ430に示されている。次いで、記録コンポーネント210は、フックコンポーネント212を使用して、コマンドに関連する情報を取り込む。これは、ステップ440に示されている。図4のステップ450で、コマンドが、記録コンポーネントにより記録される。本発明の一実施形態では、ステップ450で記録される情報には、コマンドのタイプ、およびコントロールボタンの状態、ならびに作成者から提供された入力のタイプが含まれる。上述したように、この情報はUI自動化コンポーネント214から受け取られる。しかしながら、UI自動化コンポーネント214は、記録プロセス中に、その他の情報を提供することもできる。コマンドが記録コンポーネントにより記録されると、フックコンポーネント212は、コマンドをオペレーティングシステムに渡すか、再送するか、または再生し、オペレーティングシステムは、そのコマンドをアプリケーションプログラムに送信して、アプリケーション上でプログラムによってそのコマンドを実行する。フックコンポーネント212は、コマンドがアプリケーションに渡されないように保持して、UI自動化コンポーネント214が、必要な情報を記録コンポーネントに渡すための時間を確実に有するようにする。
【0061】
次いで、記録コンポーネント210は、記録された情報をテキスト生成コンポーネント230に渡して、受け取られたコマンドに適した記述であるテキストが生成されるようにする。これは、図4のステップ460に示されている。このテキストを得るためのプロセスの一例を図9と関連させて示すが、これについては後でより詳細に説明する。
【0062】
ステップ460で実行した直後における、タスクの特定のステップに関するテキスト生成に続いて、記録コンポーネントは、実行すべき追加のステップがあるかどうかを判定する。これは、ステップ470に示されている。本発明の一実施形態では、この判定は、記録コンポーネント210により自動的に実行される。例えば、記録されたコマンドの結果として、別のウィンドウが開いたか、またはポップアップした場合、システムは、記録すべき別のステップがあるとみなす。別の実施形態では、作成者が、図6に示した記録ツールの停止ボタン620を選択しない限り、システムは、記録すべき別のステップがあるとみなす。実行すべき別のステップがある場合は、システムは、ステップ475で、タスクにおける次のステップに進み、ステップ420からステップ470を繰り返す。
【0063】
図8は、参照番号810〜820により、生成されたテキストの例を示している。このテキストは、所望のタスクに関する命令を順番にユーザに提供している。テキストは、テキストデータベース220およびテキスト生成コンポーネント230に対して記述されたように生成することができ、あるいは、受け取られた入力コマンドからテキストを自動生成することができる任意の方法にしたがって生成することができる。
【0064】
すべてのステップが完了すると、システムはテキスト編集モードに入る。この時、記録されたすべてのステップと、テキスト生成コンポーネント230により生成された関連テキストとが、作成者201に提示される。次いで、作成者は、テキストを検討し、ステップ480で、テキストに対して、必要な訂正があれば、訂正を行う。こうした訂正には、生成されたテキストの文法構造を変更すること、生成されたテキストに情報を追加してテキストの分かりやすさを高めること、望まないステップを削除すること、または、その他の任意の編集を含めることができる。図8は、編集前に表示されるテキストの例を示している。一実施形態では、テキストは、オーサリングツールを用いて編集することができる。一方、他の実施形態では、文書のテキストは、Microsoft(登録商標) WordやNotepadなどのワードプロセッサ、または、エディタを有するその他の任意のプログラムを用いて編集することができる。図8において、作成者は、線830で示されている場所に、アクションを記述する追加情報を加えることができ、あるいは、線818で示されている場所に、要求される情報を、語句「選択した記述(description of choice)」に提供することができる。
【0065】
テキスト文書が編集されると、ステップ490で、テキスト文書の最終バージョンが保存される。文書は、要求時に取り出しやすい任意の方法で保存される。一実施形態では、テキスト文書は、オンラインヘルププログラムの一部として保存される。また、テキスト文書のオーサリング中、記録されたステップに対応する実行可能ファイルを生成することもできる。
【0066】
一実施形態では、文書の実行可能ファイルバージョンは、米国特許出願第10/337745号明細書に記載の方法にしたがって作成される。
【0067】
図9は、本発明の一実施形態にしたがう、受け取られたコマンドに関するテキストを生成するために実行されるステップをより詳細に示すフロー図である。ステップ910で、記録されたコマンドに関連する情報が、テキスト生成モジュール230において、記録コンポーネント210から受け取られる。上述したように、この情報は、UI自動化コンポーネント210により提供される。しかしながら、その他のデバイスまたは技法を使用して、ユーザインターフェース上の選択されたアイテムに関連する情報を得ることもできる。
【0068】
コマンドに関連する情報が、テキスト生成コンポーネントにより受け取られると、テキスト生成コンポーネント230は、受け取ったコマンドに合致するエントリをテキストデータベース内で検索することに進む。一実施形態では、テキストデータベース220は、複数のエントリを含むXMLデータベースであり、そのエントリには、コントロールボタンのタイプまたは対話の対象となるその他のアイテムのタイプ、アクションのタイプ、コントロールボタンの新しい状態(例えば、チェックされた、チェックが外された、展開された、折り畳まれた、など)、および、アクションに関するテキストが含まれる。しかしながら、その他のデータ記憶方法を使用してテキストを保持することもできる。さらに、その他の情報をテキストデータベース220内に保持することもできる。以下の表1に、一実施形態にしたがうテキストデータベースの一部の例を提供する。
【0069】
【表1】

【0070】
例えば、記録コンポーネントから受け取られたコマンドに関する情報が、action type = “invoke” control type = “button” control name = “OK” “click”であると仮定すると、テキスト生成コンポーネント230は、テキストデータベース220を検索し、この情報に合致するエントリを見つける。次いで、テキスト生成コンポーネント230は、「click OK」のエントリからテキストを取り出す。このテキスト取得は、ステップ930に示されている。
【0071】
当該ステップの記録中に、作成者が、図6に示したユーザインターフェース600上のユーザアクションボタン630を選択することによって、このステップをユーザアクションステップとして指示した場合、または、テキストデータベース220内のエントリが、このアクションがユーザアクションであることを示した場合、一実施形態では、テキスト生成コンポーネント230は、得られたテキストに所望のアクションの記述を追加するよう作成者に促すことができる。これは、ステップ940に示されている。次いで、作成者は、ステップ950でテキストを提供することができる。しかしながら、作成者は、このステップを無視して、後で編集段階の間に情報を追加することもできる。追加されるテキストがあれば、ステップ960でテキスト235に追加される。
【0072】
必要とされるユーザアクションがない場合、または作成者が必要なユーザアクション情報を提供した場合、テキストジェネレータ230は、得られたテキストをテキスト文書に追加する。これは、ステップ970に示されている。図9のステップ910〜970は、図4のステップ460に対応することに留意されたい。
【0073】
本発明を特定の実施形態と関連させて説明したが、当業者であれば、本発明の趣旨および範囲を逸脱することなく、形式および詳細に変更を加えることができることが理解されよう。
【図面の簡単な説明】
【0074】
【図1】本発明を使用できる例示的な一環境を示すブロック図である。
【図2】本発明の自動テキスト生成システムのコンポーネントを示すブロック図である。
【図3】本発明を使用できるグラフィカルユーザインターフェースの例を示すスクリーンショットの図である。
【図4】本発明の一実施形態にしたがう、テキスト文書の生成中および編集中に実行されるステップを示すフロー図である。
【図5】記録するために使用できる例示的な表示を示すスクリーンショットの図である。
【図6】本発明の記録ツールを制御するためのユーザインターフェース制御要素の一実施形態を示すスクリーンショットの図である。
【図7】本発明の強調表示機能を示すスクリーンショットの図である。
【図8】生成されたテキストを編集用に作成者に提示する一方法を示すスクリーンショットの図である。
【図9】受け取られたコマンドに関する自動テキストの生成中に実行されるステップをより詳細に示すフロー図である。

【特許請求の範囲】
【請求項1】
ユーザインターフェース上で実行された少なくとも1つのアクションに応答してテキストを生成するように構成されたテキスト生成システムであって、
前記ユーザインターフェース上での前記少なくとも1つのアクションに対応する特徴を記録するように構成された記録コンポーネントと、
前記記録コンポーネントから前記特徴を受け取り、前記特徴に基づく生成されたテキストを出力するように構成されたテキスト生成コンポーネントと
を備えたことを特徴とするテキスト生成システム。
【請求項2】
前記記録コンポーネントは、前記ユーザインターフェース上での各アクションに関連する複数の特徴を識別するように構成されたユーザインターフェース自動化コンポーネントから特徴を受け取るように構成されることを特徴とする請求項1に記載のテキスト生成システム。
【請求項3】
前記アクションは前記ユーザインターフェース上のコントロールボタンを作動させることによって実行され、
前記複数の特徴は、
コントロールボタン名と、
コントロールボタンタイプと、
前記コントロールボタンに対して実行されたアクションのIDと
を含むことを特徴とする請求項2に記載のテキスト生成システム。
【請求項4】
前記テキスト生成コンポーネントによって検索可能なテキストデータベースをさらに備え、前記テキストデータベースは、複数のエントリを有し、前記複数のエントリの各々は、少なくとも1つに関連するテキストを含むことを特徴とする請求項3に記載のテキスト生成システム。
【請求項5】
前記テキストデータベース内の各エントリは、複数の下位エントリを含み、
前記下位エントリは、
前記複数の特徴に関連するテキストと、
前記実行されたアクションのテキスト記述と
を含むことを特徴とする請求項4に記載のテキスト生成システム。
【請求項6】
前記アクションの前記テキスト記述は、複数の言語のテキスト記述を含むことを特徴とする請求項5に記載のテキスト生成システム。
【請求項7】
前記アクションの前記テキスト記述は、前記アクションの自然言語テキスト記述であることを特徴とする請求項5に記載のテキスト生成システム。
【請求項8】
前記テキスト生成コンポーネントは、前記記録コンポーネントから受け取った記録済みの特徴と、前記テキストデータベース内のエントリまたは下位エントリとを照合することによって、前記テキストデータベース内のエントリを識別するように構成されることを特徴とする請求項5に記載のテキスト生成システム。
【請求項9】
前記テキスト生成コンポーネントは、前記照合に応じて、前記エントリに関する前記テキスト記述を出力することを特徴とする請求項5に記載のテキスト生成システム。
【請求項10】
前記テキスト生成コンポーネントは、前記テキストデータベースを検索して、アクションの組合せに関する記録済みの特徴と、前記テキストデータベース内のエントリとを照合することによって、合致するエントリを識別するように構成されることを特徴とする請求項8に記載のテキスト生成システム。
【請求項11】
前記テキスト生成コンポーネントは、前記合致するエントリから、前記アクションの組合せのテキスト記述を出力するように構成されることを特徴とする請求項10に記載のテキスト生成システム。
【請求項12】
前記ユーザインターフェース自動化コンポーネントは、前記ユーザインターフェース上でのアクションに関連する複数の実行可能コマンドを前記記録コンポーネントに提供するようにさらに構成され、前記テキスト生成コンポーネントは、前記実行可能コマンドに基づいて、前記生成されたテキストの実行可能ファイルバージョンを生成するようにさらに構成されることを特徴とする請求項2に記載のテキスト生成システム。
【請求項13】
前記生成されたテキストの編集を可能にするように構成されたテキスト編集コンポーネント
をさらに備えたことを特徴とする請求項1に記載のテキスト生成システム。
【請求項14】
ユーザインターフェース上で実行されたタスクを記述するテキストを生成する方法であって、
前記タスクに関連する一連のステップを実行することと、
前記一連のステップの各々を記録コンポーネントによって記録することと、
前記一連のステップの各々に関連するテキストをテキストストアから得ることと、
前記得られたテキストから前記テキストを生成することと
を備えることを特徴とする方法。
【請求項15】
前記一連のステップの各々を前記記録することは、
ユーザインターフェース上で利用可能な要素の指示を受け取ることと、
前記ユーザインターフェース上で操作されているコントロールボタンの指示を受け取ることと、
前記ユーザインターフェース上で操作されている前記コントロールボタンに関連する特徴を記録することと
を含むことを特徴とする請求項14に記載の方法。
【請求項16】
前記特徴を記録することは、
前記特徴が記録されるまで、前記ユーザインターフェースを所与の状態に維持することと、
次いで、前記ユーザインターフェースにおけるコマンドを実行することと
を含むことを特徴とする請求項15に記載の方法。
【請求項17】
前記ユーザインターフェース上で利用可能な要素の前記指示、および操作されているコントロールの前記指示は、ユーザインターフェース自動化コンポーネントから受け取られることを特徴とする請求項15に記載の方法。
【請求項18】
前記生成されたテキストの実行可能ファイルバージョンを生成すること
をさらに備えることを特徴とする請求項17に記載の方法。
【請求項19】
前記ユーザインターフェース自動化コンポーネントはさらに、実行可能情報をテキスト生成コンポーネントに提供することを特徴とする請求項16に記載の方法。
【請求項20】
前記生成されたテキストを編集すること
をさらに備えることを特徴とする請求項14に記載の方法。
【請求項21】
テキストをテキストストアから前記得ることは、
前記記録コンポーネントから、前記一連のステップのうちの1つに関連する記録済みの特徴の指示を受け取ることと、
前記受け取った特徴に合致するエントリを前記テキストストア内で検索することと、
前記合致するエントリからテキスト記述を取り出すことと
を含むことを特徴とする請求項14に記載の方法。
【請求項22】
テキストをテキストストアから前記得ることは、
前記記録コンポーネントから、少なくとも2つのステップに関連する記録済みの特徴のIDを受け取ることと、
前記少なくとも2つのステップに合致するエントリを前記テキストストア内で検索することと、
前記合致するエントリに関するテキスト出力を提供することと
をさらに含むことを特徴とする請求項21に記載の方法。
【請求項23】
前記テキストを前記生成することは、
前記ステップのうちの1つがユーザ入力を必要とするかどうかを判定することと、
前記ユーザ入力が必要であると判定した場合は、前記テキストストアからの前記得られたテキストと共に、前記ユーザ入力の記述を提供することと
をさらに含むことを特徴とする請求項21に記載の方法。
【請求項24】
実行時に、請求項14〜23のいずれかに記載の方法をコンピュータに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能な媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2008−506185(P2008−506185A)
【公表日】平成20年2月28日(2008.2.28)
【国際特許分類】
【出願番号】特願2007−520286(P2007−520286)
【出願日】平成16年7月8日(2004.7.8)
【国際出願番号】PCT/US2004/022450
【国際公開番号】WO2006/016877
【国際公開日】平成18年2月16日(2006.2.16)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】