(57)【要約】  本発明は、ユーザインターフェイス（２０５）上で実行される全タスクでステップを完了する際に、制作者の動作を示す情報を自動的に記録するためのシステム（５００）についてである。記録システム（２００）は、さまざまな構成を有するさまざまなコンピュータ（５０２、５０４）上でタスクを実行するために行われるステップを記録するために使用される。記録されたステップはオーサリングコンポーネント（２４０）にインポートされ、そこで記録されたステップが望ましいコンテンツに編成される。
2008506183.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実行するためにユーザインターフェイス上で行われるステップを示すコンテンツを生成する方法であって、
第１の構成において第１のコンピュータ装置のユーザインターフェイス上のユーザインターフェイス要素のユーザ操作を示す第１のユーザ入力を受け取るステップと、
前記第１のユーザ入力に応答して、前記第１のコンピュータ装置上の前記ユーザインターフェイス要素の前記操作を示す第１の情報を記録するステップと、
第２の構成において第２のコンピュータのユーザインターフェイス上のユーザインターフェイス要素のユーザ操作を示す第２のユーザ入力を受け取るステップと、
前記第２のユーザ入力に応答して、前記第２のコンピュータ装置上の前記ユーザインターフェイス要素の前記操作を示す第２の情報を記録するステップと、
前記コンテンツを取得するために前記第１および第２の情報を結合するステップと
を備えたことを特徴とする方法。
【請求項２】
結合するステップは、第３のコンピュータ装置で実行されることを特徴とする請求項１に記載の方法。
【請求項３】
結合するステップは、前記第１および第２のコンピュータ装置のうちの１つで実行されることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１のユーザ入力に対応する第１のテキストを自動的に生成するステップと、
前記第２のユーザ入力に対応する第２のテキストを自動的に生成するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のテキストを自動的に生成するステップは、前記第１のコンピュータ装置上で実行されることを特徴とする請求項４に記載の方法。
【請求項６】
前記第２のテキストを自動的に生成するステップは、前記第２のコンピュータ装置上で実行されることを特徴とする請求項４に記載の方法。
【請求項７】
前記コンテンツは、前記第１および第２の構成を有するコンピュータ装置上で前記タスクを遂行するために実行される、前記ステップの記述を備えたことを特徴とする請求項１に記載の方法。
【請求項８】
前記第１の情報は、前記第１のコンピュータ装置の前記ユーザインターフェイス上で操作される前記ユーザインターフェイス要素の少なくとも一部の第１の画像を備え、前記第２の情報は、前記第２のコンピュータ装置の前記ユーザインターフェイス上で操作される前記ユーザインターフェイス要素の少なくとも一部の第２の画像を備えたことを特徴とする請求項１に記載の方法。
【請求項９】
結合するステップは、前記第１および第２のコンピュータ装置上の前記ユーザインターフェイス要素の前記ユーザ操作のテキスト記述を受け取るように構成されたエディタコンポーネント上に、前記第１および第２の画像を表示するステップを備えたことを特徴とする請求項８に記載の方法。
【請求項１０】
結合するステップは、
前記第１および第２の画像を前記テキスト記述に埋め込むステップを備えたことを特徴とする請求項３に記載の方法。
【請求項１１】
ユーザインターフェイス上でタスクを実行するためにユーザによってとられるステップを記述するコンテンツを生成するコンテンツ生成システムであって、
第１の構成を有する第１のコンピュータ装置に配置された第１の記録システムであって、ユーザが前記第１のコンピュータ装置でステップを行ったという指示を受け取り、前記ステップを示す第１の情報を記録するように構成される前記第１の記録システムと、
第２の構成を有する第２のコンピュータ装置に配置された第２の記録システムであって、ユーザが前記第２のコンピュータ装置でステップを行ったという指示を受け取り、前記ステップを示す第２の情報を記録するように構成される前記第２の記録システムと、
前記第１および第２の情報を受け取り、前記第１および第２の情報を結合して前記コンテンツを形成するように構成されたエディタコンポーネントと
を備えたことを特徴とするシステム。
【請求項１２】
前記エディタコンポーネントは第３のコンピュータ装置に配置されることを特徴とする請求項１１に記載のコンテンツ生成システム。
【請求項１３】
前記エディタコンポーネントは第１および第２のコンピュータ装置のうちの１つに配置されることを特徴とする請求項１１に記載のコンテンツ生成システム。
【請求項１４】
前記第１および第２の記録システムは、前記第１および第２のコンピュータ装置で前記ユーザによって実行された前記ステップをそれぞれ示す第１および第２の画像として、前記第１および第２の情報を記録するように構成されることを特徴とする請求項１１に記載のコンテンツ生成システム。
【請求項１５】
前記エディタコンポーネントは、前記第１および第２の記録された画像を表示して、関連付けられているテキストを受け取るように構成されることを特徴とする請求項１５に記載のコンテンツ生成システム。
【請求項１６】
前記エディタコンポーネントは、前記関連付けられているテキストに埋め込まれた前記画像を備えた最終コンテンツを生成するように構成されることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項１７】
前記第１の情報を受け取り、前記第１の情報に基づいて前記第１のコンピュータ装置で前記ユーザによって実行される前記ステップを記述するテキストを自動的に生成するよう構成された前記自動テキスト生成システム
をさらに備えたことを特徴とする請求項１１に記載のコンテンツ生成システム。
【請求項１８】
前記自動テキスト生成システムは、前記第２の情報を受け取り、前記第２の情報に基づいて前記第２のコンピュータ装置で前記ユーザによって実行される前記ステップを記述するテキストを自動的に生成するよう構成されることを特徴とする請求項１８に記載のコンテンツ生成システム。
【請求項１９】
前記自動テキスト生成システムは、第３のコンピュータ装置に配置されることを特徴とする請求項１９に記載のコンテンツ生成システム。
【請求項２０】
前記自動テキスト生成システムは、
前記第１のコンピュータ装置に配置され、前記第１の情報に基づいてテキストを生成する第１の自動テキストジェネレータと、
前記第２のコンピュータ装置に配置され、前記第２の情報に基づいてテキストを生成する第２の自動テキストジェネレータと
を備えたことを特徴とする請求項１９に記載のコンテンツ生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヘルプコンテンツなどのコンテンツを生成することに関する。具体的には、本発明は、ユーザインターフェイス上のユーザの動作を示す自動的に生成されたコンテンツのインポートに関する。
【背景技術】
【０００２】
グラフィカルユーザインターフェイス（ＧＵＩ）は、広く使用されるインターフェイスメカニズムである。ＧＵＩは、位置決めタスク（たとえば、長方形のサイズ変更）、ビジュアル修正タスク（たとえば、何かを言い表し難い青の陰影にする）、または選択タスク（たとえば、これが回転させたい百の写真のうちの１つ）に非常に良い。ＧＵＩはまた、シングルステップ機能への迅速なアクセスにも良い。アプリケーションのＧＵＩは、タスク指向の観点から編成される（たとえば、「私のコンピュータをハッカーから保護する」などユーザが行いたい高レベルタスクによって編成）のではなく、機能性の観点から編成される（たとえば、メニュー、ツールバーなどに編成）便利なツールボックスである。
【０００３】
しかし、ＧＵＩも、ユーザに多くの問題を見せる。ツールボックスを例として使用すると、ユーザは、ボックス内のツールを見つけるか、あるいはどのやってツールを使用して複数ステップから成るタスクを完了するかわかるのに、困難を伴う。不明瞭な階層にフォーカスされた単語、小さいボタン、およびタブによって説明されるインターフェイスは、人々がそのタスクについて考える方法には適していない。ＧＵＩは、タスクを達成するために必要な要素を決定するため、タスクを分解するようユーザに求める。この要求が複雑さにつながる。複雑さは別としても、これはＧＵＩ要素（つまり、メニューのクリック、ダイアログのクリックなど）を集約するための時間を要する。これは、熟達したユーザであっても、非効率的で時間の浪費となりえる。
【０００４】
ＧＵＩの問題に対処する１つの既存のメカニズムは、文書のヘルプ手順である。ヘルプ手順はしばしば、ヘルプドキュメント、ＰＳＳ（製品サポートサービス）、ＫＢ（知識ベース）記事、およびニュースグループの投稿の形式をとり、これは顧客のニーズとＧＵＩ問題との間の溝を埋める。これらは、ツールボックスに付属するマニュアルと類似しており、多くの利点を有する。これらの利点には、例として以下を含む。
１）  技術的に、これらは技術的でない制作者にとってさえ、比較的に容易である。
２）  これらはサーバー上で更新しやすいので、接続されているユーザは新しいコンテンツに容易なアクセスを有する。
３）  これらはＧＵＩに教えことによって、ユーザが問題解決を制御できる状態にする。
【０００５】
しかし、ヘルプドキュメント、ＰＳＳ  ＫＢ記事、およびニュースグループは、それぞれ独自の問題を有する。これらの問題には、例として以下を含む。
１）  複雑なタスクは、ユーザの側で大量の処理を必要とする。ユーザは、各ステップで指示される内容からＧＵＩへのマッピングを行う必要がある。これは、ステップがスキップされるか、不正または不十分に記述されるか、または狂った順序で記述されるというエラーとなりえる。
２）  トラブルシュータ、および手順ヘルプドキュメントでさえも、ヘルプトピック内に複雑な分岐を生成する状態情報をしばしば含み、そのためにトピックは長くなり、エンドユーザには読んで処理することが困難になる。ツールバーが失われる場合、および次のステップを行う前にオンにする必要がある場合もある。トラブルシュータは、しばしば（トラブルシュータが自ら答えを見つけることができるべきであるから）もっとも苛立たしい状態についての質問をし、最悪の場合には専門家でない者によって答えることができない。
３）  数百万ものドキュメントがあり、答えを探すことは、どこから検索を開始するか、そしてその後、どのように返された数千もの検索結果から最適なものを選択するかという両方の問題を伴う。
４）  共有のオーサリング構造がない。ニュースグループの投稿、ＫＢ記事、トラブルシュータ、および手順ヘルプドキュメントはすべて、異なる構造およびオーサリング方法を有すが、すべて同様の問題を解決している。
５）  ユーザにとっては、段階を追ったテキストを読んで、記述されている要素のためにＵＩを視覚的に検索し、その要素に関して記述されている動作をとることは、ただ単に困難である。
【０００６】
ＧＵＩの問題に対処するもう１つの既存のメカニズムは、ウィザードである。ウィザードは、ＧＵＩおよびヘルプ手順文書の弱点に対処するために作成された。現在数千ものウィザードがあり、これらのウィザードは、製造されるほとんどすべてのソフトウェア製品で見られる。これは、ウィザードが、既存のテキストベースのヘルプおよびアシスタントによって現在対処されていない真の必要なものを解決するからである。ウィザードは、ユーザがタスク指向の方法で機能にアクセスできるようにし、ＧＵＩまたはツールを自動的に集約できる。ウィザードは、プログラム管理者および開発者が顧客のタスクに対処できる手段をとらせる。ウィザードは、タスク成功のために必要なステップを通じてユーザに段階的に導くボックスの中の専門家のようである。顧客がシステムをセットアップするのを助けるウィザード（たとえば、セットアップウィザード）もあれば、機能付きコンテンツを含み、顧客がコンテンツを作成するのを助けるウィザード（たとえば、ニュースレターウィザードまたはＰｏｗｅｒＰｏｉｎｔのＡｕｔｏＣｏｎｔｅｎｔウィザード）もあり、顧客が問題を診断して解決するのを助けるウィザード（たとえば、トラブルシュータ）もある。
【０００７】
ウィザードは、ユーザに多くの利点をもたらす。ウィザードの利点には以下のようなものがある。
１）  ウィザードは、「タスク」の概念を具体化することができる。ユーザには通常、何を達成するのをウィザードが助けてくれるのかが明確である。段階を追ったページによりユーザは選択を行うことが容易になり、うまく設計されたウィザードの場合に、ユーザが視覚的に圧倒されるような状況は、往々にして減る。
２）  ウィザードは、ソフトウェアの基礎を成す機能を自動的に集約および相互作用し、顧客が選択を行うのに必要とする情報または専門知識を含むことができる。これは、タスクを実行する際のユーザ時間を節約する。
３）  ウィザードは自動的にコンテンツを生成することができ、テキストを作成してレイアウトを計画することによってユーザ時間を節約することができる。
４）  ウィザードは、質問をし、回答を得て、最も適切な次の質問または機能へ分岐するためのよい手段でもある。
【０００８】
しかし、ウィザードもまた、独自の問題を有している。こうした問題の中には、人々が達成しようとするタスクの数のほうが、それらのタスクを達成するためのウィザードよりもはるかに多いことも含む。ウィザードおよびＩＵＩ（Ｉｎｄｕｃｔｉｖｅ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）は、基礎をなすＧＵＩをどのように使用するか顧客に教えず、ウィザードが完了したとき、ユーザは次にどこへ行くべきか確信がないことがしばしばである。ウィザードを制作するコストは依然として高く、ウィザードを制作するには技術的専門知識を備えた人材（たとえばソフトウェア開発者）を必要とする。
【０００９】
さらに、これらのタイプのコンテンツはすべて、さらにもう１つの問題に煩わされる。任意の所定のタスクを実行するためにとられなければならないステップは、タスクが実行されることになるコンピュータの構成に基づいて変わることがある。たとえば、コンピュータの背景表示（または「壁紙」）の変更には、ユーザのコンピュータのオペレーティングシステムに依存して異なるステップを実行することを、ユーザに求められる場合もある。実際、オペレーティングシステムのバージョン番号が異なる場合に、必要とされるステップが異なりさえする。同様に、ステップは、コンピュータのネットワーク構成に依存して（たとえば、コンピュータがネットワークドメイン上にあるか、またはワークグループ上にあるかに依存して）、異なる場合がある。これは、ユーザが、文書のコンテンツにおいてかなり複雑な分岐ロジックを制作することを必要とする。さらに、ユーザは、必要なステップを実行するために複雑な分岐ヘルプテキストを介してナビゲートすることが非常に厄介であると感じる場合もある。
【００１０】
したがって、ユーザによってとられる手順を記述するこれらあらゆるタイプのコンテンツを制作することは、しばしば誤りとなりがちである。ステップを抜かす、ステップを誤って記述する、あるいはＵＩ操作の長いシーケンス内でどのステップが現在記述されているかを見失うことは、容易に起こりがちである。しかし、この文書の手順ヘルプコンテンツは、非常に一般的である。このようなヘルプコンテンツは、しばしば製品に同梱され、オンラインヘルプコンテンツは製品サポートチームに提供され、企業内の手順は特定のビジネスプロセス用にこのようにしばしば文書化される。したがって、このタイプの情報は制作が困難であり、しかもエラーを含む。
【００１１】
さらに、エンドユーザは通常、制作されているステップに従わなければならない。段階ごとのテキストを読んでから、記述されている特定の制御要素を探してＵＩを検索すること、およびこの制御要素に関して適正な動作を取ることは、難しい可能性がある。多くのユーザはこれを非常に負担に感じるあまり、テキストの最初の１ステップまたは２ステップにざっと目を通し、ほとんど文書テキストのステップを参照しなおさずに、次にどのＵＩ要素を作動させる必要があるかを精一杯決定しようとするということがわかっている。さらに目は、単語を読み、心の中でその単語を絵に変換し、対応するＵＩ制御要素を探すよりも、はるかに容易に絵を見つけて認識することもわかっている。しかしながら、行うべき動作の任意の種類のビジュアル描写（Ｖｉｓｕａｌ  Ｄｅｐｉｃｔｉｏｎ）を有するために、制作者は苦心して各ステップのスクリーンショットを取り、画像を切り取りし、それらをドキュメントの正しい場所に貼り付けなければならず、これは従来、まさに行われてきたことである。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の一実施形態は、数千ものタスク（またはウィザード）を制作すること、およびＧＵＩと統合してタスクを実行するのにどうやってＧＵＩを使用するかユーザに教えるか、またはユーザに代わってタスクを実行するかのいずれかのための容易な方法を実現するコンテンツコンポーネントを提供することによって、ウィザード、ヘルプ、知識ベースの記事、およびトラブルシュータの問題の一部に対処する。１つの具体的な実施形態において、本発明は、アクティブコンテンツウィザード（ＡＣＷ）スクリプトの制作、およびＡＣＷスクリプトの一部であるテキストと画像を扱う。
【課題を解決するための手段】
【００１３】
本発明は、ユーザインターフェイス上で実行される全タスクにおけるステップの完了の際に、制作者の動作を示す情報を自動的に記録するためのシステムを対象としている。記録システムは、さまざまな構成を有する異なるコンピュータ上でタスクを実行するためにとられるステップを記録するために使用される。次に、記録されたステップは、オーサリングコンポーネントにインポートされ、そこで記録されたステップは、望ましいコンテンツに編成される。
【００１４】
一実施形態において、記録システムは、ユーザインターフェイス上の制作者の動作に対応する画像を記録する。次に、記録システムは、記録した画像をオーサリングコンポーネントに渡すことができ、そこで制作者は、動作を記述するために画像に対応するテキストを生成することができる。画像は、必要に応じて、テキストに埋め込んで発行できる。
【００１５】
一実施形態において、記録システムは、画像に対応するテキストを自動的に生成するテキストジェネレータを含んでいる。その後、このテキストは、命令またはその他の情報をユーザに提供するテキストドキュメントを形成するために使用することができる。テキストドキュメントを生成するプロセス中またはプロセス後に、テキストは、ドキュメントの可解性を高めるためにエディタを使用して編集することができる。
【発明を実施するための最良の形態】
【００１６】
本発明は、ユーザインターフェイス上のユーザの動作を示す自動的に記録されたコンテンツを扱う。本発明をより詳細に説明するのに先立ち、本発明が使用されうる１つの典型的な環境について説明する。
【００１７】
図１は、本発明を実現できる、適合するコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適合するコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関していかなる制限を示唆することも意図していない。またコンピューティング環境１００は、典型的オペレーティング環境１００に示されるコンポーネントのいずれか１つまたはその組み合わせに関して、いかなる依存または要件も有するものとして解釈されるべきでない。
【００１８】
本発明は、多数の他の汎用または特定用途コンピューティングシステム環境または構成と共に動作可能である。本発明と共に使用するための適合する既知のコンピュータシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバーコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスの任意を含む分散コンピューティング環境などを含むが、これらに限定されることはない。
【００１９】
本発明は、コンピュータによって実行されるプログラムモジュールなどの、コンピュータ実行可能命令の一般的なコンテキストにて説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを通じてリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境において、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に位置づけられる。
【００２０】
図１を参照すると、本発明を実装するための典型的なシステムは、コンピュータ１１０の形式の汎用コンピュータ装置を含む。コンピュータ１１０のコンポーネントは、処理装置１２０、システムメモリ１３０、およびシステムメモリを含むさまざまなシステムコンポーネントを処理装置１２０に接続するシステムバス１２１を含むことができるが、これらに制限されない。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む、任意のタイプのバス構造であってもよい。制限ではなく例として、そのようなアーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびメザニンバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００２１】
コンピュータ１１０は通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスでき、揮発性および不揮発性媒体、リムーバブルおよびリムーバブルでない媒体を含む任意の利用可能な媒体であってよい。制限ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法または技術において実装される揮発性および不揮発性の、リムーバブルおよびリムーバブルでない媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、その他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、その他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、その他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ１１０によってアクセスすることができる他の媒体を含むが、これらに制限されることはない。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを搬送波または搬送メカニズムなどの変調データ信号を組み込み、任意の情報伝達媒体を含む。「変調データ信号」という用語は、１つまたは複数の特性セットを有するか、または信号内の情報をコード化するような方法で変更された信号を意味する。制限ではなく、例として、通信媒体は、有線ネットワークまたは直接配線接続のような有線媒体、および音響、ＲＦ、赤外線、ならびに他の無線媒体などの無線媒体を含む。上記の任意の組み合わせもまた、コンピュータ可読媒体の範囲に含まれる。
【００２２】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性メモリおよび／または不揮発性メモリの形式でコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の構成要素間の情報の転送を助ける基本ルーチンを含むＢＩＯＳ（基本出力システム）１３３は通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は通常、処理装置１２０によって即時アクセス可能および／または現在操作中の、データおよび／またはプログラムモジュールを含む。制限ではなく例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２３】
コンピュータ１１０は、他のリムーバブル／リムーバブルでない、揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例としてのみ、図１は、リムーバブルでない不揮発性磁気媒体との書き込みまたは読み取りを行うハードディスクドライブ１４１、リムーバブルの不揮発性磁気ディスク１５２との読み取りまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭまたはその他の光媒体などのリムーバブルの不揮発性光ディスク１５６との読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。典型的なオペレーティング環境において使用することができる他のリムーバブル／リムーバブルでない、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、ＤＶＤ（デジタル多用途ディスク）、デジタルビデオテープ、半導体（Ｓｏｌｉｄ  Ｓｔａｔｅ）ＲＡＭ、半導体ＲＯＭなどを含むが、これらに制限されない。ハードディスクドライブ１４１は通常、インターフェイス１４０などのリムーバブルでないメモリインターフェイスを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェイス１５０などのリムーバブルメモリインターフェイスによってシステムバス１２１に接続される。
【００２４】
上述され、図１に示されるドライブおよびその関連するコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストレージを提供する。たとえば、図１において、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するように示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであることも、異なるものであることもできることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくともそれらが異なるコピーであることを示すために本明細書において異なる番号を付けてある。
【００２５】
ユーザは、キーボード１６２、マイクロフォン１６３、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよびその他の入力装置は、システムバスに接続されているユーザ入力インターフェイス１６０を介して処理装置１２０にしばしば接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造によって接続することもできる。モニタ１９１またはその他の種類のディスプレイ装置も、ビデオインターフェイス１９０などのインターフェイスを介してシステムバス１２１にも接続される。モニタに加えて、コンピュータは、出力周辺インターフェイス１９５を介して接続できるスピーカ１９７およびプリンタ１９６などの他の周辺出力装置を含むこともできる。
【００２６】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルド装置、サーバー、ルーター、ネットワークＰＣ、ピアデバイスまたはその他の共通ネットワークノードなどであってもよく、通常はコンピュータ１１０に関連して説明されている要素の多くまたはすべてを含んでいる。図１に表されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【００２７】
ＬＡＮネットワーク環境に使用される場合、コンピュータ１１０はネットワークインターフェイスまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境に使用される場合、コンピュータ１１０は通常、モデム１７２またはインターネットなどのＷＡＮ１７３上での通信を確立するための他の手段を含む。モデム１７２は、内蔵または外付けであってもよく、ユーザ入力インターフェイス１６０または他の適切なメカニズムを通してシステムバス１２１に接続することができる。ネットワーク化された環境において、コンピュータ１１０に関連して表されるプログラムモジュール、またはその部分は、リモートメモリ記憶装置に格納することもできる。制限ではなく例として、図１は、リモートコンピュータ１８０に常駐するものとして、リモートアプリケーションプログラム１８５を示す。ネットワーク接続が典型的なものであり、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されたい。
【００２８】
図２は、本発明の一実施形態による記録システム２００のコンポーネントを示すブロック図である。図２もまた、レコーダ２０７および自動テキストジェネレータ２０３を備えるシステム２００を示す。レコーダ２０７は、記録コンポーネント２１０、フックコンポーネント２１２、およびユーザインターフェイス（ＵＩ）自動化コンポーネント２１４を含む。テキストジェネレータ２０３は、テキストデータベース（またはデータストア）２２０、およびテキスト生成コンポーネント２３０を含む。システム２００は、ユーザインターフェイス２０５と対話する。制作者は、ユーザインターフェイス２０５の制御で実行される動作に対応する画像を自動的に記録するようシステム２００のコンポーネントを構成することができ、テキストジェネレータ２０３は、これらの動作を記述するテキスト２３５を自動的に生成する。制作者２０１はまた、エディタ２４０上で、自動的に生成されたテキスト２３５を編集するか、またはテキストを最初から生成して、タスク（またはＵＩ制御動作）を記述する最終テキスト２４５を取得することができる。最終テキスト２４５はさらに、そこに埋め込まれている画像を例示的に含むこともできる。図２におけるいくつかのコンポーネントが、ここでさらに詳細に説明される。
【００２９】
一実施形態において、ユーザインターフェイス２０５は、ユーザがタスクを実行するよう動作できるようにする制御との従来型のグラフィカルユーザインターフェイスである。ユーザインターフェイス２０５は、図１に示されているディスプレイ装置１９１上に例示的に表示される。このタイプのグラフィカルユーザインターフェイス（ＧＵＩ）は、幅広く使用されるインターフェイスメカニズムである。
【００３０】
記録コンポーネント２１０は、一実施形態において、制作者２０１または別のユーザが、ユーザインターフェイス２０５上でタスクを実行できるようにし、タスクの各ステップの画像をキャプチャすることによってタスクを記録できるようにするアプリケーションプログラムである。以下で詳細に説明されるように、制作者２０１がユーザインターフェイス２０５上でタスクに関連付けられているステップを実行している間、記録コンポーネント２１０は、ユーザインターフェイス２０５上で制作者が対話する制御およびウィンドウについての情報を記録する。この情報はテキストジェネレータ２３０に例示的に提供されて、ヘルプドキュメントなどのドキュメントで自動的にテキストを生成する。
【００３１】
記録コンポーネント２１０は、フックコンポーネント２１２およびユーザインターフェイス（ＵＩ）自動化コンポーネント２１４を通じてユーザインターフェイス２０５と対話する。これらのコンポーネントは記録コンポーネント２１０から分離されていてもよく、あるいは一部の実施形態において、これらのコンポーネントは記録コンポーネント２１０と統合されていてもよい。
【００３２】
一実施形態において、フックコンポーネント２１２は、コンピュータによって使用されるオペレーティングシステム内のモジュールまたはコンポーネントである。たとえば、フックがマウスクリックに設定される場合、マウスクリックの示す情報（メッセージなど）はそれが消費されるフックコンポーネント２１２に転送され、その関連付けられている画像が記録コンポーネント２１０によって記録された後、マウスクリックを受け取るように登録されているコンピュータ内の他のコンポーネントのために再生される。したがって、一般に、フックコンポーネント２１２は、オペレーティングシステムとターゲットアプリケーションとの間のバッファとして動作する。
【００３３】
フックコンポーネント２１２は、たとえばシングルクリック、ダブルクリック、右または左クリック、キーボード動作、タッチセンシティブスクリーン入力などの受信した信号のタイプのような、ほぼすべての入力動作を探すように構成することができる。動作を表す情報が記録コンポーネント２１０によって記録されると、マウスクリック（あるいはどのような動作が記録されていようと）を表す情報は、フックコンポーネント２１２によってアプリケーションに再生される。このことの１つの理由は、第１の動作が記録される前にユーザが第２の動作をとる場合があるからである。第２の動作は、ユーザインターフェイスの状態の変化を引き起こし、その結果、第１の動作の不適切な記録となることもある。第１のマウスメッセージを消費し、記録が完了したらそれを再生することによって、これは第１の動作が適切に記録されることを保証する。
【００３４】
フックコンポーネント２１２によって実行される機能（つまり、マウスクリックを聞いてそれらを再生する）が別個のスレッドで例示的に実行されることにも留意されたい。これは、すべてのユーザインターフェイス動作（たとえば、マウスクリック、キーボード動作など）が、全く失われることなく適正に記録され再生されることを保証する。さらに、フックコンポーネント２１２の記録および再生メカニズムは、オペレーティングシステム内で暗黙の任意のタイムアウト機能を例示的にオーバーライドすることができる。これは、オペレーティングシステムのタイムアウト期間が短すぎて動作の適正な記録ができない場合に必要になる可能性がある。
【００３５】
ユーザインターフェイス自動化コンポーネント２１４は例示的に、インターフェイス２０５を介して制作者またはユーザによって実行される全タスクの微細なステップを解釈するように構成されたコンピュータプログラムである。一実施形態において、ユーザインターフェイス自動化コンポーネント２１４は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社によるＭｉｃｒｏｓｏｆｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｕｔｏｍａｔｉｏｎ（登録商標）を使用して実装されるＧＵＩ自動化モジュールである。このモジュールは、可視のユーザインターフェイスについての情報にアクセスし、可視ユーザインターフェイスとプログラム的と対話するための、プログラム的方法を提供する。しかし、システムのセットアップに依存して、ユーザインターフェイス自動化コンポーネント２１４は、グラフィカルユーザインターフェイスをプログラム的にナビゲートして、ユーザインターフェイス上でコマンドを検出する（およびオプションでプログラム的にＧＵＩをナビゲートして、遂行と実行する）ことができる任意のアプリケーションを使用して実装することができる。
【００３６】
このように、ユーザインターフェイス自動化コンポーネント２１４は、タスク順に、制作者２０１（または別のユーザ）によって、ユーザインターフェイス２０５で実行される所望のタスクに関連付けられている各ステップを検出する。たとえば、以下でさらに詳細に説明されるように、ＧＵＩ上のボタンをクリックして新しいメニューまたはウィンドウを表示するよう、タスクがユーザに要求する場合、ユーザインターフェイス自動化コンポーネント２１４は、ユーザインターフェイス２０５上でマウスカーソルの場所に位置づけられた制御およびそのサイズとその親ウィンドウを決定する。記録コンポーネント２１０は、フックコンポーネント２１２からの情報（たとえば、制御のタイプ、名前および状態）を使用して、ステップを実行するために使用された制御の名前およびプロパティを記録する。この情報は、記録コンポーネント２１０がステップを実行するために制作者によって使用されたボタンまたは制御の画像を記録することができるように、ユーザインターフェイス自動化コンポーネント２１４およびフックコンポーネント２１２から記録コンポーネント２１０に提供される。画像を取得することは、図３に関して以下でさらに詳細に説明される。
【００３７】
テキスト生成コンポーネント２３０は、記録プロセス中に実行または遂行される動作を記述する自然言語テキストを生成するように構成されたプログラムまたはモジュールである。テキスト生成コンポーネント２３０は、記録された画像および記録コンポーネント２１０によって記録されたその他の情報を使用して、データベース２２０を検索し、記録されているステップに対応するテキストデータベース２２０から正しいテンプレートまたはエントリを選択する。
【００３８】
テキストデータベース２２０は例示的に、テキストジェネレータ２３０によって検索可能なデータベースまたはその他の情報記憶システムである。テキストデータベース２２０は、ユーザインターフェイス２０５で利用可能な制御に関連する情報を含んでいる。この情報は、たとえば、自然言語文としての、制御の名前、制御のタイプ、制御で実行される動作、および動作のテキスト記述を含むことができる。
【００３９】
一部の実施形態において、エントリのためのテキスト記述は、複数言語において提供される。テキスト記述が複数言語で提供される場合、正しい言語が選択されるようにする言語識別子がエントリごとに提供される。
【００４０】
しかし、システムの必要に応じて、その他の情報がテキストデータベース２２０で提供されうる。一実施形態において、テキストデータベース２２０内の一部のエントリは、順番で実行される複数の制御によって例示される２つまたはそれ以上の動作に関連する情報を有する。複数制御上の複数動作がテキストデータベース２２０内の単一エントリによって表される場合、そのエントリのためのテキストは、両方の制御で実行される動作の自然言語記述を、単一文として含む。２つのコマンドの記述を単一文として結合することによって、最終テキストドキュメントの読みやすさが改善される。
【００４１】
一実施形態において、テキストデータベース２２０はＥｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で書かれる。各エントリのデータは一連のサブエントリとして格納することができ、ここでエントリの各サブエントリはタスクを識別するのに必要とされる個々の情報を示す。しかし、データを格納するために他のフォーマットを使用してもよい。
【００４２】
一実施形態において、テキスト生成コンポーネント２３０は、テキストデータベース２２０内のエントリを検索するときに、２つまたはそれ以上の記録された動作を調べる。これは、より可変性のテキストドキュメントを提供するために行うことができる。たとえば、良い手順ドキュメントはしばしば、読みやすさを向上として、複数のステップを単一文に結合する。テキスト生成コンポーネント２３０が、テキストデータベース２２０内の記録された情報と一致する２つまたはそれ以上を識別する場合、テキスト生成コンポーネント２３０は、各エントリの採点に基づいてエントリのあいまい性を除去し、最高スコアを有するエントリを選択することなどによって、データベース内のどのエントリを選択するか決定する任意の既知の方法を使用することができる。
【００４３】
一実施形態によれば、ユーザインターフェイス上で作動される制御のタイプおよび実行される動作に基づいて、テキスト生成コンポーネント２３０は、実行される制御のタイプおよび動作と一致するエントリのためのテキストデータベース２２０を検索する。テキストデータベース２２０内の一致が識別されると、テキスト生成コンポーネント２３０は、テキストデータベース２２０から動作の関連する自然言語記述を取得し、生成されたテキストドキュメント２３５に文命令としてそれを配置する。代わりの実施形態において、テキスト生成コンポーネント２２０は、ＵＩ自動化モジュール２１４によって提供される情報に基づいてテキストドキュメントの実行可能バージョンを生成することもできる。
【００４４】
テキストデータベース２３５からテキスト記述を選択する場合、テキスト生成コンポーネントは制御の状態にも配慮するかもしれない。これは、制御がチェックボックスまたは展開可能または折りたたみ可能ツリーである場合に重要でなる可能性もある。この場合、望む結果にかかわらず制御上の動作が同じであるため、単にボックス上をクリックすることは、動作を記述するのに適切ではない場合もある。したがって、これらの場合には、制御の新しい状態が選択されたテキストに影響を与えることになる。たとえば、制御がチェックボックスであり、選択解除されることになる場合、一致するテキストは制御の新しい状態と、加えて制御の名前とに基づくだろう。
【００４５】
テキストエディタ２４０は、自動的に生成されたテキスト２３５への、情報またはテキストを修正、変更、または追加するように構成されるエディタである。テキストジェネレータ２３０によって生成された結果のテキスト、および制作者によって実行された動作に依存して、その理解しやすさをさらに高めるためにテキストを編集することが必要となる場合もある。したがって、テキストエディタ２４０は、生成されたテキスト２３５を受け取り、生成されたテキストを制作者２０１が編集できるようにする。
【００４６】
たとえば、文法的な必要性のため、あるいは記録されたステップの１つがユーザ動作を要求し、記録された時点でシステムがユーザ動作の記述を要求しなかったため、テキスト編集が要求されることもある。そのような場合（ユーザ入力が要求される場合）に、一実施形態に従って記録されるタスクを実行中に、テキストジェネレータ２３５は、制作者のためにテキスト内のスペースを提供し、ユーザがこのステップにおいてすべきことの命令／記述を提供するのみである。
【００４７】
たとえば、ユーザによって実行され、記録コンポーネントによって記録されるタスクが、コンピュータ画面の背景パネルを変更することになると仮定する。これは、ユーザに背景のパターンを選択するよう要求する。したがって、背景を変更するための記録されたユーザ動作のためにデータベースによって返されるテキストは、「［動作の記述を挿入（ｉｎｓｅｒｔ  ｄｅｓｃｒｉｐｔｉｏｎ  ｏｆ  ａｃｔｉｏｎ）］を選択してください」であることができ、ここで制作者は「リストから好みの背景を選択してください」と読めるようにテキストを編集することになる。さらに、編集段階の間、制作者２０１は、タスクを記録する以前に提供されなかった場合、全タスクの記述を提供することができる。テキストが編集されると、最終テキスト２４５は、オーサリングツール２００から出力され、最終テキストが必要に応じてユーザによって取り出せるようにする適切な記憶モードで格納される。
【００４８】
図３は、本発明の一実施形態によって、どのようにシステム２００が動作するかを詳細に示すフロー図である。第１に、制作者２０１は記録コンポーネント２１０を始動する。これは、図３のブロック４００によって示される。これを行うために、制作者２０１は、図４に示される制御４０２などの制御を単に作動させる。記録ボタン４１０は、記録を開始するために制作者２０１によって作動させることができる。停止ボタン４０６は、記録を停止するために作動される。以下に説明されるように、制作者２０１は、テキストエディタ２４０のテキストを編集の間、ユーザ動作の記述を挿入することができる。これを行うために、ユーザはボタン４０８を作動させる。以下で説明するように、同様に、制作者２０１は自動的に生成されたテキストを編集することができる。これは、図４におけるテキストボタン４１０を作動させることによって行うことができる。さらに、一部の実施形態において、ユーザが値を設定できるように追加のボタンを提供することができる。これにより、たとえば実行時にユーザがテキストを編集ボックスに打つよう要求される場合、正確なテキストが生成されるようにすることができる。もちろん、他のさまざまな制御を使用することもできる。
【００４９】
図３を再び参照すると、制作者２０１が記録コンポーネント２１０を始動すると、システムは単に、ユーザがユーザインターフェイス２０５で動作をとるのを待つ。図２はユーザが制作者２０１であることを示すが、ユーザは別のユーザであってもよいことに留意されたい。
【００５０】
ユーザがユーザインターフェイス２０５で動作をとられると（ユーザインターフェイス上で制御要素を操作することによってなど）、フックコンポーネント２１２は、ユーザ動作を示すメッセージまたはその他の信号を受け取る。フックコンポーネント２１２について上述のように、フックコンポーネント２１２はメッセージを消費し、それを記録待ちのキューに置く。ＵＩ２０５上で動作をとるユーザは、図３のブロック４１２によって示される。
【００５１】
次に、記録コンポーネント２１０は、ＵＩ自動化コンポーネント２１４から画像識別情報を受け取る。これは、図３のブロック４１４によって示される。１つの例示的な実施形態において、ＵＩ自動化コンポーネント２１４は、ユーザインターフェイス２０５においてユーザによってとられる動作を表すか、またはこれに対応するディスプレイ画面上の画像を、記録コンポーネント２１０が記録できるようにする多くの情報の項目を記録コンポーネント２１０へ提供する。１つの例示的な実施形態において、これらの情報の項目は、ユーザが作動あるいは操作したディスプレイ画面上の制御要素の位置、その制御要素のサイズ、および制御要素を含む親ウィンドウである。
【００５２】
次に、記録コンポーネント２１０は、ユーザインターフェイス２０５に関連付けられ、ユーザによってとられる動作に対応するかまたはこれを反映するスクリーンショットを示す実際の画像情報を取得する。これは、図３のブロック４１６によって示される。
【００５３】
このステップを実行するため、記録コンポーネント２１０は、システムの操作を高めるために、多くのことを行うことができる。たとえば、記録コンポーネント２１０は、ユーザによって操作された制御要素のみ以上の実際の画像情報（または実際のスクリーンショット）を記録することが有用であると決定することもある。たとえば、現在ディスプレイ上にユーザによって操作されている複数の類似した制御要素がある場合、これは真である可能性がある。たとえば、ユーザがユーザインターフェイスで「ＯＫボタン」をクリックしたと仮定する。しかしその時、ディスプレイ画面上には、複数の「ＯＫボタン」がある場合もある。したがって、さまざまな「ＯＫボタン」間のあいまいさをなくすために、記録コンポーネント２１０は、ユーザによって操作される特定の「ＯＫボタン」だけではなく、その「ＯＫボタン」周囲の望ましい数のピクセルのための、実際のスクリーンショット情報を取得することができる。これにより、単なる制御の画像自体よりも大きいコンテキストを画像にもたらす。
【００５４】
同様に、記録コンポーネント２１０はまた、制御要素を含む全親ウィンドウのスクリーンショット画像を記録することもできる。もちろんこれば、ユーザが操作した制御要素を具体的に識別するのに使用できる大量の余分なコンテキストを含む。
【００５５】
追加のコンテキストが記録コンポーネント２１０によって記録される必要があるかどうかを決定するために、記録コンポーネント２１０は、幅広いさまざまな技術の任意を使用してこの決定を行うことができる。たとえば、記録コンポーネント２１０は、記録されるコンテキストの量を識別するヒューリスティックを配置することができる。ヒューリスティックは、操作される制御要素のサイズと形状、操作される制御要素の特定の機能、画面上の制御要素の位置（たとえば、制御要素が左上角にある場合、記録コンポーネント２１０は制御要素の右下側でより多くのピクセルを取ることができる）に基づくか、またはヒューリスティックは、位置する場所および制御要素によって実行される機能に関わらず、制御要素の周囲で取られるピクセルの個定数を単に反映してもよい。
【００５６】
記録コンポーネント２１０は、任意の既知の技術を使用して実際のスクリーンショット画像情報を取得することができる。たとえば、ほとんどのオペレーティングシステムにおいて、アプリケーションまたは他のコンピューティングコンポーネントが現在表示されているスクリーンショット情報を取得できるようにする公開アプリケーションプログラミングインターフェイス（ＡＰＩ）がある。したがって、１つの例示的な実施形態において、記録コンポーネント２１０は、必要とするスクリーンショット画像情報の座標、コンテキスト情報の量、およびオプションで制御要素の親ウィンドウを認識すると、単にＡＰＩ呼び出しを行い、情報を取得する。
【００５７】
実際の画像情報を取得すると、記録コンポーネント２１０は、それを後に使用できるように記録する。これは、図３のブロック４１８によって示される。もちろん、記録コンポーネント２１０がＵＩ自動化コンポーネント２１４によって提供されるその他の情報を記録できることも、この時点で留意されたい。たとえば、ＵＩ自動化コンポーネント２１４は例示的に、制御名、制御タイプ、制御で実行される動作、実行される操作のタイプ（マウスクリック、マウスホイールの回転、キーボードのキーストローク、タッチパッドの入力など）を記録コンポーネント２１０に提供する。この情報は、記録コンポーネント２１０によってすべて記録することができる。
【００５８】
本発明の一実施形態によれば、テキストデータベース２２０と連動して、テキスト生成コンポーネント２３０は、キャプチャした画像に関連し、ユーザインターフェイス２０５上でユーザによってとられる動作に関連したテキストを自動的に生成する。これらの項目が使用される一実施形態において、記録コンポーネント２１０は、キャプチャされた実際の画像情報をテキスト生成コンポーネント２３０に送信する。これは、図３のブロック４２０によって示される。自動的に生成されたテキストは例示的に、ユーザインターフェイス２０５の複数の操作を要求する全タスクを実行するために、ユーザインターフェイス２０５のユーザ操作ごとの段階的な命令に対応する記述された手順を提供する。
【００５９】
テキストを自動的に生成する一実施形態は、図５〜図８に関して以下で説明される。簡単には、このテキストを生成するために、テキスト生成コンポーネント２３０は、任意の適切な方法を使用することができる。１つの例示的な方法において、テキスト生成コンポーネント２３０は、記録コンポーネント２１０から受け取られた情報に対応するエントリのために、テキストデータストア２２０を検索する。たとえば、テキストデータストア２２０は例示的に、ユーザインターフェイス２０５上でユーザによって操作された制御またはその他の項目のタイプ、動作のタイプ、およびその動作に対応するテキストを含む複数のエントリを含むＸＭＬデータベースであってもよい。もちろん、他のデータ記憶方法を使用してデータストア２２０を実装することもでき、データストア２２０は追加情報または別の情報も含むことができる。
【００６０】
たとえば、記録コンポーネント２１０から受け取られる情報が、ユーザが「ＯＫボタン」をクリックした（あるいは呼び出した）ことを示していると仮定する。次に、テキスト生成コンポーネント２３０は、テキストデータストア２２０で、この動作のタイプと一致するエントリを検索する。一致が見つかると、テキスト生成コンポーネント２３０は、その動作のタイプを記述するテキストデータストア２２０内のそのエントリからテキストを取り出す。このテキストは、たとえば、単に「ＯＫをクリックしてください」といっているかもしれない。
【００６１】
どのような場合でも、テキスト生成コンポーネント２３０は例示的に、ユーザインターフェイス２０５上でとられ、記録コンポーネント２１０によって記録されたユーザ動作を記述するテキストを自動的に生成する。これは、図３のブロック４２２によって示される。
【００６２】
生成されたテキストは、図２のブロック２３５によって示される。１つの典型的な実施形態において、記録コンポーネント２１０によって記録された画像は、生成されたテキスト２３５に自動的に埋め込まれるか、またはプロセスの後半で相互に連動して再呼び出しまたは表示できるように、生成されたテキスト２３５に少なくとも関連付けられる。
【００６３】
次に、記録コンポーネント２１０によって記録された画像データおよび自動的に生成されたテキストは、エディタコンポーネント２４０に提供される。記録コンポーネント２１０によって記録された画像および自動的に生成されたテキストは、制作者２０１がそれらの画像に対応するテキストを生成できるように、エディタ２４０においてディスプレイ画面上に例示的に表示される。画像および生成コンポーネント２３０によって生成されたテキストの表示は、図３のブロック４２４によって示される。
【００６４】
次に、制作者は、自動的に生成されたテキストを変更するか、または新しいテキストを生成することができる。これは、図３のブロック４３６によって示される。最後に、最終テキスト２４５は、望ましいフォーマットまたはスキーマに従って、出力または保存される。最終テキスト２４５は、そこに埋め込まれているキャプチャされた画像をオプションで含むことができる。これは、図３のブロック４３８によって示される。
【００６５】
自動的にテキストを生成するようにシステム２００をセットアップするために、制作者は、図５に示されているものと同様のウィンドウを最初に開くことによって、記録コンポーネント２１０を作動させる。この時点で制作者は、直線４５０および４５２によって示される画面の部分を編集することができ、作成されるドキュメントのタイトルおよびタスクに関する任意の予備情報などの情報を含むことができる。しかし、この情報は、後の編集の間にテキストドキュメントに追加することができる。
【００６６】
システム２００が画像を記録し始める際に、ＵＩ自動化コンポーネント２１４は、ユーザインターフェイス２０５で利用可能なユーザインターフェイス要素を決定する。さらに、記録コンポーネント２１０は、ＵＩ自動化コンポーネント２１４から提供される情報を使用してアクセスされる制御として、どの制御が現在識別されているかを示すユーザインターフェイス上の指示を提供する。制御のこの強調表示は、図６の参照番号４５４によって示される。
【００６７】
図７は、本発明の一実施形態による、受信され記録されたステップのテキストを生成するために実行されるステップをさらに詳細に示すフロー図である。ブロック４６０は、記録されたステップに関連する情報がテキスト生成コンポーネント２３０において記録コンポーネント２１０から受け取られることを示す。
【００６８】
記録されたステップに関連する情報がテキスト生成コンポーネント２３０によって受け取られると、テキスト生成コンポーネント２３０は、受け取ったコマンドと一致するエントリをテキストデータベース２２０の検索へ進む。これは、ブロック４６２によって示される。一実施形態において、テキストデータベース２２０は、対話する制御またはその他の項目のタイプ、動作のタイプ、制御の新しい状態（たとえば、チェック、チェックはずし、展開、折りたたみなど）、および動作の対応するテキストを含む、複数のエントリを収容するＸＭＬデータベースである。しかし、テキストを保持するために他のデータ記憶方法を使用してもよい。さらに、他の情報をテキストデータベース２２０に保持することもできる。一実施形態によるテキストデータベースの一部の例は、以下の表１で提供される。
【００６９】
【表１】
2008506183.tif 000003
【００７０】
たとえば、コマンドのために記録コンポーネントから受け取られた情報が、動作タイプ＝”ｉｎｖｏｋｅ”制御タイプ＝”ｂｕｔｔｏｎ”制御名＝”ｃｌｉｃｋ  ＯＫ”であったと仮定すると、テキスト生成コンポーネント２３０は、テキストデータベース２２０を検索してこの情報と一致するエントリを見つける。次にこれは、「ｃｌｉｃｋ  ＯＫ」に対応するエントリからテキストを取り出す。一致するエントリに関連付けられたテキストの取得は、ブロック４６４において示される。
【００７１】
当該のステップの記録の間、図４に示されるユーザインターフェイス４０２上でユーザ動作ボタン４０８を選択することによって制作者がこのステップをユーザ動作ステップと指定した場合、またはテキストデータベース２２０のエントリが、動作がユーザ動作であることを示す場合、テキスト生成コンポーネント２３０は、一実施形態において、取得されたテキストへ動作の記述を追加するよう制作者に促すことができる。これは、ブロック４６６において示される。次いで制作者は、ブロック４６８において望ましいテキストを提供することができる。しかし、制作者はこのステップを無視して、後に編集段階の間に情報を追加することができる。任意の追加されたテキストは、ブロック４７０においてテキスト２３５へ追加される。
【００７２】
要求されるユーザ動作がない場合、または必要なユーザ動作情報が制作者によって提供されている場合、テキストジェネレータ２３０は新しく取得されたテキストをテキストドキュメントに追加する。これは、ブロック４７２において示される。
【００７３】
生成されたテキストの例は、参照番号４７４〜４８６によって図８において示される。このテキストは、望まれたタスクの段階的な指示をユーザに提供する。テキストは、テキストデータベース２２０およびテキスト生成コンポーネント２３０に関して説明されているように、あるいは受け取られた入力コマンドからのテキストの自動生成を可能にする任意の方法に従って、生成することができる。自動的に生成されたテキストは、キャプチャされた画像と共に、編集のために制作者に提示することができる。
【００７４】
図９は、キャプチャされた画像および自動的に生成されたテキストが共にエディタ２４０において制作者２０１に提示されうる１つの方法を示すスクリーンショットである。図９は、本発明に関連する２つの主要な部分を含む。第１の部分は、テキスト表示部分４２６を備え、第２の部分は画像表示部分４２８を備える。テキスト表示部分４２６は、オプションで自動的に生成されたテキスト２３５、または制作者２０１によって作成されるテキストを表示する。画像表示部分４２８は、記録コンポーネント２１０によって記録されたキャプチャされたスクリーンショットイメージを表示する。
【００７５】
テキストが自動的に生成される一実施形態において、そのテキストはディスプレイ部分４２６の２３５で示され、これはエディタコンポーネント２４０を使用して制作者によって編集することができる（そのスクリーンショットの１つが図９に示される）。したがって、作成者は、ディスプレイ部分４２６上に表示される動作またはその他の項目のそれぞれを強調表示することができる。強調表示された項目に関連付けられている画像は、ディスプレイ部分４２８に表示される。したがって、図９に示される実施形態において、制作者はＡｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎｓ制御の作動に対応する動作番号２を強調表示してあり、対応する画像がディスプレイ部分４２８に表示される。ユーザは、ユーザインターフェイス２０５においてユーザによって実行されるステップの詳細な記述を取得するために、望まれるように、テキストを入力またはテキストを変更することができる。図９に示される実施形態において、ユーザはユーザインターフェイス２０５でＡｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎ制御４３０を作動させている。記録コンポーネント２１０が、Ａｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎｓ制御に対応する制御ボックス４３０だけではなく、Ａｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎｓボタン４３０の周囲の多くのピクセルを含むより大きいコンテキストボックス４３２も取得したことを見ることができる。コンテキストボックス４３２は、さらに容易に画面上に配置できるように、Ａｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎｓ制御４３０の周辺に追加のコンテキストを表示する。
【００７６】
図９はまた、記録コンポーネント２１０が、Ａｃｃｅｓｓｉｂｉｌｉｔｙ  Ｏｐｔｉｏｎｓ制御４３０を含む親ウィンドウ４３４を取得したことも示している。したがって、制作者は、どの制御がユーザインターフェイス２０５上でユーザによって操作されたか、およびその親ウィンドウのどこにその制御があるかを正確に見ることができる。これは、ユーザインターフェイス上でとられる動作を記述するテキストを生成または変更する際に、制作者を大いに助ける。
【００７７】
この時点の説明で、本発明が幅広くさまざまな方法で使用できることが理解されよう。たとえば、本発明は、キャプチャされた画像がテキストまたはヘルプテキストに埋め込まれているコンテンツ（ヘルプコンテンツなど）を生成するために使用することができる。その１つの例は、図１０に示される。プロセス内の各ステップは、そのステップを遂行するために行うべきことを記述するテキストを含むのみならず、ステップが実行される場所を示すビジュアル画像も含むことがわかる。本発明がテキストに埋め込まれた画像を生成するために使用されるこの実施形態において、最終テキスト２４５は埋め込み画像と共に出力される。これは、図４のオプションのブロック４３８によって示される。
【００７８】
しかし、本発明をテキストに画像を埋め込むのに使用する必要はない。代わりに、本発明は単に、キャプチャした画像を制作者に表示するために使用することもでき、そこで制作者は、ステップが行われおよび画像がキャプチャされる書かれた記述を生成する。たとえば、制作者は、ウィルスが修復されるかまたはコンピュータから除去されるプロセスを記述するテキストを生成してもよい。制作者は、そのテキストに埋め込み画像を含むことを望まない場合もある。その場合、画像は単に表示され、自動的に生成されたテキストもオプションで制作者に表示され、このテキストが提供される実施形態において、制作者は最初からテキストを生成するか、または自動的に生成されたテキストを変更することができる。
【００７９】
いずれの場合も、最終テキスト２４５は例示的に、コンテンツが最終的に発行されるいかなるスキーマにも作成または変換される。これは、たとえば、Ｍｉｃｒｏｓｏｆｔ  Ａｓｓｉｓｔａｎｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＭＡＭＬ）、ＨＴＭＬ、または何らかの他のＸＭＬフォーマットであってもよい。
【００８０】
図１１は、２つの異なるシステムで（あるいは２つの異なる構成を備えるシステム上で）タスクを実行するためにユーザによって行われるステップを記述する（最終テキスト２４５のような）コンテンツを生成するシステム５００を示すブロック図である。背景技術において説明されているように、タスク全体を実行するためにユーザによって行われるステップを記述するコンテンツを生成する従来のシステムは、任意の所定のタスクを実行するために行われなければならないステップが、タスクの実行されるコンピュータの構成に基づいて変化することがあるという事実に煩わされてきた。
【００８１】
したがって、実行されるステップを示す画像がキャプチャされる場合であっても、さらにテキストがそれらのステップを記述するために自動的または手動で生成される場合であっても、ステップは、コンピュータによって実行されている特定のオペレーティングシステムに基づいて、またはコンピュータの構成においてその他の任意の相異に基づいてうまく変化する可能性がある。実際、コンピュータによって実行されているオペレーティングシステムまたはその他のソフトウェアのバージョン番号が違う場合に、必要とされるステップでさえ異なることがある。もちろん、構成における幅広いさまざまなその他の相異は、所定のタスクを実行するために必要とされるステップもまた、異なるものにする可能性もある。たとえば、ユーザインターフェイスは、マシンのさまざまな状態に対して異なる可能性がある。一例として、リモートマシンに接続するための一連のユーザインターフェイスのステップは、コンピュータがネットワークドメイン上にあるか、あるいはワークグループ上にあるかに依存して異なる可能性がある。
【００８２】
したがって、所定のタスクを実行するために必要なステップを自動的に記録するために、図２に示される記録システムは、コンテンツが対象としているすべての異なる構成で構成されたマシン上でステップを記録すべきである。すべてのこれらの異なる構成で記録された、タスクを実行するために記録されたステップは、次に、さまざまな構成のもとでタスクをどのように実行するかを記述する１つの総合的なコンテンツのセットに結合されるべきである。オプションで、ユーザへコンテンツを最終的に表示するシステムは、ユーザのシステムの構成を検出し、関連するコンテンツのみ（たとえばエンドユーザに関連するこれらステップのみ）を表示する。
【００８３】
したがって、システム５００は、第１のコンピュータ５０２および第２のコンピュータ５０４を示し、それぞれ図２に示されるような記録システム２００を含む。コンピュータ５０２は例示的に、構成Ａと本明細書において指定された第１の構成に従って構成される。一方コンピュータ５０４は、構成Ｂと本明細書において指定された第２の構成に従って構成される。
【００８４】
構成ＡおよびＢは、記録され、コンテンツが作成される任意の所定のタスクを実行するのに必要なステップに影響を与える任意のタイプの異なる構成であってもよい。したがって、一例として、構成Ａはネットワークドメイン上にあるコンピュータであり、一方、構成Ｂはワークグループ上にあるコンピュータであってもよい。同様に、構成Ａは第１のオペレーティングシステム上で実行しているコンピュータであり、一方、構成Ｂは第２のオペレーティングシステムで実行しているコンピュータであってもよい。同様に、構成Ａはオペレーティングシステムのあるバージョンで動作しているコンピュータであり、一方、構成Ｂは同じオペレーティングシステムの別のバージョンで動作しているコンピュータであってもよい。他の異なる構成も、コンテンツの制作者の要望に応じて使用することができる。もちろん、コンピュータ５０２および５０４は実際には、異なるコンピュータ、または仮想マシン上にインストールされたコンピュータであってもよいことにも留意されたい。
【００８５】
図１１に示される記録システム２００は、図２に示されるシステムと同様であってもよく、対応して番号付けされている。しかし、以下でさらに詳細に説明されるように、自動テキスト生成部分２０７は、オーサリングコンピュータ５０６上に配置することができ、その場合に限り、１つの自動テキスト生成部分２０７が必要となる。
【００８６】
コンピュータ５０２および５０４は例示的に、オーサリングコンピュータ５０６に接続される。オーサリングコンピュータ５０６は例示的に、インポータメカニズム５０８およびコンテンツエディタコンポーネント（図２に関して説明されているエディタコンポーネント２４０など）を含む。
【００８７】
オーサリングコンピュータ５０６は例示的に、コンピュータ５０６または５０４、あるいは別のコンピュータのいずれであってよい。同様に、コンピュータ５０６は、コンピュータ５０２および５０４の１つと同じオペレーティングシステム、または別のオペレーティングシステムで稼動することができる。さらに、前述のように、エディタコンポーネント２４０は、自動テキスト生成システム２０７を提供するか、または単に、図２に関して説明されているエディタコンポーネント２４０であってもよい。
【００８８】
動作中、コンピュータ５０２および５０４上の記録システム２００は、ユーザがコンピュータ５０２および５０４の各々に関連付けられているユーザインターフェイス上でタスクを実行できるようにし、一方で記録システム２００は所望のタスクを実行するためにとられるユーザインターフェイスのステップを記録して格納する。したがって、記録システム２００は例示的に、ユーザによってとられた動作に対応するスクリーンショット画像を記録し、さらにオプションで、前述のように、これらの画像に対応するテキストを自動的に生成することもできる。
【００８９】
次に記録システム２００は例示的に、インポータコンポーネント５０８によって受け入れ可能なフォーマットに、記録されたステップをフォーマットする。たとえば、コンピュータ５０２上の記録システム２００は例示的に、コンピュータ５０２のユーザインターフェイス上でユーザによって処理された一連のステップを記録して、所定のタスクを実行し、これらの記録されたステップをＸＭＬフォーマットに従って記録されたフラグメントＡ（番号５１０でも指定されている）にフォーマットする。同様に、コンピュータ５０４上の記録システム２００は例示的に、ステップを記録して、それらをＸＭＬフォーマットに従って記録されたフラグメントＢ（番号５１２でも指定されている）にフォーマットする。
【００９０】
記録されたフラグメント５１０および５１２は次に、コンピュータ５０２および５０４からインポータコンポーネント５０８に提供される。インポータコンポーネント５０８はコンピュータ５０６上に示されているが、インポータコンポーネント５０８が、システム５００に示されるさまざまなコンピュータ間で分散される機能性を有するか、またはそれらのすべてのコンピュータから分離して存在するか、あるいはコンピュータ５０６以外の別のコンピュータの１つに提供されるコンポーネントであってもよいことは当然に理解されよう。いずれの場合であっても、インポータコンポーネント５０８は、記録されたフラグメント５１０および５１２を受け取って、それらをユーザへの提示のためにエディタコンポーネン２４０に提供するための任意の適切なインポートメカニズムであることができる。
【００９１】
インポータコンポーネント５０８は例示的に、記録されたフラグメント５１０および５１２を記録コンピュータ５０６に格納し、それらを多種多様な方法の１つでエディタコンポーネント２４０にインポートする。これは、たとえば、共用ディレクトリを介してフラグメント５１０および５１２をインポートすることによって達成することができる。同様に、これは、記録されたフラグメント５１０および５１２をディスクに、または別の外部記憶装置に格納することによって行うことができ、その外部記憶装置は、フラグメント５１０および５１２がエディタコンポーネント２４０にロードされるコンピュータ５０６に物理的にトランスポートされる。同様に、コンピュータ５０６は、コンピュータ５０２および５０４を稼働するためにリモートに使用することができ、次に記録されたフラグメント５１０および５１２を、クリップボードまたはコンピュータ５０６がアクセスできるその他の共用アプリケーションスペースに格納することができる。そのような共用スペースの一実施形態は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって供給されるＷｉｎｄｏｗｓ（登録商標）クリップボードシステムである。
【００９２】
フラグメント５１０および５１２が共用アプリケーションスペースを使用して提供される実施形態において、コンピュータ５０６は、共用アプリケーションスペースからのフラグメント５１０および５１２を読み取り、それらをエディタコンポーネント２４０にインポートする。たとえば、Ｗｉｎｄｏｗｓ（登録商標）クリップボードアプリケーションスペースが使用される実施形態において、同様にワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって供給されているリモートデスクトップと呼ばれるプログラムは、リモートおよびローカルコンピュータの間で、クリップボードスペースが共用できるようにする（コンピュータ５０２および５０４とコンピュータ５０６の間のように）。
【００９３】
いずれの場合においても、インポータコンポーネント５０８は、記録されたフラグメント５１０および５１２をエディタコンポーネント２４０にインポートするために使用される。コンピュータ５０２および５０４上の記録システム２００が自動テキスト生成システム２０７を含む実施形態において、記録されたフラグメント５１０および５１２は自動的に生成されたテキストを含む。代わりに、テキストはエディタコンポーネント２４０において自動的または手動で生成することができる。
【００９４】
エディタコンポーネント２４０はフラグメント５１０および５１２をユーザに表示し、このように適切な条件がユーザによって挿入できるようになる。たとえば、図１１に示されている最終テキスト２４５の実施形態は、条件ステートメント５１４および５１６がユーザによって挿入された後に、全テキスト２４５に挿入された記録されたフラグメント５１０および記録されたフラグメント５１２を示す。条件ステートメント５１４は、たとえば、「Ｃｏｎｄｉｔｉｏｎ；Ｉｆ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ａ，ｔｈｅｎ：」である。これは、コンピュータが構成Ａで構成されている場合、記録されたフラグメント５１０によって示されるステップは、ユーザに表示されるか、または自動的に実行されることを示している。
【００９５】
条件５１６は、「Ｃｏｎｄｉｔｉｏｎ；Ｉｆ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂ，ｔｈｅｎ：」を示す。これは、コンピュータが構成Ｂによって構成されている場合、記録されたフラグメント５１２によって示されるステップがユーザに表示されるかまたは実行されることを示す。
【００９６】
当然に、制作者は任意の他の望ましい方法でテキストを削除または変更できることも理解されよう。これは、エディタコンポーネント２１０上の従来型の編集技術を使用して行うことができる。
【００９７】
表２は、２つの異なる構成からの記録から形成された典型的なＸＭＬドキュメントを示す。２つのＸＭＬフラグメントは、コンピュータ上に記録され、一つがネットワークドメイン上で実行し、もう一方はネットワークワークグループ上で実行する。実行すべきフラグメントを決定するｉｆ−ｔｈｅｎ論理を処理するために、条件「Ｎｅｔｗｏｒｋ  ｃｏｎｎｅｃｔｉｏｎ：ｄｏｍａｉｎ」属性がマークアップされることに留意されたい。
【００９８】
【表２】
2008506183.tif 000004
【００９９】
このようにして、本発明により、制作者は、さまざまな構成の下で、さまざまなマシン上にマクロ（あるいは所定のタスクを実行するための別の一連のステップ）の全体または一部を記録し、記録された部分を１つのオーサリングマシンで集積して、最終コンテンツに到達できるようになることがわかる。これはマクロが異なるマシン上に記録されるようにできるが、主要オーサリングステップは１つの場所で実行できる。これは、従来のシステムより、より安価でより単純な、さらに高度に自動化されたコンテンツの制作を提供する。
【０１００】
本発明は、特定の実施形態を参照して説明してきたが、本発明の精神および範囲を逸脱することなく形態および詳細に変更ができることが、当業者には明らかとなろう。
【図面の簡単な説明】
【０１０１】
【図１】本発明が使用されうる典型的な環境のブロック図である。
【図２】本発明の一実施形態による記録システムのコンポーネントを示すブロック図である。
【図３】ユーザ動作に関連するテキストを記録し生成する際の図２に示されるシステムの動作を示すフロー図である。
【図４】記録システムの制御の一実施形態を表すスクリーンショットである。
【図５】テキストを生成するために使用されうる典型的なディスプレイを示すスクリーンショットである。
【図６】本発明の一実施形態による強調表示された機能を示すスクリーンショットである。
【図７】より詳細に、自動テキスト生成の一実施形態を示すフロー図である。
【図８】生成されたテキストを編集のために制作者に提示する１つの方法を示すスクリーンショットである。
【図９】コンテンツを制作するために画像が使用されうる一実施形態をさらによく示すスクリーンショットである。
【図１０】本発明の一実施形態による埋め込み画像を備える最終テキストの一実施形態を示す。
【図１１】異なる構成を備えるシステム上でタスクを実行するためにユーザインターフェイスステップを記録するシステムの一実施形態のブロック図である。
【図１】
2008506183.tif 000005
【図２】
2008506183.tif 000006
【図３】
2008506183.tif 000007
【図４】
2008506183.tif 000008
【図５】
2008506183.tif 000009
【図６】
2008506183.tif 000010
【図７】
2008506183.tif 000011
【図８】
2008506183.tif 000012
【図９】
2008506183.tif 000013
【図１０】
2008506183.tif 000014
【図１１】
2008506183.tif 000015
【手続補正書】
【提出日】平成19年7月3日(2007.7.3)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2008506183.tif 000016
【国際調査報告】
2008506183.tif 000017