(57)【要約】【課題】ＧＵＩに関する密接な統合およびオーサリングの削減をする。【解決手段】本発明は、ウィザードをオーサリングおよび実行するためのシステムを述べている。新しいウィザードは、ＨＥＬＰファイル、ＫＢ記事などの既存の構造化コンテンツから作成されるか、またはアプリケーションの専門知識を備えた（開発技術は必要としない）作者を対象とした単純なオーサリングツールを使用して作成される。ウィザードは、既存のＧＵＩ自動化モジュールを使用して既存のＧＵＩのトップで動作するものであって、タスクの実行方法をユーザに教示するか、またはユーザに代わってタスクを実行することができる。さらに、オーサリングされたウィザードは、ユーザと対話して選択するのを助けること、および条件付きアクションを実行するためにシステム／ユーザの状態にアクセスすることも可能である。ウィザードは、オプションのフィードバックシステムを介して更新される。【選択図】図２
2010191977.tif 000002
【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェース（ＧＵＩ）を有するコンピュータシステムでタスクを実行する方法であって、
第１のコマンドをユーザから受け取るステップと、
前記第１のコマンドに基づいて、タスクデータベース内の複数のタスクを識別するステップであって、識別された前記複数のタスクのそれぞれは、複数のサブタスク及び１つのタスク順を有し、前記サブタスクは、前記ＧＵＩに対するユーザインタフェースコマンドをプログラムに従って実行することにより達成され、前記実行は、プログラムに従ってではなく前記ユーザが前記ＧＵＩを操作することにより開始可能なものであるステップと、
識別された前記複数のタスクのうちの達成すべきタスクの選択を示す第２のコマンドをユーザから受け取るステップと、
達成すべき各サブタスクを識別するコマンドをユーザに要求することなく、前記コンピュータシステムのモジュールを使用して、前記ＧＵＩに対する前記ユーザインタフェースコマンドをプログラムに従って実行することにより、前記選択されたタスクの前記複数のサブタスクをそれぞれ前記タスク順に達成するステップと、
前記選択されたタスクの各サブタスクについて、前記各サブタスクが達成されるときに、前記ＧＵＩに対する前記ユーザインタフェースコマンドの実行を前記ＧＵＩ上で前記ユーザに表示するステップと
を含むことを特徴とする方法。
【請求項２】
前記サブタスクが達成されるときに前記ＧＵＩ上で各ステップをハイライト表示するステップと、
達成される前記サブタスクを記述したウィンドウを前記ＧＵＩ上に提供するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
次のサブタスクに進む前に前記ユーザからの指示を受け取るステップと、
前記タスク順で前記次のサブタスクに進むステップと
をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ユーザに対する自然言語での命令を有するウィンドウを提供するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記コンピュータシステムの現在の状態を自動的に検出するステップと、
検出された前記状態に基づいて、前記ユーザに対して前記ウィンドウ内にオプションを表示するステップと
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
複数のオプションが前記ユーザに提示されたときに、どのオプションを選択するかを判定する際に役立つ情報を含むダイアログウィンドウを前記ユーザに提示するステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項７】
コンピュータシステムでグラフィカルユーザインタフェース（ＧＵＩ）のタスクを自動的に実行するための方法であって、
第１のユーザ入力を受け取るステップと、
前記第１のユーザ入力に基づいて、データベース内の複数のタスクを識別するステップであって、識別された複数のタスクのそれぞれは、前記ＧＵＩに対する操作を実行することにより達成可能な複数のサブタスクを有するものであるステップと、
識別された前記複数のタスクのうちの達成すべきタスクの選択を示す第２のコマンドをユーザから受け取るステップと、
達成すべき各サブタスクを識別するコマンドをユーザに要求することなく、前記ＧＵＩをプログラムに従ってナビゲートして、前記選択されたタスクに対応する前記複数のサブタスクのそれぞれを達成するために前記ＧＵＩに対する前記操作を実行するステップであって、前記実行は、プログラムに従ってではなく前記ＧＵＩの操作により開始可能なものであるステップと
を含むことを特徴とする方法。
【請求項８】
前記ＧＵＩをプログラムに従ってナビゲートすることは、ＧＵＩ自動化構成要素を起動することを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記コンピュータシステムは既存のＧＵＩ構成要素を含み、
前記ＧＵＩ自動化構成要素を起動することは、前記ＧＵＩ自動化構成要素を有する前記ＧＵＩ構成要素に対して、前記サブタスクを自動的に達成することを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
プログラムに従ってナビゲートすることは、
前記選択されたタスクに対応する前記複数のサブタスクを識別するために、前記選択されたタスクを解析することをさらに含むことを特徴とする請求項７に記載の方法。
【請求項１１】
プログラムに従ってナビゲートすることは、
各サブタスクが達成されるときに、前記複数のサブタスクのそれぞれの指示を前記ユーザに提供することをさらに含むことを特徴とする請求項７に記載の方法。
【請求項１２】
プログラムに従ってナビゲートすることは、
前記複数のサブタスクの次の１つを達成する前に前記ユーザからの指示を待つことをさらに含むことを特徴とする請求項７に記載の方法。
【請求項１３】
プログラムに従ってナビゲートすることは、
前記ユーザから前記指示を受け取るステップと、
前記複数のサブタスクの前記次の１つを達成するステップと
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
プログラムに従ってナビゲートすることは、
前記複数のサブタスクのうちの１つがさらなるユーザ入力を必要とする場合、さらなるユーザ入力が必要とされていることの指示を前記ユーザに提供することをさらに含むことを特徴とする請求項７に記載の方法。
【請求項１５】
前記ＧＵＩをプログラムに従ってナビゲートして、前記ＧＵＩに対する前記操作を実行するステップは、
前記ユーザから前記サブタスクに関する前記さらなる入力を受け取るステップと、
前記複数のサブタスクのうちの次の１つに進むステップと
をさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記データベースは、アプリケーションプログラムに関連付けられたＨＥＬＰ文書を含むデータベースであることを特徴とする請求項７に記載の方法。
【請求項１７】
前記データベースは、アプリケーションのトラブルシューティングに関連付けられた文書を含むデータベースであることを特徴とする請求項７に記載の方法。
【請求項１８】
コンピュータ実行可能命令を含むコンピュータ読取り可能な記録媒体であって、前記コンピュータ実行可能命令は、実行されると、
第１の入力をユーザから受け取るステップと、
前記第１の入力に基づいて、タスクデータベース内の複数のタスクを識別するステップであって、識別された前記複数のタスクのそれぞれは、グラフィカルユーザインタフェース（ＧＵＩ）に対して操作を実行することにより達成可能な複数のサブタスクを有するものであるステップと、
識別された前記複数のタスクのうちの達成すべきタスクの選択を示す第２のユーザ入力を受け取るステップと、
達成すべき各サブタスクを識別するコマンドをユーザに要求することなく、プログラムに従って前記選択されたタスクに対応する前記複数のサブタスクを前記ＧＵＩに対して達成するステップであって、前記達成は、プログラムに従ってではなく前記ユーザによる前記ＧＵＩの操作により開始可能なものであるステップと
をコンピュータに実行させることを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１９】
前記プログラムに従って達成するステップは、
受け取った前記複数のサブタスクをＧＵＩ自動化モジュールを用いて達成するステップを含むことを特徴とする請求項１８に記載のコンピュータ読取り可能な記録媒体。
【請求項２０】
前記選択されたタスクに関する前記複数のサブタスクを識別するために、前記選択されたタスクを解析するステップを実行するための命令をさらに含むことを特徴とする請求項１８に記載のコンピュータ読取り可能な記録媒体。
【請求項２１】
前記複数のサブタスクの各サブタスクが実行されるときに、前記各サブタスクをディスプレイデバイス上に表示するステップを実行するための命令をさらに含むことを特徴とする請求項１８に記載のコンピュータ読取り可能な記録媒体。
【請求項２２】
後続のサブタスクを達成する前に前記ユーザからの指示を待つステップと、
前記ユーザから前記指示を受け取るステップと、
前記後続のサブタスクを達成するステップと
を実行するための命令をさらに含むことを特徴とする請求項２１に記載のコンピュータ読取り可能な記録媒体。
【請求項２３】
前記複数のサブタスクのうちの１つがユーザ入力を必要とする場合、前記サブタスクに関連付けられたウィンドウをディスプレイデバイス上に表示するステップと、
前記ユーザから前記必要とされる入力を受け取るステップと、
前記サブタスクを達成するステップと
を実行するための命令をさらに含むことを特徴とする請求項１８に記載のコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩを有するコンピュータシステムでタスクを実行する方法に関する。より詳細には、ＧＵＩを有するコンピュータシステムでタスクを実行する方法、コンピュータシステムでＧＵＩのタスクを自動的に実行するための方法、記録媒体、ＨＥＬＰファイルを構成する方法、およびＧＵＩに対してコンピュータ上で実行可能なタスクを表すデータ構造に関する。
【背景技術】
【０００２】
これまで、コンピュータとの自然言語／音声ベースの対話を可能にするいくつかの試みが行われてきた。これらの試みの結果は、かなり制限されたものであった。それは、技術が不十分であること、非介入的（non-intrusive）マイクロフォンインフラストラクチャがないこと、オーサリングコストが高いこと、カスタマーの挙動が固定化されていること、および多くのタスクに対して高い有用性を与えるＧＵＩ（グラフィカルユーザインタフェース）の形式において競合者があること、の組合せによるものである。本発明は、これらの制限のうちの２つ、ＧＵＩに関する密接な統合およびオーサリングの削減に焦点をあてたものである。
【０００３】
グラフィカルユーザインタフェース（ＧＵＩ）は、幅広く使用されているインタフェースメカニズムである。ＧＵＩは位置決めタスク（たとえば四角形のサイズ変更）、視覚修正タスク（たとえば何かに言葉で言い表すことのできない青い影を付けること）、または選択タスク（たとえば、これが回転させたい１００のピクチャのうちの１つであること）に非常に適している。ＧＵＩは、即時の単一ステップ機能へのスピーディなアクセスにも適している。アプリケーションＧＵＩは、（たとえば、「自分のコンピュータをハッカーに対してセキュアにすること」など、ユーザが実行したい高水準タスクによって編成された）タスク指向の観点からではなく、機能上の観点から編成された（たとえば、メニュー、ツールバーなどに編成された）、有用なツールボックスである。
【０００４】
ただし、ＧＵＩは同時に、ユーザに対して多くの問題を引き起こすものでもある。ツールボックス類推（ａｎａｌｏｇｙ）を使用する場合、ユーザはボックス内のツールを見つけること、またはタスクを完了するためにどのようにツールを使用するかを理解することが困難である。単一の語、小さなボタン、および不明瞭な階層を余儀なくされたタブで記述されたインタフェースは、人々が自分のタスクについて考える方法には適さない。ＧＵＩでは、タスクを達成するにはどの要素が必要であるかを判定するために、ユーザがタスクを分解する必要がある。この要件が複雑さにつながっている。この複雑さの問題は別にしても、ＧＵＩ要素（すなわち、メニュークリック、ダイアログクリックなど）をアセンブルするのに時間を要する。そのため、たとえ熟練したユーザであっても、効率の悪い時間のかかるものになる可能性がある。
【０００５】
ＧＵＩの問題に対処するための既存のメカニズムの１つが、書面に書かれたヘルプ手順である。ヘルプ手順は、カスタマーのニーズとＧＵＩの問題点とのギャップを埋める、ヘルプ文書、ＰＳＳ（製品サポートサービス）、ＫＢ（知識ベース）記事（ａｒｔｉｃｌｅｓ）、およびニュースグループポストの形を取ることが多い。ツールボックスに付属のマニュアルに類似しており、多くの利点がある。これらの利点には、たとえば
１）技術者でない作者にとってもオーサリングが簡単であること
２）サーバ上での更新が容易であるため、接続されたユーザが新しいコンテンツにアク
セスするのが簡単であること、および
３）ＧＵＩに入力するユーザに、問題の解決方法を教示すること
が含まれる。
【０００６】
ただし、ヘルプ文書、ＰＳＳ、ＫＢ記事、およびニュースグループには、それぞれ独自の一連の問題がある。これらの問題には、たとえば以下のものが含まれる。  
１）複雑なタスクは、多くの処理をユーザ側に要求する。ユーザは各ステップで言われたことをＧＵＩにマッピングする必要がある。  
２）トラブルシュータ、および手続き型ヘルプ文書でさえも、ヘルプトピック内に複雑な分岐を作成する状態情報を含むため、トピックが長くなり、ユーザが読んだり処理したりするのが困難になることが多い。ツールバーは、見えなくなる場合、および次のステップを実行するまで表示しておく必要がある場合がある。トラブルシュータは、（トラブルシュータが回答それ自体を見つけられなければならないので）初心者が良くてもいらいらする状況および初心者が最悪の場合回答不可能な状況について質問する場合が多い。  
３）何百万という文書があり、回答を検索するためには、どこから検索を開始すればよいか、および次に戻された何千という結果からどのように最善の検索結果を見つけ出せばよいかの、両方の問題が含まれる。  
４）共用オーサリング構造がない。ニュースグループポスト、ＫＢ記事、トラブルシュータ、および手続き型ヘルプ文書は、すべて異なる構造およびオーサリング方式を有するにもかかわらず、依然としてすべて同様の問題を解決している。
【０００７】
ＧＵＩの問題に対処するための他の既存のメカニズムがウィザードである。ウィザードは、ＧＵＩおよび書面に書かれたヘルプ手順の弱点に対処するために作成されたものである。今では何千というウィザードがあり、これらのウィザードは、製造されるほぼあらゆるソフトウェア製品に見られる。それは、ウィザードが現在既存のテキストベースのヘルプおよびアシスタンスでは対処されていない、現実のニーズを解決するものだからである。ユーザはこれらを使用すると、タスク指向の方法で機能にアクセスすることが可能になり、ＧＵＩまたはツールを自動的にアセンブルすることができる。ウィザードは、プログラムの管理者および開発者が、カスタマーのタスクに対処するための手段を実行できるようにするものである。これらは、タスクを成功させるために必要なステップをユーザに実行させる、ボックス内の熟練者のようなものである。ウィザードの中には、カスタマーのシステムのセットアップを助けるもの（たとえばセットアップウィザード）、機能付きのコンテンツを含みカスタマーがコンテンツを作成するのを助けるもの（たとえばニューズレターウィザードまたはパワーポイント（商標）のＡｕｔｏＣｏｎｔｅｎｔウィザード）、およびカスタマーが問題を診断および解決するのを助けるもの（たとえばトラブルシュータ）がある。
【０００８】
ウィザードはユーザに多くの利点を与える。ウィザードの利点の一部には以下のものがある。  
１）ウィザードは「タスク」の概念を具体化するものである。通常は、ユーザが何を達成するのをウィザードが助けるかを、ユーザに対して明らかにする。ステップごとのページを使用することでユーザが選択しやすいようにし、適切に設計されたウィザードの場合、ユーザが視覚的に圧倒されることが少なくなる場合が多い。  
２）ウィザードは、ソフトウェアの基礎となる機能を自動的にアセンブルしてそれらと対話するものであり、カスタマーが選択するのに必要な情報および専門知識を含む。そのため、ユーザがタスクを実行する時間を節約することができる。  
３）ウィザードはコンテンツを自動的に生成し、テキストを作成しレイアウトを計画することでユーザの時間を節約することができる。  
４）ウィザードは、質問するため、回答を得るため、および最も関連した次の質問または機能に分岐するための、適切な手段でもある。
【０００９】
ただし、ウィザードにはそれら自体の問題もある。ウィザードに伴う問題には、たとえば以下のものが含まれる。  
１）人々が達成しようと試みるタスクの数の方が、それらを達成するためのウィザードよりも多い。  
２）ウィザードおよびＩＵＩ（Inductive User Interface）は、基礎となるＧＵＩの使用方法をカスタマーに教示せず、ウィザードが完了したときにユーザは次にどこへ進めばよいかがわからない場合が多い。  
３）ウィザードのオーサリングコストは依然として高く、ウィザードをオーサリングするための技術的な専門知識を備えた人間（たとえばソフトウェア開発者）が必要である。
【００１０】
いくつかの文献に上述のような従来の技術に関連した技術内容が開示されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】C.F.Drew著「A Natural Language Interface for Expert System Help Desk」 IEEE Conference on Managing Expert System Programs and Projects、 １９９０年９月１０−１２日、ｐｐ．２０９−２１５
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、ＧＵＩに関する密接な統合およびオーサリングの削減を可能とした、ＧＵＩを有するコンピュータシステムでタスクを実行する方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、何千ものタスク（またはウィザード）をオーサリングする方法、およびＧＵＩを統合してユーザに教示するかまたはユーザの代わりにタスクを実行する方法を簡単にすることによって、ウィザード、ヘルプ、知識ベースの記事、およびトラブルシュータの問題のいくつかに対処する。
【００１４】
本発明は、多彩な機能を含むように実施することができる。一実施形態では、本発明に従ったユーザインタフェースが、タスクを実行するために一連の最小（ａｔｏｍｉｃ）ステップをカスタマーに繰り返させる。そのユーザインタフェースは既存のユーザインタフェース（ＵＩ）の一番上に位置し、既存のＵＩと対話することができる。ユーザインタフェースは、一般的なコマンドに、プロパティを設定するためのメニューシステムに、およびいくつかの機能を編成するボックス（たとえばダイアログボックス）にさえも、即時に自由にアクセスするためのツールバーボタンを含むことができる。「タスク」の概念は、ユーザのためにタスクを実行するようにツールを自動的にアセンブルすること、またはユーザにその実行方法を教示することの、いずれかによって、ユーザがツールを即時にアセンブルするのを助ける方法で、このユーザインタフェース（または「ツールボックス」）の上に積み上げられたものである。いつタスクを自動的に実行するか、およびいつ教示するかについての決定は、タイプされるのかまたは話されるのか、タスクのタイプ、ユーザの専門知識レベル、ユーザの性格特徴、ユーザが障害を持っているかどうか（ＲＳＩ（反復性のストレス傷害）を伴うユーザなど）、および所与のソフトウェアプログラムおよびタスクの使用頻度などの、ユーザによる要求と密接に混ぜ合わせることができる。
【００１５】
タスクまたはウィザードの開発を、開発者から技術者でない相手に移すためには、基礎となるオブジェクトモデルからの抽出が必要である。したがって、他の実施形態によれば、本発明は既存のＧＵＩに接続するためのフレームワークを提供する。
【００１６】
一例では、本発明のアーキテクチャは、ＧＵＩ自動化技術を使用してＧＵＩに接続する。ＧＵＩ自動化モジュールの例は、現在入手可能なオペレーティングシステムソフトウェアと共に出荷される、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＭｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ａｃｃｅｓｓｉｂｉｌｉｔｙ（商標）などの、アクセス可能性モジュールである。本発明で使用されるスクリプトは、技術者でないユーザが簡単に理解できるＸＭＬ（eXtensible [eXtended] Markup Language）などの形式で格納することも可能である。
【００１７】
ある割合のヘルプ、ＫＢ記事、およびニュースグループポストは、所与の問題の解決策を提案する前、または要求されたタスクの実行方法を指示する前に、ソフトウェアおよびシステムの状態に関するより多くの情報を必要とする。以前には、この状態チェックはユーザにまかされることが多かった。たとえば、例示的な状態チェックには、「ネットワークに接続されている場合は．．．を実行してください」または「共用可能なプリンタがある場合は．．．を実行してください」がある。本発明の一実施形態のアーキテクチャは、ユーザ／ソフトウェア／マシンの状態に基づいて、作者がこうした分岐条件を指定できるようにするものである。実行時に本発明のインタプリタは、これらの状態条件を自動的に判定し、作者が指定した通りに適切な決定を行う。
【００１８】
ＡＣＷ（active content wizard）プラットフォームの主な構成要素は、ＡＣＷスクリプト、ＡＣＷオーサリングツール、ＡＣＷインタプリタ、およびＡＣＷフィードバックシステムである。
【００１９】
一実施形態によれば、スクリプトは本発明の機能を実施するウィザードの構造化表現である。この表現は、命令を実行するためにインタプリタが使用する情報、ならびに実行されるタスク内の様々なステップの自然言語記述を含むことができる。スクリプトファイルには様々なタイプの命令がある。命令の中には、ＧＵＩに対して実行されるもの、ユーザ／マシンの状態をチェックするためのもの、およびユーザと対話するためのものがある。スクリプトの一実施形態では、スクリプトを表すのに使用される言語はＸＭＬである。
【００２０】
一実施形態によれば、オーサリングツールは、スクリプトをオーサリングするためにシステムのユーザ／作者が使用するツールである。これらには、既存のヘルプ／ＫＢ記事／ニュースグループコンテンツをスクリプトにインポートするためのツール、ならびに新しいスクリプトを作成するための簡単なオーサリングツールが含まれる。
【００２１】
オーサリングツールは本発明の一部を形成するものではないが、完璧を期すためにこれらについて簡単に説明する。オーサリングツールの一例は、作者がコンピュータ上で実行しそこからスクリプトを生成するアクションを、監視するツールである。たとえば、「Ｗｉｎｄｏｗｓ（登録商標）内のパス変数を変更する方法」についてのスクリプトを作成するためには、作者がツール上の「レコーディング開始」ボタンを押し、その後ユーザが「スタート」ボタン、次に「コントロールパネル」、次に「システム」、次に「拡張」タブをクリックする。次にユーザは、「環境変数」をクリックし、「パス」を選択した後、「編集」ボタンをクリックする。この時点で、エンドユーザは自分の変更内容を記録しなければならない。そこで作者は、ツールに関するモードを「ユーザ選択」に変更し、タスクを完了するために続行する。最後にユーザは、オーサリングツール上の「レコーディング停止」ボタンを押す。次にオーサリングツールは、このタスクを詳細に説明するスクリプトを生成する。スクリプトには、英語などの自然言語で書かれたタスクの記述、ならびにインタプリタがこのタスクの実行方法をユーザに教示するか、またはユーザのために実行するかのいずれかのために必要な情報が含まれる。さらに、ツールは、作者が自然言語記述を編集できるようにするものでもある。
【００２２】
一実施形態によれば、インタプリタモジュールは、スクリプトファイル内の命令を実行する。インタプリタは、ユーザに代わって命令を実行する、ユーザに順を追って命令セットを実行させるなどの、複数の実行モードをサポートすることができる。さらに、インタプリタは、キーボード、マウス／音声などの、どんな入力様式でも制御可能である。インタプリタはいくつかのモジュールを含むことが可能であり、拡張可能である（すなわち新機能のモジュールを追加することができる）。インタプリタのモジュールの一例が、ＧＵＩ自動化モジュールである。このモジュールは、ＧＵＩに対してコマンドを実行することができる。他の例は、「レジストリ」に対して命令を実行することのできるモジュールである。他のモジュールも同様に使用可能である。
【発明の効果】
【００２３】
以上説明したように本発明によれば、タスク（またはウィザード）をオーサリングする方法、およびＧＵＩを統合してユーザに教示するかまたはユーザの代わりにタスクを実行する方法を簡単にできる。
【図面の簡単な説明】
【００２４】
【図１】本発明が使用可能な環境の一例を示す構成図である。
【図２】ＡＣＷプラットフォームを使用する自然なユーザインタフェースを示した本発明の一実施形態を示す構成図である。
【図３】本発明の一実施形態に従ったＡＣＷインタプリタを示す構成図である。
【図４】本発明の一実施形態に従った選択されたタスクの実行を示す流れ図である。
【図５Ａ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｂ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｃ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｄ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｅ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｆ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｇ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｈ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｉ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図５Ｊ】特定のＡＣＷスクリプト上でのＡＣＷインタプリタの実行を示す画面ショットの図である。
【図６】ＡＣＷスクリプトの作成を示す流れ図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明の実施形態を詳細に説明する。  
図１は、本発明が実施可能な好適なコンピューティングシステム環境１００の一例を示す図である。コンピューティングシステム環境１００は好適なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関して、何らの制限をも示唆することを意図したものではない。さらにコンピューティングシステム環境１００は、例示的なオペレーティング環境に示された任意の１つの構成要素またはその組合せに関して、どんな依存性または要件をも有するものと解釈されるべきではない。
【００２６】
本発明は、多数の他の汎用または特定用途向けのコンピューティングシステム環境または構成でも動作可能である。本発明と共に使用するのに好適な可能性のある周知のコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ（personal computer）、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたはデバイスを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
【００２７】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明することができる。一般にプログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータ記憶媒体内に位置することができる。
【００２８】
図１を参照すると、本発明を実施するための例示的システムには、コンピュータ１１０の形式の汎用コンピューティングデバイスが含まれる。コンピュータ１１０の構成要素は、プロセッサ１２０、システムメモリ１３０、および、システムメモリを含む様々なシステム構成要素をプロセッサ１２０に結合させるシステムバス１２１を含むことができるが、これらに限定されるものではない。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、および任意の様々なバスアーキテクチャを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってよい。例を挙げると、こうしたアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｓｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれるが、これらに限定されるものではない。
【００２９】
コンピュータ１１０は、典型的には様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１１０がアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性、リムーバブルおよびノンリムーバブルの、両方の媒体を含む。例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性、リムーバブルおよびノンリムーバブルの、両方の媒体を含む。コンピュータ記憶媒体には、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、フラッシュメモリまたは他のメモリ技術、ＣＤ（compact disc）−ＲＯＭ、ＤＶＤ（digital versatile disk）、または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、あるいは、所望の情報の格納に使用可能でありコンピュータ１１０がアクセス可能な任意の他の媒体が含まれるが、これらに限定されるものではない。通信媒体は、典型的には、搬送波などの変調データ信号または他の移送メカニズムにおいて、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを具体化するものであって、任意の情報送達媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するような方法で１つまたは複数のその特徴を設定または変更した信号を意味する。例を挙げると、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音波、ＲＦ（radio frequencies）、赤外線、および他の無線媒体などの無線媒体を含むが、これらに限定されるものではない。上記のいずれの組合せも、コンピュータ読取り可能媒体の範囲に含まれるものとする。
【００３０】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動時などのコンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含むＢＩＯＳ（Basic Input/Output System）１３３は、典型的にはＲＯＭ  １３１に格納される。ＲＡＭ  １３２は典型的には、プロセッサ１２０によって、即アクセス可能でありかつ／または現在動作されている、データおよび／またはプログラムモジュールを含む。例を挙げると、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７が示されているが、これらに限定されるものではない。
【００３１】
コンピュータ１１０は、他のリムーバブル／ノンリムーバブルな、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例を挙げたに過ぎないが、図１には、ノンリムーバブルな不揮発性磁気媒体からの読取りまたはこれへの書込みを行うハードディスクドライブ１４１、リムーバブルな不揮発性磁気ディスク１５２からの読取りまたはこれへの書込みを行う磁気ディスクドライブ１５１、および、ＣＤ−ＲＯＭまたは他の光媒体などのリムーバブルな不揮発性光ディスク１５６からの読取りまたはこれへの書込みを行う光ディスクドライブ１５５が示されている。例示的なオペレーティング環境で使用可能な他のリムーバブル／ノンリムーバブル、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は、典型的にはインタフェース１４０などのノンリムーバブルメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、典型的にはインタフェース１５０などのリムーバブルメモリインタフェースによってシステムバス１２１に接続される。
【００３２】
上記で論じられ図１に示されたドライブおよびそれらの関連するコンピュータ記憶媒体は、コンピュータ１１０にコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータの記憶域を提供する。たとえば図１では、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納しているとして示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じまたは異なるいずれであってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、ここでは少なくとも異なるコピーであることを示すために、異なる番号が与えられている。
【００３３】
ユーザは、キーボード１６２、マイクロフォン１６３、および、マウス、トラックボール、またはタッチパッドなどのポインティングデバイス１６１などの、入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲームパッド、衛星放送用アンテナ、スキャナ、などを含むことができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース１６０を介してプロセッサ１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造によって接続することも可能である。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。コンピュータは、モニタに加えて、出力周辺インタフェース１９５に接続することが可能なスピーカ１９７およびプリンタ１９６などの他の周辺出力デバイスを含むこともできる。
【００３４】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用する、ネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードであってよく、典型的には、コンピュータ１１０に関して上記で述べた要素の多くまたはすべてを含む。図１に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよく見られるものである。
【００３５】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ  １７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、典型的にはモデム１７２、またはインターネットなどのＷＡＮ  １７３を介してネットワークを確立するための他の手段を含む。モデム１７２は内蔵または外付けであってよく、ユーザ入力インタフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。例を挙げると、図１には、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０に常駐しているものとして示されているが、これに限定されるものではない。図示されたネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段が使用可能であることを理解されよう。
【００３６】
図２は、本発明の一実施形態を使用する、自然なユーザインタフェースモジュールまたはシステム２００を示すブロック図である。自然なユーザインタフェースモジュールまたはシステム２００は、３つの構成要素を含む。これらの構成要素には、タスク予測モジュール２１０、タスクデータベース２２０、およびＡＣＷ（active content wizard）インタプリタ２３０が含まれる。さらに自然なユーザインタフェースモジュールまたはシステム２００は、ユーザからの入力されたユーザコマンドまたはクエリ（query）２０６を受け取り、出力２５０を提供する。クエリは、ユーザが実行したいタスクを表す。入力されたユーザコマンドまたはクエリ２０６は、一実施形態では自然言語入力である。ただし、入力されたユーザコマンドまたはクエリ２０６には、ブール入力、スクロールバー、単語リスト、または音声入力などの、他の入力を使用することができる。
【００３７】
タスク予測モジュール２１０は、入力されたユーザコマンドまたはクエリ２０６に関連付けられたタスクを判定するように構成される。一実施形態では、タスク予測モジュール２１０は、入力されたユーザコマンドまたはクエリ２０６との一致を見つけるために、タスクデータベース２２０を検索するための既存のヘルプ検索モジュールを活用する。タスク予測モジュール２１０は入力されたユーザコマンドまたはクエリ２０６を受け取り、入力されたユーザコマンドまたはクエリ２０６を、タスクデータベース２２０の検索が可能なフォーマットに変換および／または処理する。次にモジュール２１０は、入力されたユーザコマンドまたはクエリ２０６によって表されたタスクに関連付けられた情報を取得するために、タスクデータベース２２０に対して検索を実行する。
【００３８】
検索の後、タスク予測モジュール２１０はタスクデータベース２２０から検索結果を受け取り、入力されたユーザコマンドまたはクエリ２０６におそらく一致するデータベース２２０からの１つまたは複数のタスク文書を、適切なインタフェース２２１を介してユーザに提供する。一実施形態では、モジュール２１０は、タスク文書のうちの１つを選択されたタスクとして単に選択するだけである。他の実施形態では、ユーザはインタフェース２２１を介して、それらの文書のうちの１つを選択された文書として選択することができる。その後、タスク予測モジュール２１０は、選択されたタスクに対応するＡＣＷスクリプトを、ＡＣＷインタプリタ２３０に返す。タスク予測モジュール２１０は、従来の情報取出し構成要素として記載されていることに留意されたい。ただし、他の方法を、入力されたユーザコマンドまたはクエリ２０６によって表される所望のタスクを判定するために使用することができる。例を挙げると、パターンまたはワードマッチング、音声サポートのためのＣＦＧ（context free grammar）、またはサポートベクトルマシンおよびNaive Bayesian Networkなどの他の分類器（classifier）などの、任意の他の周知の情報検索技法がある。
【００３９】
図３は、図２に示されたＡＣＷインタプリタ２３０を示す構成図である。ＡＣＷインタプリタ２３０は、ダイアログモジュール３２０、レジストリモジュール３３０、およびＧＵＩ自動化モジュール３４０を含む。各モジュールは、ＡＣＷインタプリタ２３０に提供されるＡＣＷスクリプト２１１に詳述された特定タイプのステップを実行することができる。ただし、ＡＣＷインタプリタ２３０は、追加のモジュールまたは異なるモジュールも含むように修正可能であり、新しいモジュールまたは異なるモジュールで定期的に更新することができる。例を挙げると、一実施形態では、ＧＵＩ自動化モジュール３４０はＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＵＩ  Ａｕｔｏｍａｔｉｏｎを使用して実施される。
【００４０】
ＡＣＷインタプリタ２３０は、ユーザによって選択されたタスクに関する最小ステップを実行するように構成されたコンピュータプログラムである。一実施形態では、ＡＣＷインタプリタ２３０は、これもＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＭｉｃｒｏｓｏｆｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｕｔｏｍａｔｉｏｎを使用して実施されるＧＵＩ自動化モジュールを含む。このモジュールは、キーボードのキーの押下げ、マウスのクリック、マウスホイールの回転などの、ユーザ入力をシミュレートするものである。ただし、ＡＣＷインタプリタ２３０のＧＵＩ自動化モジュールは、グラフィカルユーザインタフェースをプログラムに従ってナビゲートすること、およびユーザインタフェース上でコマンドを実施および実行することが可能な、任意のアプリケーションを使用して実施することができる。
【００４１】
したがってＡＣＷインタプリタ２３０は、選択されたタスクに関連付けられた最小ステップを、それぞれ順番に実行する。たとえばタスクが、ＧＵＩ上のボタンをクリックして新しいメニューまたはウィンドウを表示するようにユーザに要求する場合、ＡＣＷインタプリタ２３０は、ＧＵＩ自動化モジュールを使用してディスプレイデバイス１９１（モニタなど）上のボタンの位置を突き止め、ボタンをクリックした後、新しいウィンドウがディスプレイデバイス上に表示されるのを待つ。予測されるウィンドウのタイプ／名前は、ＡＣＷスクリプトファイル２１１に詳述される。
【００４２】
図４は、本発明の一実施形態に従った、自然なユーザインタフェースモジュールまたはシステム２００内での選択されたＡＣＷスクリプトの実行を示す流れ図である。４１０では、入力されたユーザコマンドまたはクエリ２０６に応答して、タスク予測モジュール２１０が可能なタスクのセットを識別してユーザに提示し、ユーザがこのセットからタスクを選択する。タスクは、タスクの検索、音声コマンド発行の使用、またはタスクリストからの選択などの、任意のメカニズムによって選択することが可能である。その後モジュール２１０は、選択されたタスクに対応するＡＣＷスクリプト４２２を取得する。
【００４３】
４２８で自然なユーザインタフェースモジュールまたはシステム２００は、ＡＣＷインタプリタ２３０によって実行されるいくつかの最小ステップから第１のステップを選択する。４３４で自然なユーザインタフェースモジュールまたはシステム２００は、この特定の最小ステップを完了するためにユーザ入力が必要であるかどうかを判定する。ステップを完了するためにユーザ入力が必要である場合、４４０で自然なユーザインタフェースモジュールまたはシステム２００は、特定のステップをユーザに表示する。この表示は、入力を要求するディスプレイデバイス１９１上のウィンドウであるか、または特定の最小ステップに関連付けられたＧＵＩであってよい。たとえば、その特定のステップに関するテキストを表示した後、自然なユーザインタフェースモジュールまたはシステム２００は待機し、４４６で要求されたユーザ入力を受け取るまで、次の最小ステップには進まない。システムは、関連情報などの、決定の際にユーザに役立つ任意の追加情報を表示することもできる。
【００４４】
要求された入力を受け取った後、またはこうした入力が必要ない場合、自然なユーザインタフェースモジュールまたはシステム２００は現在の最小ステップを実行するためにステップ４５２に進む。ステップ４５８で自然なユーザインタフェースモジュールまたはシステム２００は、選択されたタスクのために実行される他の最小ステップがあるかどうかの確認を先取りする。実行する追加の最小ステップがある場合、自然なユーザインタフェースモジュールまたはシステム２００は４６４で、ユーザがステップバイステップモードを選択しているかどうかを確認する。選択している場合、自然なユーザインタフェースモジュールまたはシステム２００は、ユーザが最小ステップリストにある次の最小ステップに進む準備ができていることを示す入力を、ユーザから受け取った後に限って、個々の最小ステップをそれぞれ実行する。この入力は、４７０で受け取られる。自然なユーザインタフェースモジュールまたはシステム２００がステップバイステップモードでない場合、システムはステップ４２８に戻り、最小ステップリストにある次のステップを前述のように実行する。ステップ４５８で実行する追加の最小ステップがない場合、自然なユーザインタフェースモジュールまたはシステム２００は、ステップ４７６で所望のタスクの実行を完了している。
【００４５】
図５Ａ〜５Ｊは、ＡＣＷスクリプト２１１に表されており、入力されたユーザコマンドまたはクエリ２０６「Ｅｄｉｔ  ｔｈｅ  ｐａｔｈ  ｖａｒｉａｂｌｅ（パス変数を編集する）」に対応するタスクを実行する際に自然なユーザインタフェースモジュールまたはシステム２００によって実行される、ステップの、代表的なスクリーンショットを示す図である。
【００４６】
図５Ａ〜５Ｊのスクリーンショットのセットは、タスク「パス変数を編集する」を完了するために必要な一連の最小ステップを実行する、ＡＣＷインタプリタ２３０を示す。インタプリタ２３０は各ステップを実行し、ユーザ入力が要求された場合にのみ一時停止する。
【００４７】
図５Ａは、ウィンドウ５００の例示的なシーケンスの第１のステップを示す図である。図示されているアクションは、「コントロールパネルを開く」ためのものである。このステップに対応するＡＣＷスクリプトの一部を以下で詳細に記載する。  
<Step id="id0">
<SyncBlock>
<Text>Open <B>Control Panel</B></Text>
<UIAction           Action="NONE"        UIText=""
UIElementType="NONE">
<ShortcutAction>
<Command>control.exe</Command>
<Arguments/>
</ShortcutAction>
</UIAction> 
</SyncBlock>
</Step>
【００４８】
ウィンドウ５００に表示するためのテキスト５０１は「Ｏｐｅｎ  Ｃｏｎｔｒｏｌ  Ｐａｎｅｌ（コントロールパネルを開く）」である。ＡＣＷインタプリタ２３０は、ｃｏｎｔｒｏｌ．ｅｘｅと呼ばれるショートカットを実行することによってこのステップを実行し、図５Ａに示されるように、ウィンドウ５００の下にコントロールパネルウィンドウを表示する。
【００４９】
図５Ｂは、最小ステップシーケンスでの第２のステップを示す図である。ウィンドウ５１０に示されるアクションは、コントロールパネル上で「Ｃｌｉｃｋ  ｔｈｅ  ｓｙｓｔｅｍ  ｉｃｏｎ（システムアイコンをクリックする）」である。このステップに対応するＡＣＷスクリプトの一部を以下に詳述する。  
<Step id="id2"> 
<SyncBlock>
<Text>Click the <B>System</B> icon.</Text> 
<UIAction      Action="CLK"       UIText="System"
UIElementType="LIST">
<AutomationAction>
<Command>INVOKE</Command>
<Element>
<LogicalElement ClassName="SysListView32"
RawText"Syste" PersistentID""/>
</Element>
<Path>
<LogicalElement ClassName="#32769"
PersistentID="X:NotSupported"/>
<LogicalElement    ClassName="CabinetWClass"
RawText="Control                                         Panel"
PersistentID="X:NotSupported"/>
<LogicalElement
ClassName="SHELLDLL DefView"
PersistentID="X:NotSupported"/>
<LogicalElement         ClassName="SysListView32"
RawText="FolderView" PersistentID="1"/>
<LogicalElement         ClassName="SysListView32"
RawText="System" PersistentID="1"/>
</Path> 
</AutomationAction> 
</UIAction>
</SyncBlock>
</Step>
【００５０】
ウィンドウ５１０に表示するためのテキスト５１１は「Ｃｌｉｃｋ  ｔｈｅ  Ｓｙｓｔｅｍ  ｉｃｏｎ（システムアイコンをクリックする）」である。ＡＣＷインタプリタ２３０は、スクリプトファイルに格納されているパス情報を使用して、コントロールパネルウィンドウ上のシステムアイコン５１５を見つける。パス情報は、何らかのＧＵＩ自動化技術（たとえばＷｉｎｄｏｗｓ（登録商標）ＵＩ  Ａｕｔｏｍａｔｉｏｎ）を使用してスクリーン上のアイコンの位置をプログラムに従って突き止めるために、ＡＣＷインタプリタによって使用される。ＡＣＷインタプリタ２３０がアイコンを見つけると、インタプリタは（Ｗｉｎｄｏｗｓ（登録商標）ＵＩ  Ａｕｔｏｍａｔｉｏｎを使用して）アイコン上の「起動」メソッドを呼び出し、これをクリックする。
【００５１】
図５Ｃ〜５Ｆは、ＡＣＷインタプリタ２３０によるタスクの最小ステップの進行を示す図である。
【００５２】
図５Ｃでは、自然なユーザインタフェースモジュールまたはシステム２００が、図５Ｂでハイライト表示されたシステムメニュー５１５の情報を含むウィンドウ５２２を開いている。図５Ｃは、タスクに必要なシーケンスの次の最小ステップを示す図である。ウィンドウ５２０がグラフィカルユーザインタフェース上に表示され、ウィンドウ５２２のＡｄｖａｎｃｅｄ（拡張）タブをクリックするようにユーザに指示する。同時に、ＡＣＷインタプリタ２３０がウィンドウ５２２内のＡｄｖａｎｃｅｄタブ５２４の位置を突き止めて、これをハイライト表示する。次に、自然なユーザインタフェースモジュールまたはシステム２００は（再度「起動」メソッドを呼び出すことによって）Ａｄｖａｎｃｅｄタブ上でクリックコマンドを実行し、その結果ウィンドウ５２０は、Ａｄｖａｎｃｅｄタブの下にユーザが使用可能なオプションを表示する。
【００５３】
図５Ｄでは、自然なユーザインタフェースモジュールまたはシステム２００はグラフィカルユーザインタフェース上にウィンドウ５３０を開き、このステップについてのユーザに対する命令を表示する。ウィンドウ５３０は、ユーザに「Ｃｌｉｃｋ  ｏｎ  ｔｈｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  Ｖａｒｉａｂｌｅｓ  ｂｕｔｔｏｎ（環境変数ボタン５３２をクリックする）」を指示するテキスト５３１を表示することによってこのステップを実行するための、ユーザへの命令を含む。同時にＡＣＷインタプリタ２３０がウィンドウ５２２上の環境変数ボタン５３２の位置を突き止めて、環境変数ボタン５３２をＧＵＩ上でハイライト表示する。次に自然なユーザインタフェースモジュールまたはシステム２００が環境変数ボタン５３２上でクリックコマンドを実行し、その結果、図５Ｅに示されるようにウィンドウ５４２が開く。
【００５４】
タスクを完了するために必要な追加のステップがある場合、自然なユーザインタフェースモジュールまたはシステム２００はユーザに対して次の命令セットをウィンドウ５４０内に表示する。ウィンドウ５４０は、「Ｃｌｉｃｋ  ｏｎ  ｔｈｅ  Ｐａｔｈ  ｉｃｏｎ（パスアイコンをクリックする）」５４１のようにユーザに指示する。同時にＡＣＷインタプリタ２３０がウィンドウ５４２上のＰａｔｈ（パス）アイコン５４３の位置を突き止めて、これをユーザに対してハイライト表示する。次に自然なユーザインタフェースモジュールまたはシステム２００がＰａｔｈアイコン５４３上でクリックコマンドを実行し、その結果、図５Ｆに示されるようにウィンドウ５５０が表示される。
【００５５】
ユーザには、最小ステップのシーケンスの次のステップを完了するための命令が、再度提示される。ウィンドウ５５０は、テキスト５５１を介して、ユーザにＥｄｉｔ（編集）ボタン５５３をクリックするように指示する。同時にＡＣＷインタプリタ２３０がウィンドウ５４２上のＥｄｉｔボタン５５３の位置を突き止めて、Ｅｄｉｔボタン５５３をＧＵＩ上でハイライト表示する。次に自然なユーザインタフェースモジュールまたはシステム２００は、Ｅｄｉｔボタン５５３をクリックするクリックコマンドを実行し、その結果、図５Ｇに示されるようにウィンドウ５６２が開く。
【００５６】
図５Ｇは、ユーザ入力を必要とするタスクのステップを示す図である。このステップでは、ユーザはパス変数を変更するように要求される。この情報はボックス内にある。ユーザは完了すると、ウィンドウ５５０内のＮｅｘｔ（次へ）ボタン５６４を押して、ＡＣＷインタプリタにウィザード内の必要なステップを引き続き実行させなければならない。本発明の一実施形態でのＡＣＷスクリプトの対応する部分を、以下に示す。  
<Step id="id6">
<SyncBlock>
<Text>Make the desired Path variable 
changes</Text>
<UIAction      Action="USERACTION"      UIText=""
UIElementType="NONE"/>
</SyncBlock>
</Step>
【００５７】
アクションは、このステップでユーザ入力が予測されること、およびユーザが完了するまで次へ進めないことをＡＣＷインタプリタに知らせる、ＵＳＥＲＡＣＴＩＯＮとしてリスト表示される。
【００５８】
ウィンドウ５５０は、ユーザに対して第２の命令５６３をハイライト表示するように変更される。この命令は、パスに所望の変更を行うようにユーザに指示するものである。このステップはユーザ入力を必要とするため、自然なユーザインタフェースモジュールまたはシステム２００はユーザが所望の情報を入力してＮｅｘｔをクリックするまで、次へ進まない。次に自然なユーザインタフェースモジュールまたはシステム２００は、ユーザに「ＯＫ」ボタン５７２をクリックするように指示するウィンドウ５７０を開く。同時にＡＣＷインタプリタ２３０がウィンドウ５６２上のボタン５７２の位置を突き止めて、図５Ｈに示されるようにこれをハイライト表示する。
【００５９】
図５Ｉおよび５Ｊは、所望のタスクを完了するように要求するステップを示す図である。図５Ｈの「ＯＫ」ボタン５７２をクリックした後、自然なユーザインタフェースモジュールまたはシステム２００およびＡＣＷインタプリタ２３０は、ウィンドウ５８０および５９０内の「ＯＫ」ボタン５８２および５９２をそれぞれクリックするための命令をユーザに対して表示し、このボタンをそれぞれウィンドウ５４２および５２２上でハイライト表示する。すべての最小ステップが完了すると、自然なユーザインタフェースモジュールまたはシステム２００はスタンバイ状態に戻り、他の入力されたユーザコマンドまたはクエリ２０６を待つ。
【００６０】
図６は、特定タスクのＡＣＷスクリプトを作成するための流れ図を示す。作者は６１０で、関連するタスクのコンテンツが存在するかどうかを判定する。このコンテンツの例には、ＨＥＬＰ文書、ＫＢ記事、ニュースグループポストなどを含むことができる。タスクに関する文書がすでに存在している場合、作者は６２０でインポータ（importer）に文書を提供する。インポータは、格納されている最小ステップを識別するために文書を解析し、文書に格納されている命令をＡＣＷインタプリタ２３０によって実行可能なＡＣＷスクリプトに変換するように構成されている。適切に解析可能なステップの数は、ファイルの構造に依存する。ＨＥＬＰファイルは、通常はその構造に手がかりがある。たとえば、ＧＵＩに表示されるテキストは、太字体であることが多い。こうした手がかりを解析で使用することができる。
【００６１】
ステップ６３０では、選択されたタスクがＨＥＬＰ文書内にあると仮定すると、ＨＥＬＰ文書の構成要素最小ステップならびにそれら最小ステップの順序を識別するために、インポータによってＨＥＬＰ文書が解析される。一実施形態では、インポータはヘルプ文書を解析して、ＨＥＬＰ文書のテキストで太字体になっている「クリック」、「タブ」、「ボタン」、「メニュー」等の語などのＨＥＬＰ文書内のキーワードを識別する。これらのキーワードは、ＡＣＷインタプリタ２３０が実行可能なコマンドに変換される。ただし、他のタスク解析方法も使用可能である。
【００６２】
作者はステップ６４０で、解析された文書がＡＣＷスクリプトに首尾よく変換されたかどうかを分析する。作者は任意の周知の方法を使用して、仮定された解析をチェックすることができる。解析が不成功であった場合、作者は解析におけるエラーを訂正し、インポータが解析できなかったスクリプトの部分をオーサリングすることができる。これらのステップは本発明の一部を形成していないため、所望に応じて実行可能である。
【００６３】
作者が６１０で、要求されたタスクのコンテンツが存在していないと判定した場合、作者はＡＣＷタスクオーサリング環境を使用してタスクの新しいＡＣＷスクリプトを作成することになり、このオーサリングはステップ６５０で示されている。一実施形態では、オーサリングツールは、作者がタスクの実行中にＧＵＩに対して実行するステップを記録し、このタスクを完了するために実行されたステップを記述するＡＣＷスクリプトを出力する、マクロレコーダである。
【００６４】
作者は６７０で、生成されたＡＣＷスクリプトが正確であるかどうかを検証することができる。このステップは、最終製品に転送されるエラーが最低数であることを保証するための、ＡＣＷスクリプトの手作業の検証または自動検証であってよい。たとえば、ＡＣＷスクリプトにスペリングミスがあった場合、ＡＣＷインタプリタ２３０はその要素を見つけることができず、このエラーが作者に対してハイライト表示される。
【００６５】
ステップ６７０または６４０のいずれかに続き、ステップ６８０では、完了されたＡＣＷスクリプトがスクリプトデータベースに格納される。タスクのオーサリングをＨＥＬＰ／ＫＢ記事コンテンツのオーサリングに統合することにより、タスク／ウィザードのオーサリングコストが大幅に削減される。
【００６６】
以上、本発明について、特定の実施形態を参照しながら説明してきたが、当業者であれば、本発明の趣旨および範囲を逸脱することなく、形式および詳細が変更可能であることを理解されよう。
【符号の説明】
【００６７】
２００  自然なユーザインタフェースモジュールまたはシステム
２０６  入力されたユーザコマンドまたはクエリ
２１０  タスク予測モジュール
２１１  ＡＣＷスクリプト
２２０  タスクデータベース
２２１  ユーザ確認インタフェース
２３０  ＡＣＷインタプリタ
２５０  出力
【図１】
2010191977.tif 000003
【図２】
2010191977.tif 000004
【図３】
2010191977.tif 000005
【図４】
2010191977.tif 000006
【図５Ａ】
2010191977.tif 000007
【図５Ｂ】
2010191977.tif 000008
【図５Ｃ】
2010191977.tif 000009
【図５Ｄ】
2010191977.tif 000010
【図５Ｅ】
2010191977.tif 000011
【図５Ｆ】
2010191977.tif 000012
【図５Ｇ】
2010191977.tif 000013
【図５Ｈ】
2010191977.tif 000014
【図５Ｉ】
2010191977.tif 000015
【図５Ｊ】
2010191977.tif 000016
【図６】
2010191977.tif 000017