(57)【要約】  ユーザインターフェース（２０５）上での作成者（２０１）のアクションに基づいてテキスト文書（２３５、２４５）を自動生成するテキストジェネレータ（２００）。テキスト文書（２３５）を生成するために、作成者（２０１）は、記録コンポーネント（２１０）をアクティブ化する。記録コンポーネント（２０１）は、ユーザインターフェース（２０５）上での作成者のアクションを記録する。記録されたアクションに基づいて、テキスト生成コンポーネント（２３０）は、テキストデータベース（２２０）を検索し、作成者の記録済みアクションに合致するエントリを識別する。次いで、このテキストは結合されてテキスト文書（２３５）が形成され、このテキスト文書（２３５）は、命令または他の情報をユーザに提供する。テキスト文書（２３５、２４５）の生成プロセス中、文書（２３５、２４５）の分かりやすさを高めるなどのために、必要に応じてエディタ（２４０）を使用して、テキストを編集することができる。
2008506185.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインターフェース上で実行された少なくとも１つのアクションに応答してテキストを生成するように構成されたテキスト生成システムであって、
前記ユーザインターフェース上での前記少なくとも１つのアクションに対応する特徴を記録するように構成された記録コンポーネントと、
前記記録コンポーネントから前記特徴を受け取り、前記特徴に基づく生成されたテキストを出力するように構成されたテキスト生成コンポーネントと
を備えたことを特徴とするテキスト生成システム。
【請求項２】
前記記録コンポーネントは、前記ユーザインターフェース上での各アクションに関連する複数の特徴を識別するように構成されたユーザインターフェース自動化コンポーネントから特徴を受け取るように構成されることを特徴とする請求項１に記載のテキスト生成システム。
【請求項３】
前記アクションは前記ユーザインターフェース上のコントロールボタンを作動させることによって実行され、
前記複数の特徴は、
コントロールボタン名と、
コントロールボタンタイプと、
前記コントロールボタンに対して実行されたアクションのＩＤと
を含むことを特徴とする請求項２に記載のテキスト生成システム。
【請求項４】
前記テキスト生成コンポーネントによって検索可能なテキストデータベースをさらに備え、前記テキストデータベースは、複数のエントリを有し、前記複数のエントリの各々は、少なくとも１つに関連するテキストを含むことを特徴とする請求項３に記載のテキスト生成システム。
【請求項５】
前記テキストデータベース内の各エントリは、複数の下位エントリを含み、
前記下位エントリは、
前記複数の特徴に関連するテキストと、
前記実行されたアクションのテキスト記述と
を含むことを特徴とする請求項４に記載のテキスト生成システム。
【請求項６】
前記アクションの前記テキスト記述は、複数の言語のテキスト記述を含むことを特徴とする請求項５に記載のテキスト生成システム。
【請求項７】
前記アクションの前記テキスト記述は、前記アクションの自然言語テキスト記述であることを特徴とする請求項５に記載のテキスト生成システム。
【請求項８】
前記テキスト生成コンポーネントは、前記記録コンポーネントから受け取った記録済みの特徴と、前記テキストデータベース内のエントリまたは下位エントリとを照合することによって、前記テキストデータベース内のエントリを識別するように構成されることを特徴とする請求項５に記載のテキスト生成システム。
【請求項９】
前記テキスト生成コンポーネントは、前記照合に応じて、前記エントリに関する前記テキスト記述を出力することを特徴とする請求項５に記載のテキスト生成システム。
【請求項１０】
前記テキスト生成コンポーネントは、前記テキストデータベースを検索して、アクションの組合せに関する記録済みの特徴と、前記テキストデータベース内のエントリとを照合することによって、合致するエントリを識別するように構成されることを特徴とする請求項８に記載のテキスト生成システム。
【請求項１１】
前記テキスト生成コンポーネントは、前記合致するエントリから、前記アクションの組合せのテキスト記述を出力するように構成されることを特徴とする請求項１０に記載のテキスト生成システム。
【請求項１２】
前記ユーザインターフェース自動化コンポーネントは、前記ユーザインターフェース上でのアクションに関連する複数の実行可能コマンドを前記記録コンポーネントに提供するようにさらに構成され、前記テキスト生成コンポーネントは、前記実行可能コマンドに基づいて、前記生成されたテキストの実行可能ファイルバージョンを生成するようにさらに構成されることを特徴とする請求項２に記載のテキスト生成システム。
【請求項１３】
前記生成されたテキストの編集を可能にするように構成されたテキスト編集コンポーネント
をさらに備えたことを特徴とする請求項１に記載のテキスト生成システム。
【請求項１４】
ユーザインターフェース上で実行されたタスクを記述するテキストを生成する方法であって、
前記タスクに関連する一連のステップを実行することと、
前記一連のステップの各々を記録コンポーネントによって記録することと、
前記一連のステップの各々に関連するテキストをテキストストアから得ることと、
前記得られたテキストから前記テキストを生成することと
を備えることを特徴とする方法。
【請求項１５】
前記一連のステップの各々を前記記録することは、
ユーザインターフェース上で利用可能な要素の指示を受け取ることと、
前記ユーザインターフェース上で操作されているコントロールボタンの指示を受け取ることと、
前記ユーザインターフェース上で操作されている前記コントロールボタンに関連する特徴を記録することと
を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記特徴を記録することは、
前記特徴が記録されるまで、前記ユーザインターフェースを所与の状態に維持することと、
次いで、前記ユーザインターフェースにおけるコマンドを実行することと
を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ユーザインターフェース上で利用可能な要素の前記指示、および操作されているコントロールの前記指示は、ユーザインターフェース自動化コンポーネントから受け取られることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記生成されたテキストの実行可能ファイルバージョンを生成すること
をさらに備えることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ユーザインターフェース自動化コンポーネントはさらに、実行可能情報をテキスト生成コンポーネントに提供することを特徴とする請求項１６に記載の方法。
【請求項２０】
前記生成されたテキストを編集すること
をさらに備えることを特徴とする請求項１４に記載の方法。
【請求項２１】
テキストをテキストストアから前記得ることは、
前記記録コンポーネントから、前記一連のステップのうちの１つに関連する記録済みの特徴の指示を受け取ることと、
前記受け取った特徴に合致するエントリを前記テキストストア内で検索することと、
前記合致するエントリからテキスト記述を取り出すことと
を含むことを特徴とする請求項１４に記載の方法。
【請求項２２】
テキストをテキストストアから前記得ることは、
前記記録コンポーネントから、少なくとも２つのステップに関連する記録済みの特徴のＩＤを受け取ることと、
前記少なくとも２つのステップに合致するエントリを前記テキストストア内で検索することと、
前記合致するエントリに関するテキスト出力を提供することと
をさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記テキストを前記生成することは、
前記ステップのうちの１つがユーザ入力を必要とするかどうかを判定することと、
前記ユーザ入力が必要であると判定した場合は、前記テキストストアからの前記得られたテキストと共に、前記ユーザ入力の記述を提供することと
をさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
実行時に、請求項１４〜２３のいずれかに記載の方法をコンピュータに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストの生成に関する。より詳細には、本発明は、ユーザインターフェース上でのユーザのアクションを示すテキストを自動生成することに関する。
【背景技術】
【０００２】
コンピュータとの自然言語／音声ベースの対話を可能にする試みがいくつかなされてきた。これらの試みの結果は、今までのところ限られている。これは、技術の不完全さと、押し付けがましくないマイクロホンインフラストラクチャの欠如（lack of non-intrusive microphone infrastructure）と、高いオーサリングコストと、固定化した顧客挙動と、グラフィカルユーザインターフェース（ＧＵＩ：Graphical User Interface）の形態における競合相手とが組み合わさった結果であるが、ＧＵＩは、多くのタスクに対して、高い価値をもたらす。本発明は、これらの制限のうちの２つ、すなわち、ＧＵＩとのより密接な統合、およびオーサリングコストの削減に重点を置いている。
【０００３】
ＧＵＩは、広く使用されているインターフェース機構である。ＧＵＩは、位置決定タスク（例えば、矩形のサイズを変更する）、視覚上の修正タスク（例えば、言葉では言い表せないわずかな青みを何かに与える）、または選択タスク（例えば、１００個の画像のうちで回転させたいのは、この１つである）に対して非常に優れている。ＧＵＩはまた、１つの迅速なステップの機能に即時にアクセスすることに対しても優れている。アプリケーションＧＵＩは、タスク指向の観点（例えば、「自分のコンピュータをハッカーに対して安全にする」など、ユーザが行いたいより高レベルのタスクによる体系化）ではなく、機能的な観点から体系化された（例えば、メニューやツールバーなどに体系化された）、有用なツールボックスである。
【０００４】
しかしながら、ＧＵＩは、多くの問題もユーザに与える。ツールボックスを例にとると、ユーザは、ボックス内にツールを見つけること、または、タスクを完了させるためにツールをどのように使用するかを理解することが難しい。単語と、小さなボタンと、わかりにくい階層にならざるを得ないタブとによって表されたインターフェースは、人々が自分のタスクについて考える方法には適していない。ＧＵＩでは、ユーザは、タスクを完了するのにどのような要素が必要かを決定するために、タスクを分解する必要がある。この分解の必要性は、複雑さをもたらす。複雑さの問題だけでなく、ＧＵＩ要素（すなわち、メニュークリック、ダイアログクリックなど）を組み立てるには時間を要する。これは、熟練したユーザにとってさえも非効率的であり、時間がかかる可能性がある。
【０００５】
ＧＵＩの問題に対処するための既存の機構の１つは、文書によるヘルプ手順である。ヘルプ手順はしばしば、ヘルプ文書、製品サポートサービス（ＰＳＳ：Product Support Service）知識ベース（ＫＢ：Knowledge Base）記事、およびニュースグループ投稿の形をとり、これらは、顧客ニーズとＧＵＩの問題との間のギャップをうめる。これらは、ツールボックスに付属するマニュアルに似ており、多くの利点を有する。これらの利点には、例えば以下のものが含まれる。
【０００６】
１）非専門の作成者にとってもオーサリングが比較的容易である。
【０００７】
２）サーバ上で更新しやすので、接続ユーザは、新しいコンテンツに容易にアクセスすることができる。
【０００８】
３）ＧＵＩを教えることにより、ユーザが問題解決を管理できるようにする。
【０００９】
しかしながら、ヘルプ文書、ＰＳＳ  ＫＢ記事、およびニュースグループには、それら自体の１組の問題がある。これらの問題には、例えば以下のものが含まれる。
【００１０】
１）複雑なタスクは、ユーザ側で非常に多くの処理を必要とする。ユーザは、各ステップにおいて説明されることからＧＵＩへマッピングする必要がある。
【００１１】
２）トラブルシュータ、さらには手順のヘルプ文書でさえ、ヘルプトピック内に複雑な分岐をもたらす状態情報（state information）をしばしば含む。それによりトピックは長くなり、ユーザにとって読みにくく処理しにくいものとなる。ツールバーが見えなくなっている場合があり、次のステップを行えるようになる前に、ツールバーをオンにすることが必要な場合がある。トラブルシュータはしばしば、状態に関する質問をするが、（トラブルシュータ自身で回答を見つけることができるべきものなので、）どんなに良くてももどかしいものであり、最悪の場合は専門外の者には答えられないものである。
【００１２】
３）何百万もの文書があり、回答の検索には、どこから検索を開始するかという問題、および、次いで何千もの返答からどのように最良の検索結果を選ぶかという問題の両方を伴う。
【００１３】
４）共有オーサリング構造がない。ニュースグループ投稿、ＫＢ記事、トラブルシュータ、および手順のヘルプ文書はすべて、異なる構造およびオーサリング方法を有しているにもかかわらず、これらはすべて同様の問題を解決しようとする。
【００１４】
ＧＵＩの問題に対処するための別の既存の機構は、ウィザードである。ウィザードは、ＧＵＩおよび文書によるヘルプ手順の弱点に対処するために生み出された。今や何千ものウィザードがあり、これらのウィザードは、製造されているほとんどすべてのソフトウェア製品において見ることができる。これは、ウィザードが、既存のテキストベースのヘルプおよび補助により現在対処されていない真の必要性を解決するからである。ウィザードは、ユーザがタスク指向の方法で機能にアクセスできるようにし、ＧＵＩまたはツールを自動的に組み立てることができる。ウィザードは、顧客タスクに対処する手段をプログラム管理者および開発者に提供する。ウィザードは、タスクの成功に向けて必要なステップをユーザに進ませる、ボックス内の専門家のようなものである。いくつかのウィザードは、顧客がシステムを設定するのを助け（例えば、設定ウィザード）、いくつかのウィザードは、機能付きコンテンツを含み、顧客がコンテンツを作成するのを助け（例えば、ＮｅｗｓｌｅｔｔｅｒウィザードやＰｏｗｅｒＰｏｉｎｔ（登録商標）のＡｕｔｏＣｏｎｔｅｎｔウィザード）、いくつかのウィザードは、顧客が問題を突き止めて解決するのを助ける（例えば、トラブルシュータ）。
【００１５】
ウィザードは、多くの利点をユーザに提供する。ウィザードの利点のいくつかは以下のとおりである。
【００１６】
１）ウィザードには「タスク」の概念を組み入れることができる。通常、ユーザには、ユーザが達成しようとするどんなことをウィザードが助けているかがはっきりしている。順を追ったページにより、ユーザは容易に選択を行うことができ、うまく設計されたウィザードの場合、ユーザが視覚的に困惑することが生じることが、しばしば少なくなる。
【００１７】
２）ウィザードは、自動的にソフトウェアの基礎をなす機能を組み立てて、その機能と対話することができ、ウィザードには、顧客が選択を行うのに必要な情報または専門知識を含めることができる。これにより、ユーザがタスクを実行する時間が低減する。
【００１８】
３）ウィザードは、コンテンツを自動生成することができる。また、ウィザードは、テキストを作成しレイアウトを計画することによって、ユーザの時間を低減させることができる。
【００１９】
４）ウィザードはまた、質問し、返答を得て、最も関連のある次の質問または機能に分岐するための優れた手段でもある。
【００２０】
しかしながら、ウィザードもまた、それら自体の１組の問題を有する。これらの問題のいくつかには、人々が達成しようとするタスクの方が、そのタスクを達成するためのウィザードよりも多いということが含まれる。ウィザードおよびインダクティブユーザインターフェース（ＩＵＩ：Inductive User Interface）は、基礎をなすＧＵＩをどのように使用するかを顧客に教えることはせず、ウィザードが完了したときに、ユーザは、次にどこに進むべきか確信が持てないことが多い。ウィザードをオーサリングするコストは今もなお高く、ウィザードをオーサリングする技術的な専門知識を有する人員（例えば、ソフトウェア開発者）を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
本発明は、ウィザード、ヘルプ、知識ベース記事、およびトラブルシュータの問題のいくつかに対処するが、これは、何千ものタスク（またはウィザード）をオーサリングし、ＧＵＩと統合して、ＧＵＩをどのように使用してタスクを実行するかをユーザに教えるため、またはユーザに代わってタスクを実行するための容易な方法を可能にするコンテンツウィザードを提供することによって対処する。詳細には、本発明は、アクティブコンテンツウィザード（ＡＣＷ：Active Content Wizard）スクリプトをオーサリングすること、特に、ＡＣＷスクリプトの一部であるテキストをオーサリングすることに関する。
【課題を解決するための手段】
【００２２】
本発明は、ユーザインターフェース上での作成者のアクションに基づいて、テキスト文書を自動生成するためのシステムに関する。テキスト文書を生成するために、作成者は記録コンポーネントをアクティブ化する。記録コンポーネントは、ユーザインターフェース上での作成者のアクションを記録する。記録コンポーネントは、記録されたアクションをテキスト生成コンポーネントに渡す。テキスト生成コンポーネントは、記録されたアクション（ユーザインターフェースコントロールボタンおよび作成者アクションを含む）のプロパティに基づいて、テキストデータベースを検索し、作成者の記録済みアクションに合致するエントリを識別する。このテキストジェネレータは、システムのルールに基づいて、このテキストを生成することができる。次いで、このテキストが結合されてテキスト文書が形成され、このテキスト文書は、命令または他の情報をユーザに提供する。テキスト文書の生成プロセス中、またはその後、エディタを使用してテキストを編集して、文書の分かりやすさを高めることができる。
【発明を実施するための最良の形態】
【００２３】
本発明は、ユーザインターフェース上でのユーザのアクションに基づいて、テキストを自動生成することに関する。本発明をより詳細に説明する前に、本発明を使用することができる例示的な一環境について説明する。
【００２４】
図１は、本発明を実施することができる適切なコンピューティングシステム環境１００の例を示している。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関して、何らの限定を意味するものでもない。またコンピューティング環境１００は、この例示的な動作環境１００に示すコンポーネントのいずれか１つ、またはコンポーネントの組合せに関して、いかなる依存関係や要件を有するとも解釈されるべきではない。
【００２５】
本発明は、その他の多くの汎用もしくは専用コンピューティングシステム環境、またはコンピューティングシステム構成において動作する。本発明と共に使用するのに適する周知のコンピューティングシステム、コンピューティングシステム環境、および／またはコンピューティングシステム構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
【００２６】
本発明は、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、タスクは、通信ネットワークを介して接続されたリモート処理デバイスによって実行される。また、分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【００２７】
図１を参照すると、本発明を実施するための例示的なシステムには、コンピュータ１１０の形態の汎用コンピューティングデバイスが含まれる。コンピュータ１１０のコンポーネントには、処理ユニット１２０と、システムメモリ１３０と、システムメモリなどの様々なシステムコンポーネントを処理ユニット１２０に接続するシステムバス１２１とを含めることができるが、これらに限定されるものではない。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなど、いくつかのタイプのバス構造のいずれかとすることができる。例えば、このようなアーキテクチャには、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、および、メザニンバスとしても知られているＰＣＩ（Peripheral Component Interconnect）バスが含まれるが、これらに限定されるものではない。
【００２８】
コンピュータ１１０は通常、様々なコンピュータ読取り可能な媒体を備える。コンピュータ読取り可能な媒体は、コンピュータ１１０がアクセスできる任意の利用可能な媒体とすることができ、コンピュータ読取り可能な媒体には、揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体の両方が含まれる。例えば、コンピュータ読取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。コンピュータ記憶媒体には、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術を用いて実装された、揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体の両方が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：Digital Versatile Disk）、もしくはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶デバイスが含まれ、または、所望の情報を記憶するのに使用できコンピュータ１１０がアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は通常、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの被変調データ信号に組み入れるものであり、通信媒体には、任意の情報伝達媒体が含まれる。「被変調データ信号」という用語は、信号内の情報が符号化される形で１つまたは複数の特性が設定または変更される信号を意味する。例えば、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体とが含まれる。これらの任意の組合せも、コンピュータ読取り可能な媒体の範囲に含まれるべきである。
【００２９】
システムメモリ１３０には、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性メモリおよび／または不揮発性メモリの形態のコンピュータ記憶媒体が含まれる。ＲＯＭ１３１には通常、起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（Basic Input/Output System）１３３が記憶されている。ＲＡＭ１３２には通常、処理ユニット１２０がすぐにアクセスすることができ、かつ／または処理ユニット１２０が現在処理している、データおよび／またはプログラムモジュールが含まれる。例えば、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７が示されているが、これらに限定されるものではない。
【００３０】
コンピュータ１１０は、その他の取外し可能／取外し不可能な揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。一例として、図１には、取外し不可能な不揮発性磁気媒体に対して読み書きするハードディスクドライブ１４１と、取外し可能な不揮発性磁気ディスク１５２に対して読み書きする磁気ディスクドライブ１５１と、ＣＤ  ＲＯＭやその他の光媒体などの取外し可能な不揮発性光ディスク１５６に対して読み書きする光ディスクドライブ１５５が示されている。この例示的な動作環境において使用できるその他の取外し可能／取外し不可能な揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は通常、インターフェース１４０などの取外し不可能なメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取外し可能なメモリインターフェースを介してシステムバス１２１に接続される。
【００３１】
図１に示して上述したドライブ群、およびそれらに関連するコンピュータ記憶媒体は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ１１０に提供する。例えば図１には、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同一とすることもできるし、または、異なるものとすることもできることに留意されたい。図１では、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、それらには異なる番号を付している。
【００３２】
ユーザは、キーボード１６２、マイクロホン１６３、およびポインティングデバイス１６１（マウス、トラックボール、タッチパッドなど）などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバスに接続されたユーザ入力インターフェース１６０を介して、処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ：Universal Serial Bus）など、その他のインターフェースおよびバス構造を介して接続されてもよい。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介して、システムバス１２１に接続される。コンピュータは、モニタに加えて、スピーカ１９７やプリンタ１９６など、その他の周辺出力デバイスも備えることができ、これらは、出力周辺インターフェース１９５を介して接続することができる。
【００３３】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、通常は、コンピュータ１１０に関して上述した要素の多くまたはすべてを備える。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ：Local Area Network）１７１およびワイドエリアネットワーク（ＷＡＮ：Wide Area Network）１７３が含まれるが、その他のネットワークも含めることができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【００３４】
ＬＡＮネットワーキング環境において使用される場合、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用される場合、コンピュータ１１０は通常、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２またはその他の手段を備える。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インターフェース１６０、またはその他の適切な機構を介して、システムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０と関連させて示したプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに記憶することができる。例えば、図１には、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０に存在するものとして示されているが、これに限定されるものではない。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段も使用できることを理解されたい。
【００３５】
図２は、本発明の一実施形態にしたがう自動テキスト生成システム２００のコンポーネントを示すブロック図である。テキスト生成システム２００は、記録部２０７およびテキスト生成部２０３を備える。記録部２０７は、記録コンポーネント２１０、フックコンポーネント２１２、およびユーザインターフェース（ＵＩ）自動化コンポーネント２１４を含む。任意的に、画像取り込みコンポーネントが含まれてもよい。テキスト生成部２０３は、テキストデータベース２２０およびテキスト生成コンポーネント２３０を含む。テキスト生成システム２００は、ユーザインターフェース２０５と対話する。作成者は、システム２００のコンポーネントを構成して、ユーザインターフェース２０５のコントロールボタン（control）に対するアクションを自動的に記録させ、こうしたアクションを記述するテキスト２３５を自動的に生成させることができる。作成者２０１はまた、自動生成されたテキスト２３５を編集して、タスク（またはＵＩ制御アクション）を記述する最終テキスト２４５を得ることができる。次に、図２のいくつかのコンポーネントについて、より詳細に説明する。
【００３６】
一実施形態では、ユーザインターフェース２０５は、ユーザがタスクを実行するためのアクションを行えるようにするコントロールボタンを備えたグラフィカルユーザインターフェースである。ユーザインターフェース２０５は、図１に示したディスプレイデバイス１９１上に表示される。グラフィカルユーザインターフェース（ＧＵＩ）は、広く使用されているインターフェース機構である。
【００３７】
図３は、本発明と共に使用できるＧＵＩの一例を示すスクリーンショットである。この例では、ＧＵＩは、背景部分（図示せず）とウィンドウ部分３００とに分割されており、一連のコントロールボタン３１０を含む。コントロールボタン３１０には、例えば、リストボックス、ボタン、タブ、ツリーコントロールボタン、およびリストビューアイテムを含めることができる。しかしながら、その他のタイプのコントロールボタンがＧＵＩ内にあってもよく、図示および列挙したコントロールボタンは例示的なものにすぎない。ウィンドウ部分３００はさらに、ツールバー部分３２０とアプリケーション部分３２５とに分割される。ツールバー部分３２０は、メニュー３２２に構成された一連のタスクを有し、ユーザは、関連するアプリケーションの通常の操作中に、メニュー３２２を選択することができる。これらのメニューアイテムにはさらに、プルダウンメニューまたはオプションを含めることができる。これらのメニューアイテムにより、別のウィンドウ／ＧＵＩをスクリーン上にポップアップさせることもできる。
【００３８】
一実施形態では、記録コンポーネント２１０は、作成者２０１または別のユーザがユーザインターフェース２０５上でタスクを実行できるようにするアプリケーションプログラムであり、タスクを記録するものである。作成者２０１が、ユーザインターフェース２０５上でタスクに関連するステップを実行している間、記録コンポーネント２１０は、作成者がユーザインターフェース２０５上でどのようなコントロールボタンおよびウィンドウと対話するかに関する情報を記録する。この情報が、テキストジェネレータ２３０に提供されて、ヘルプ文書などの文書中のテキストが生成される。
【００３９】
記録コンポーネント２１０は、フック２１２およびユーザインターフェース（ＵＩ）自動化コンポーネント２１４を介して、ユーザインターフェース２０５と対話する。これらのコンポーネントは、記録コンポーネント２１０と別々のものとすることができるし、または、いくつかの実施形態では、記録コンポーネント２１０と統合することができる。
【００４０】
一実施形態では、フックコンポーネント２１２は、コンピュータによって使用されるオペレーティングシステム内のモジュールまたはコンポーネントである。例えば、フックがマウスクリックに対して設定されている場合、マウスクリックはフックコンポーネント２１２に転送されて、そこに取り込まれ、記録コンポーネント２１０により記録された後で、マウスクリックを受け取るために登録している、コンピュータ内の他のコンポーネントのために再生される。したがって、一般にフックコンポーネント２１２は、オペレーティングシステムと、対象とするアプリケーションとの間のバッファとして動作する。フックコンポーネント２１２は、例えばシングルクリック、ダブルクリック、右クリックまたは左クリック、キーボードアクションなど、受け取られる信号のタイプなどの、ほとんどすべての入力アクションを待ち受けるように構成することができる。アクションを表す情報が記録コンポーネント２１０により記録されると、マウスクリック（または、記録された他の何らかのアクション）を表す情報は、フックコンポーネント２１２により、アプリケーションに対して再生される。この理由の１つは、ユーザが、第１アクションが記録される前に、第２アクションを行うかもしれないからである。第２アクションは、ユーザインターフェースの状態を大幅に変更する可能性があるので、第１アクションの記録が不適切になる場合がある。第１アクションを取り込んで、記録の完了後にそれを再生することにより、第１アクションが適切に記録されることが確実になる。
【００４１】
フックコンポーネント２１２により実行される機能（すなわち、マウスクリックを待ち受けて、それを再生すること）は、例えば、別々のスレッドで実行されることにも留意されたい。これにより、すべてのユーザインターフェースアクション（例えば、マウスクリックやキーボードアクションなど）が、どれも失われずに、適切に記録されて再生されることが確実になる。さらに、フックコンポーネント２１２の記録および再生機構は、オペレーティングシステムに内在するいかなるタイムアウト機能よりも優先され得る。これは、アクションが適切に記録されるようにするにはオペレーティングシステムのタイムアウト期間が短すぎる場合に、必要なものになり得る。
【００４２】
ユーザインターフェース自動化コンポーネント２１４は、例示的には、ユーザインターフェース２０５を介して作成者またはユーザにより実行されるタスクの原子的なステップ（atomic step）を解釈するように構成されたコンピュータプログラムである。一実施形態では、ユーザインターフェース自動化コンポーネント２１４は、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＭｉｃｒｏｓｏｆｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｕｔｏｍａｔｉｏｎを使用して実装されたＧＵＩ自動化モジュールである。このモジュールは、可視的なユーザインターフェースに関する情報にアクセスして、プログラムによって可視的なユーザインターフェースと対話するための、プログラムによる方法を提供する。しかしながら、システム設定に応じて、ユーザインターフェース自動化コンポーネント２１４は、グラフィカルユーザインターフェースをプログラムによって操作でき、かつ、ユーザインターフェースにおけるコマンドを実施、実行、および検出できる、任意のアプリケーションを使用して実装することができる。
【００４３】
したがって、ユーザインターフェース自動化コンポーネント２１４は、ユーザインターフェース２０５上で作成者２０１（または別のユーザ）によって実行される所望のタスクに関連する各ステップをタスク順に検出する。例えば、ユーザがＧＵＩ上のボタンをクリックして新しいメニューまたはウィンドウを表示することをタスクが必要とする場合、ＵＩ自動化コンポーネント２１４は、ユーザインターフェース２０５上のマウスの場所にどのコントロールボタンが位置するかを判定する。記録コンポーネント２１０は、フックコンポーネント２１２からの情報（例えば、どちらのマウスボタンがクリックされたかや、マウスカーソルがユーザインターフェース上のどこにあるか）を、ＵＩ自動化コンポーネント２１４からの情報（例えば、コントロールボタンのタイプ、名前、および状態）と共に使用して、ステップを実行するために作成者によって使用されたコントロールボタンの名前およびプロパティを記録する。ユーザインターフェース自動化コンポーネント２１４によって判定されたこの情報は、記録コンポーネント２１０が、ステップを実行するために作成者によって使用されたコントロールボタンのタイプ、名前、および状態を記録できるよう、記録コンポーネント２１０に提供される。
【００４４】
テキスト生成コンポーネント２３０は、記録プロセス中に実行または実施されたアクションを記述する自然言語テキストを生成するように構成されたプログラムまたはモジュールである。テキスト生成コンポーネント２３０は、記録コンポーネント２１０によって記録された記録済み情報を使用して、テキストデータベース２２０から適切なテンプレートまたはエントリを選択する。
【００４５】
テキストデータベース２２０は、例示的には、テキストジェネレータ２３０によって検索可能なデータベースまたはその他の情報記憶システムである。テキストデータベース２２０は、ユーザインターフェース２０５上で利用可能なコントロールボタンに関連する情報を含む。この情報には、例えば、コントロールボタンの名前、コントロールボタンのタイプ、コントロールボタンに対して実行されるアクション、および、自然言語文であるアクションのテキスト記述を含めることができる。
【００４６】
いくつかの実施形態では、エントリに関するテキスト記述は、複数の言語で提供される。テキスト記述が複数の言語で提供される場合、適切な言語が選択されるようにする言語識別子が、各エントリと共に提供される。
【００４７】
しかしながら、システムの必要性に応じて、その他の情報をテキストデータベース２２０に含めることもできる。一実施形態では、テキストデータベース２２０内のいくつかのエントリは、連続的に実行される複数のコントロールボタンによって具現化される複数のアクションに関連する情報を有する。複数のコントロールボタンに対する複数のアクションが、テキストデータベース２２０内の単一のエントリによって表される場合、このエントリに関するテキストは、両方のコントロールボタンに対して実行されるアクションの自然言語記述を単一文として含む。２つのコマンドの記述を単一文として結合することにより、最終的なテキスト文書の可読性が向上する。
【００４８】
一実施形態では、テキストデータベース２２０は、拡張マークアップ言語（ＸＭＬ：eXtensible Markup Language）で記述される。各エントリに関するデータは、一連の下位エントリとして記憶することができ、エントリの各下位エントリは、タスクを識別するのに必要な個々の情報を指す。しかしながら、データを記憶するために、その他のフォーマットを使用することもできる。
【００４９】
一実施形態では、テキスト生成コンポーネント２３０は、テキストデータベース２２０内のエントリを検索するとき、複数の記録済みアクションを見る。これは、より可変性の高いテキスト文書を提供するために行うことができる。例えば、優れた手順文書化はしばしば、可読性の向上のために、複数のステップを単一文に結合する。テキスト生成コンポーネント２３０が、テキストデータベース２２０内で記録済み情報に合致するものを複数識別した場合、テキスト生成コンポーネント２３０は、各エントリをスコア付けすることに基づいてエントリを明確にし、最高スコアを有するエントリを選択するなどにより、任意の既知の方法を使用して、データベース内のどのエントリを選択すべきかを判定することができる。
【００５０】
一実施形態にしたがうと、テキスト生成コンポーネント２３０は、ユーザインターフェース上で作動されたコントロールボタンのタイプと、実行されたアクションとに基づいて、実行されたコントロールボタンのタイプおよびアクションに合致するエントリをテキストデータベース２２０内で検索する。テキストデータベース２２０内で合致が識別されると、テキスト生成コンポーネント２３０は、テキストデータベース２２０から、関連するアクションの自然言語記述を得て、これを、生成されるテキスト文書２３５内に文命令として配置する。代替の一実施形態では、テキスト生成コンポーネント２２０は、ＵＩ自動化モジュール２１４により提供される情報に基づいて、テキスト文書の実行可能ファイルバージョンを生成することもできる。
【００５１】
テキスト生成コンポーネントはまた、テキストデータベース２３５からテキスト記述を選択する際、コントロールボタンの状態を確認する（look to）こともできる。これは、コントロールボタンがチェックボックスである場合、または、展開ツリー（expandable tree）もしくは折り畳みツリー（collapsible tree）である場合に重要である。この場合、目的とする結果に関係なく、コントロールボタンに対するアクションが同じなので、ボックスをクリックするだけでは、アクションを記述するのに適したアクションにならない場合がある。したがって、この場合は、コントロールボタンの新しい状態が、選択されるテキストに影響を及ぼすことになる。例えば、コントロールボタンがチェックボックスであり、これを選択解除する場合、合致するテキストは、コントロールボタンの名前と、コントロールボタンの新しい状態とに基づくことになる。
【００５２】
テキストエディタ２４０は、自動生成されたテキスト２３５を修正または変更するか、あるいは、このテキストに情報またはテキストを追加するように構成されたエディタである。テキストジェネレータ２３０によって生成された結果として得られたテキストと、作成者によって実行されたアクションとに応じて、テキストを編集して、その分かりやすさをさらに高めることが必要な場合がある。したがって、テキストエディタ２４０は、生成されたテキスト２３５を受け取り、作成者２０１が生成されたテキストを編集できるようにする。
【００５３】
テキスト編集は、例えば、文法上の必要性から必要とされる場合がある。あるいは、テキスト編集は、記録されたステップの１つがユーザアクションを要したが、その記録時にシステムがユーザアクションの記述を要求しなかったために必要とされる場合がある。このような場合（ユーザ入力が必要とされる場合）、一実施形態にしたがって記録されるべきタスクが実行されている間、テキストジェネレータ２３５は、ユーザがこのステップで何をすべきかに関する命令／記述を作成者が提供するためのスペースをテキスト内に設けるだけである。
【００５４】
例えば、ユーザおよび記録コンポーネントによって実行されているタスクが、コンピュータスクリーン上の背景パネルを変更することであると仮定する。これは、ユーザが背景のパターンを選択することを必要とする。したがって、背景を変更するための記録済みユーザアクションに対してテキストデータベースから返されるテキストは、「［アクションの記述を挿入する］を選択して下さい（Please select [insert description of action]）」とすることができるが、この場合、作成者は、このテキストを編集して、「リストから所望の背景を選択して下さい（Please select the desired background from the list）」と読めるようにしなければならない。編集段階ではまた、作成者２０１は、タスクの記録前にタスク全体の記述が提供されなかった場合に、タスク全体の記述を提供することができる。テキストが編集されると、最終テキスト２４５がオーサリングツール２００から出力され、この最終テキストは、ユーザが必要な時に取り出すことのできる適切な記憶モードで記憶される。
【００５５】
図４は、本発明の一実施形態にしたがう、テキスト文書のオーサリング中に実行されるステップを示すフロー図である。この説明の目的上、書かれている文書はヘルプ文書であると仮定する。ヘルプ文書は、所望のタスクをどのように実行するかをユーザに説明する補助を文書によるフォーマットで提供するという点で、アプリケーションのユーザにとって有用である。様々な例示的なスクリーンショットを参照しながら、さらに図４のフロー図について説明する。これらのスクリーンショットを図５〜図８に示す。
【００５６】
最初に、ヘルプ文書の作成者は、記録コンポーネントをアクティブ化する。記録コンポーネントは、図２に示した記録コンポーネント２１０と同様のものである。作成者は、まず図５に示すものと同様のウィンドウを開くことによって、記録コンポーネントをアクティブ化する。作成者は、この時点で、線５１０および５２０によって示されるスクリーンの一部を編集して、作成中の文書の題名や、タスクに関する任意の紹介情報などの情報を含めることができる。しかしながら、上述したように、この情報は、後に編集する間にテキスト文書に追加することもできる。記録コンポーネントのアクティブ化は、ステップ４１０に示されている。このステップ中ではまた、記録ツールが作成者に表示される。
【００５７】
図６は、ディスプレイ要素６００によって記録ツールを表すユーザインターフェースの一実施形態を示している。これは、記録ツールが、記録ボタン６１０、停止ボタン６２０、ユーザアクションボタン６３０、およびテキストボタン６４０を有することを表している。記録ボタン６１０をアクティブ化することにより、記録コンポーネント２１０は、ユーザインターフェース２０５上での作成者（または他のユーザ）のアクションを記録する。作成者が停止ボタン６２０を選択すると、記録は停止する。アクションがユーザアクションを必要とする場合、作成者は、アクションボタン６３０を選択する。作成者が記録プロセス中に文書のテキストを編集したい場合、作成者は、テキストボタン６４０を選択することができる。さらに、いくつかの実施形態では、追加のボタンがあってもよい。この追加のボタンにより、ユーザは値を設定することができる。これは、実行時にユーザがテキストを編集ボックスにタイプ入力しなければならないときに、適切なテキストが生成されるようにするためである。
【００５８】
アクションの記録を開始する前に、作成者は、必要に応じて、テキスト文書が書かれる対象となるアプリケーションを立ち上げる。しかしながら、テキスト文書が、アプリケーションプログラムのフレームワーク外で実行されるように設計されている場合、ユーザインターフェース上でのアクションが記録される前に、ウィンドウが開くことはない。
【００５９】
作成者が記録ツール６００上の記録ボタン６１０を選択すると、記録プロセスが開始する。この時点で、ＵＩ自動化コンポーネント２１４は、ユーザインターフェース２０５上で利用可能な機能およびコンポーネントを判定する。これは、図５のステップ４２０に示されている。また、記録コンポーネント２１０は、ＵＩ自動化コンポーネント２１４から提供される情報を使用して、アクセスされているコマンドとしてどのようなコマンドまたは機能が現在識別されているかを示す指示を、ユーザインターフェース上に提供する。このコマンド強調表示は、図７の参照番号７１０により示されている。
【００６０】
次に、作成者は、所望のコマンドをスクリーン上で実行する。これは、図４のステップ４３０に示されている。次いで、記録コンポーネント２１０は、フックコンポーネント２１２を使用して、コマンドに関連する情報を取り込む。これは、ステップ４４０に示されている。図４のステップ４５０で、コマンドが、記録コンポーネントにより記録される。本発明の一実施形態では、ステップ４５０で記録される情報には、コマンドのタイプ、およびコントロールボタンの状態、ならびに作成者から提供された入力のタイプが含まれる。上述したように、この情報はＵＩ自動化コンポーネント２１４から受け取られる。しかしながら、ＵＩ自動化コンポーネント２１４は、記録プロセス中に、その他の情報を提供することもできる。コマンドが記録コンポーネントにより記録されると、フックコンポーネント２１２は、コマンドをオペレーティングシステムに渡すか、再送するか、または再生し、オペレーティングシステムは、そのコマンドをアプリケーションプログラムに送信して、アプリケーション上でプログラムによってそのコマンドを実行する。フックコンポーネント２１２は、コマンドがアプリケーションに渡されないように保持して、ＵＩ自動化コンポーネント２１４が、必要な情報を記録コンポーネントに渡すための時間を確実に有するようにする。
【００６１】
次いで、記録コンポーネント２１０は、記録された情報をテキスト生成コンポーネント２３０に渡して、受け取られたコマンドに適した記述であるテキストが生成されるようにする。これは、図４のステップ４６０に示されている。このテキストを得るためのプロセスの一例を図９と関連させて示すが、これについては後でより詳細に説明する。
【００６２】
ステップ４６０で実行した直後における、タスクの特定のステップに関するテキスト生成に続いて、記録コンポーネントは、実行すべき追加のステップがあるかどうかを判定する。これは、ステップ４７０に示されている。本発明の一実施形態では、この判定は、記録コンポーネント２１０により自動的に実行される。例えば、記録されたコマンドの結果として、別のウィンドウが開いたか、またはポップアップした場合、システムは、記録すべき別のステップがあるとみなす。別の実施形態では、作成者が、図６に示した記録ツールの停止ボタン６２０を選択しない限り、システムは、記録すべき別のステップがあるとみなす。実行すべき別のステップがある場合は、システムは、ステップ４７５で、タスクにおける次のステップに進み、ステップ４２０からステップ４７０を繰り返す。
【００６３】
図８は、参照番号８１０〜８２０により、生成されたテキストの例を示している。このテキストは、所望のタスクに関する命令を順番にユーザに提供している。テキストは、テキストデータベース２２０およびテキスト生成コンポーネント２３０に対して記述されたように生成することができ、あるいは、受け取られた入力コマンドからテキストを自動生成することができる任意の方法にしたがって生成することができる。
【００６４】
すべてのステップが完了すると、システムはテキスト編集モードに入る。この時、記録されたすべてのステップと、テキスト生成コンポーネント２３０により生成された関連テキストとが、作成者２０１に提示される。次いで、作成者は、テキストを検討し、ステップ４８０で、テキストに対して、必要な訂正があれば、訂正を行う。こうした訂正には、生成されたテキストの文法構造を変更すること、生成されたテキストに情報を追加してテキストの分かりやすさを高めること、望まないステップを削除すること、または、その他の任意の編集を含めることができる。図８は、編集前に表示されるテキストの例を示している。一実施形態では、テキストは、オーサリングツールを用いて編集することができる。一方、他の実施形態では、文書のテキストは、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＷｏｒｄやＮｏｔｅｐａｄなどのワードプロセッサ、または、エディタを有するその他の任意のプログラムを用いて編集することができる。図８において、作成者は、線８３０で示されている場所に、アクションを記述する追加情報を加えることができ、あるいは、線８１８で示されている場所に、要求される情報を、語句「選択した記述（description of choice）」に提供することができる。
【００６５】
テキスト文書が編集されると、ステップ４９０で、テキスト文書の最終バージョンが保存される。文書は、要求時に取り出しやすい任意の方法で保存される。一実施形態では、テキスト文書は、オンラインヘルププログラムの一部として保存される。また、テキスト文書のオーサリング中、記録されたステップに対応する実行可能ファイルを生成することもできる。
【００６６】
一実施形態では、文書の実行可能ファイルバージョンは、米国特許出願第１０／３３７７４５号明細書に記載の方法にしたがって作成される。
【００６７】
図９は、本発明の一実施形態にしたがう、受け取られたコマンドに関するテキストを生成するために実行されるステップをより詳細に示すフロー図である。ステップ９１０で、記録されたコマンドに関連する情報が、テキスト生成モジュール２３０において、記録コンポーネント２１０から受け取られる。上述したように、この情報は、ＵＩ自動化コンポーネント２１０により提供される。しかしながら、その他のデバイスまたは技法を使用して、ユーザインターフェース上の選択されたアイテムに関連する情報を得ることもできる。
【００６８】
コマンドに関連する情報が、テキスト生成コンポーネントにより受け取られると、テキスト生成コンポーネント２３０は、受け取ったコマンドに合致するエントリをテキストデータベース内で検索することに進む。一実施形態では、テキストデータベース２２０は、複数のエントリを含むＸＭＬデータベースであり、そのエントリには、コントロールボタンのタイプまたは対話の対象となるその他のアイテムのタイプ、アクションのタイプ、コントロールボタンの新しい状態（例えば、チェックされた、チェックが外された、展開された、折り畳まれた、など）、および、アクションに関するテキストが含まれる。しかしながら、その他のデータ記憶方法を使用してテキストを保持することもできる。さらに、その他の情報をテキストデータベース２２０内に保持することもできる。以下の表１に、一実施形態にしたがうテキストデータベースの一部の例を提供する。
【００６９】
【表１】
2008506185.tif 000003
【００７０】
例えば、記録コンポーネントから受け取られたコマンドに関する情報が、action type = “invoke” control type = “button” control name = “OK” “click”であると仮定すると、テキスト生成コンポーネント２３０は、テキストデータベース２２０を検索し、この情報に合致するエントリを見つける。次いで、テキスト生成コンポーネント２３０は、「click OK」のエントリからテキストを取り出す。このテキスト取得は、ステップ９３０に示されている。
【００７１】
当該ステップの記録中に、作成者が、図６に示したユーザインターフェース６００上のユーザアクションボタン６３０を選択することによって、このステップをユーザアクションステップとして指示した場合、または、テキストデータベース２２０内のエントリが、このアクションがユーザアクションであることを示した場合、一実施形態では、テキスト生成コンポーネント２３０は、得られたテキストに所望のアクションの記述を追加するよう作成者に促すことができる。これは、ステップ９４０に示されている。次いで、作成者は、ステップ９５０でテキストを提供することができる。しかしながら、作成者は、このステップを無視して、後で編集段階の間に情報を追加することもできる。追加されるテキストがあれば、ステップ９６０でテキスト２３５に追加される。
【００７２】
必要とされるユーザアクションがない場合、または作成者が必要なユーザアクション情報を提供した場合、テキストジェネレータ２３０は、得られたテキストをテキスト文書に追加する。これは、ステップ９７０に示されている。図９のステップ９１０〜９７０は、図４のステップ４６０に対応することに留意されたい。
【００７３】
本発明を特定の実施形態と関連させて説明したが、当業者であれば、本発明の趣旨および範囲を逸脱することなく、形式および詳細に変更を加えることができることが理解されよう。
【図面の簡単な説明】
【００７４】
【図１】本発明を使用できる例示的な一環境を示すブロック図である。
【図２】本発明の自動テキスト生成システムのコンポーネントを示すブロック図である。
【図３】本発明を使用できるグラフィカルユーザインターフェースの例を示すスクリーンショットの図である。
【図４】本発明の一実施形態にしたがう、テキスト文書の生成中および編集中に実行されるステップを示すフロー図である。
【図５】記録するために使用できる例示的な表示を示すスクリーンショットの図である。
【図６】本発明の記録ツールを制御するためのユーザインターフェース制御要素の一実施形態を示すスクリーンショットの図である。
【図７】本発明の強調表示機能を示すスクリーンショットの図である。
【図８】生成されたテキストを編集用に作成者に提示する一方法を示すスクリーンショットの図である。
【図９】受け取られたコマンドに関する自動テキストの生成中に実行されるステップをより詳細に示すフロー図である。
【図１】
2008506185.tif 000004
【図２】
2008506185.tif 000005
【図３】
2008506185.tif 000006
【図４】
2008506185.tif 000007
【図５】
2008506185.tif 000008
【図６】
2008506185.tif 000009
【図７】
2008506185.tif 000010
【図８】
2008506185.tif 000011
【図９】
2008506185.tif 000012
【手続補正書】
【提出日】平成19年5月29日(2007.5.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記テキスト生成コンポーネントによって検索可能なテキストデータベースをさらに備え、前記テキストデータベースは、複数のエントリを有し、前記複数のエントリの各々は、少なくとも１つのアクションに関連するテキストを含むことを特徴とする請求項３に記載のテキスト生成システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記テキスト生成コンポーネントは、前記照合に応じて、前記エントリに関する前記テキスト記述を出力することを特徴とする請求項８に記載のテキスト生成システム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１９
【補正方法】変更
【補正の内容】
【請求項１９】
前記ユーザインターフェース自動化コンポーネントはさらに、実行可能情報をテキスト生成コンポーネントに提供することを特徴とする請求項１７に記載の方法。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２４
【補正方法】変更
【補正の内容】
【請求項２４】
実行時に、請求項１４〜２３のいずれかに記載の方法をコンピュータに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能な記憶媒体。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
一実施形態にしたがうと、テキスト生成コンポーネント２３０は、ユーザインターフェース上で作動されたコントロールボタンのタイプと、実行されたアクションとに基づいて、実行されたコントロールボタンのタイプおよびアクションに合致するエントリをテキストデータベース２２０内で検索する。テキストデータベース２２０内で合致が識別されると、テキスト生成コンポーネント２３０は、テキストデータベース２２０から、関連するアクションの自然言語記述を得て、これを、生成されるテキスト文書２３５内に文命令として配置する。代替の一実施形態では、テキスト生成コンポーネント２３０は、ＵＩ自動化モジュール２１４により提供される情報に基づいて、テキスト文書の実行可能ファイルバージョンを生成することもできる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
テキスト生成コンポーネントはまた、テキストデータベース２２０からテキスト記述を選択する際、コントロールボタンの状態を確認する（look to）こともできる。これは、コントロールボタンがチェックボックスである場合、または、展開ツリー（expandable tree）もしくは折り畳みツリー（collapsible tree）である場合に重要である。この場合、目的とする結果に関係なく、コントロールボタンに対するアクションが同じなので、ボックスをクリックするだけでは、アクションを記述するのに適したアクションにならない場合がある。したがって、この場合は、コントロールボタンの新しい状態が、選択されるテキストに影響を及ぼすことになる。例えば、コントロールボタンがチェックボックスであり、これを選択解除する場合、合致するテキストは、コントロールボタンの名前と、コントロールボタンの新しい状態とに基づくことになる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
テキスト編集は、例えば、文法上の必要性から必要とされる場合がある。あるいは、テキスト編集は、記録されたステップの１つがユーザアクションを要したが、その記録時にシステムがユーザアクションの記述を要求しなかったために必要とされる場合がある。このような場合（ユーザ入力が必要とされる場合）、一実施形態にしたがって記録されるべきタスクが実行されている間、テキストジェネレータ２３０は、ユーザがこのステップで何をすべきかに関する命令／記述を作成者が提供するためのスペースをテキスト内に設けるだけである。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
図９は、本発明の一実施形態にしたがう、受け取られたコマンドに関するテキストを生成するために実行されるステップをより詳細に示すフロー図である。ステップ９１０で、記録されたコマンドに関連する情報が、テキスト生成モジュール２３０において、記録コンポーネント２１０から受け取られる。上述したように、この情報は、ＵＩ自動化コンポーネント２１４により提供される。しかしながら、その他のデバイスまたは技法を使用して、ユーザインターフェース上の選択されたアイテムに関連する情報を得ることもできる。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2008506185.tif 000013
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2008506185.tif 000014
【国際調査報告】
2008506185.tif 000015