JP3361803B2 - 指導動作可能計算システム - Google Patents

指導動作可能計算システム

Info

Publication number
JP3361803B2
JP3361803B2 JP19538189A JP19538189A JP3361803B2 JP 3361803 B2 JP3361803 B2 JP 3361803B2 JP 19538189 A JP19538189 A JP 19538189A JP 19538189 A JP19538189 A JP 19538189A JP 3361803 B2 JP3361803 B2 JP 3361803B2
Authority
JP
Japan
Prior art keywords
command
application
user
instruction
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP19538189A
Other languages
English (en)
Other versions
JPH0273392A (ja
Inventor
ラルフ・トーマス・ワトソン
バーバラ・ビー・パッカード
グレン・スターンズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0273392A publication Critical patent/JPH0273392A/ja
Application granted granted Critical
Publication of JP3361803B2 publication Critical patent/JP3361803B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】 【0001】 【発明の技術分野】 本発明はコンピュータ・ベース・トレーニング(CB
T)に関連するものであり、とりわけ、ユーザに指示を
与えるソフトウエア・エイジェントの利用に関するもの
である。 【0002】 【従来技術およびその問題点】 CBTは、マニュアル、印刷された教材、及びその他の
伝統的な取扱説明資料を補足するか、あるいはこれらに
取って代わるため、さまざまな市販のアプリケーション
に用意されている。CBTは、対話型とすることが可能で
あり、しばしば人間の指導者の役割をモデルとして、ト
レーニング・セッションの間、ユーザの出来具合に応答
して、特定のフィードバックを行うようになっている。 【0003】 一般的には、CBTを実現するには2通りのやり方があ
る。“シミュレーションCBT"の場合、CBTプログラムが
アプリケーションをシミュレートする。“同時(concur
rent)CBT"では、CBTプログラムと同時に、アプリケー
ションが実行される。 【0004】 アプリケーションが高度になり、グラフィックをより
多く利用するようになると、シミュレーションBTの利用
はより困難になる。これは、アプリケーションが複雑に
なると、一般に、アプリケーションをシミュレートする
プログラムも必然的に複雑になるからである。 【0005】 同時CBTの場合、アプリケーション自体によって、ト
レーニング・セッション時におけるそれ自体のインター
フェース及び機能性が得られるので、同時BTはシミュレ
ーションCBTに比べ、しばしばはるかに単純なものとす
ることができる。同時CBTのセッションにおいて、CBTプ
ログラムは、一般にアプリケーションを開始させて、ア
プリケーションの周りの“シェル(shell)”としての
働きをする。 【0006】 同時CBTのセッション時、CBTはアプリケーションをオ
ープンして、制御し、アプリケーションを既知の所望の
状態にする。CBTは、それ自体のルーチンを利用し、ア
プリケーションの上に描かれる“窓”を介して、指導に
関するテキストやグラフィックをユーザに伝える。テキ
スト及びグラフィックは、アプリケーションの概念及び
ユーザの応答を求めるプロンプトについて説明を与え
る。CBTはユーザの入力をモニタしてユーザの応答が適
切であったか否かの判定を行い、また表示画面をモニタ
して、アプリケーションが入力の処理を終了した時点を
判定する。このとき、CBTは、ユーザの応答に基づいて
トレーニングを先へ進めることができる。 【0007】 一般にCBTは構文レベル(syntactic level)、動作レ
ベルでアプリケーションの活動を制御しモニタする。こ
の場合、動作レベル(つまり意味を考えない表層的なあ
るいは単なる物理レベルの動作、操作そのものであるレ
ベル)とは、アプリケーションとの対話を行うためにユ
ーザが行う、キー・ストロークやマウスの移動といった
動作つまりアクションである。例えば、動作レベルのCB
Tであって、対象のアプリケーションがキーボード及び
マウスによって制御を受け、またCRTモニタ装置に対し
出力する場合ならば、CBTはCRT上のピクセルの状況に加
えてキー及びマウスによる入力の検出もできる。このレ
ベルでは、コンピュータがアクションに関連した意図、
つまりユーザの動作、操作の意味を解釈しないので、こ
の対話レベルは“動作的”であると呼ばれる。これに対
してアクションの意図を考慮した意味的レベルに対応し
たCBTについては、従来技術では実現手法が与えられて
いなかった。 【0008】 【発明の目的】 本発明は意味的レベルで対象のアプリケーションをモ
ニタ、制御等することによって、ユーザの動作の意図を
理解しそれに応答するCBTを実現することを目的とす
る。 【0009】 【発明の概要】 本発明の望ましい実施例によれば、アプリケーション
・オブジェクト、コンピュータ・ベース・トレーニング
の指導オブジェクト(INSTRUCTIONオブジェクト)、及
びエージェント・エンジンを備えた指導動作可能計算シ
ステムが開示される。INSTRUCTIONオブジェクトは、ア
プリケーション・オブジェクトと同時に実行される。ア
プリケーション・オブジェクトには、第1のアクション
・プロセッサと第1のコマンド・プロセッサが含まれ
る。第1のアクション・プロセッサは、ユーザが取る物
理レベルの動作、操作そのもの、つまり、例えば画面上
の然々の座標をクリックしたなどの、その意味がなんで
あるかについての解釈の解析を行う前の動作、アクショ
ン(以下、単にアクションと称する)を表したメッセー
ジを受信して、このアクションに基づいて当該アクショ
ンの指示する意味を解釈した結果得られるコマンド(se
mantic command、以下、単にコマンドと称する)を発生
する。ここで、アクションとは然々のキーを押したと
か、マウス・カーソルが然々の座標にあるときにマウス
をクリックした等の、物理レベルの動作のことを言うの
に対し、コマンドとは、1つあるいは一連のアクション
が意味している事項、たとえば然々の命令を入力したと
か、あるいは然々のオブジェクトを選択した等のことを
言う。第1のコマンド・プロセッサは、第1のアクショ
ン・プロセッサからコマンドを受け取って、このコマン
ドを実行する。 【0010】 INSTRUCTIONオブジェクトは、アクションによりユー
ザから入力を受け取り、モニタに情報を表示する。この
情報によって、第1のアプリケーションについての操作
の指導がユーザに対して与えられる。INSTRUCTIONオブ
ジェクトには、望ましい実施例では、INSTRUCTIONアク
ション・プロセッサとINSTRUCTIONコマンド・プロセッ
サが含まれている。INSTRUCTIONアクション・プロセッ
サは、ユーザによるアクションを表したメッセージを受
け取って、このアクションに基づくコマンドを発生す
る。INSTRUCTIONコマンド・プロセッサはINSTRUCTIONア
クション・プロセッサからコマンドを受け取ってそれを
実行する。 【0011】 エイジェントはタスク言語プログラムを実行し、どの
情報を表示すべきかについての指示をINSTRUCTIONオブ
ジェクトに指示するコマンドをINSTRUCTIONオブジェク
トに送る。エイジェントはまた、アプリケーション・オ
ブジェクト及びINSTRUCTIONオブジェクトをモニタし、
コマンドをその実行前にインターセプト、つまり途中で
捕捉する。 【0012】 【発明の実施例】 第1図は本発明の望ましい実施例による指導動作可能
計算システム(以下、単に計算システムと称する)のブ
ロック図である。ユーザ111は、いわゆるマンーマシン
・インターフェースを提供するソフトウエア環境112を
通して計算システムとの通信を行う。ソフトウエア環境
112は、例えば16011NE 36th Way,Redmond,WA 98073−97
17,U.S.A.を会社所在地とするMicrosoft Corporationに
よって販売されているMicrosoft Windowsとすることが
できる。ソフトウエア環境112はアプリケーション100と
対話を行う。ユーザ・アクションを記述する情報を含む
メッセージがソフトウエア環境112によってアプリケー
ション100に送られる。望ましい実施例の場合、ユーザ
のアクションを含むメッセージは、Microsoft Windows
によって送られる標準的なメッセージである。アプリケ
ーション100には、いくつかのユーザ・アクションを単
一のコマンドに変換するアクション・プロセッサ101が
含まれる。例えば、アクション・プロセッサ101は、ユ
ーザが用いるマウスのクリック及び移動といった、ユー
ザ・アクションの観測及び収集を行う。ユーザ・アクシ
ョンがあるコマンドの構文に適合すると、そのコマンド
が生成される。いくつかのユーザ・アクションを用いて
単一のコマンドを生成できるようにするにはいろいろな
方法がある。ユーザがあるコマンドを生成させるには多
様なやり方があるが、そのコマンドの実行は常に同じで
ある。アクション・プロセッサ101は、ユーザが特定の
コマンドを構成し得るさまざまなやり方を構文的に解釈
することができる。ユーザ・アクションに加えて、アク
ション・プロセッサ101はまた、アプリケーション100に
送られてくるそれ以外のメッセージの処理も行う。これ
らのメッセージのうちには、コマンドを生じさせるもの
もあれば、アクション・プロセッサ101ですっかり処理
させるものもある。 【0013】 アプリケーション100にはコマンドを実行するコマン
ド・プロセッサ102も含まれている。コマンド・プロセ
ッサ102は内部フォーマットで表されているコマンドを
受け取り(内部フォーマットについては更に詳しく後述
する)、そのコマンドを実行できない場合はエラーを送
り返す。 【0014】 アプリケーション100及びソフトウエア環境112は、ソ
フトウエア環境112とアプリケーション100とのインター
フェースのレベルでヘルプ環境119との相互作用を行
う。ヘルプ環境119にはまた、ヘプル・テキスト104を利
用するヘルプ・アプリケーション103が含まれている。
ヘプル環境119にはまた、ヘルプ・テキスト104の生成に
用いられるヘルプ・ツール105も含まれている。 【0015】 ソフトウエア環境112は更に、エイジェント環境118と
の相互作用も行う。エイジェント環境118には、エイジ
ェント・タスク107とエイジェント・エンジン108が含ま
れている。 【0016】 エイジェント・エンジン108は、5つの機能を果たす
ため、5つの異なる概念カテゴリでアプリケーション10
0との対話を行う。エイジェント・エンジン108は、質問
(interrogation)のためデータ・チャネル113を介して
アクション・プロセッサとの相互作用を行う。エイジェ
ント・エンジン108は、アプリケーション100の活動をモ
ニタするため、データ・チャネル114を介してアクショ
ン・プロセッサ101との間、及びコマンド・プロセッサ1
02との間で相互作用を行う。エイジェント・エンジン10
8は、アプリケーション100にコマンドを実行させるた
め、データ・チャネル115を介してコマンド・プロセッ
サ102との相互作用を行う。エイジェント・エンジン108
は、アプリケーション100内でのコマンド処理の際のエ
ラーを取り扱うため、データ・チャネル116を介してコ
マンド・プロセッサ102との相互作用を行う。エイジェ
ント・エンジン108は、アプリケーション100の実行を記
録し、またコマンド完了の通知を受け取るため、データ
・チャネル117を介してコマンド・プロセッサ102との相
互作用を行う。 【0017】 望ましい実施例においては、コマンドは以下に示す通
りの形式で表現できる。 (1)キーワード及びパラメータとして記憶されてい
る、タスク言語形式。 (2)エイジェント・エンジン108によって解釈され
る、付加ヘッドを備えた外部形式によるバイナリ・コー
ドであるPコード形式。 (3)アプリケーション100によって理解され、かつエ
イジェント・エンジン108とアプリケーション100との間
で取り交わされるバイナリ・データである外部形式。 (4)アプリケーション100内で実行されるバイナリ・
コマンドとしての内部形式。 【0018】 第2図には、エイジェント・システム全体が以下に働
くかについてのブロック図が示されている。タスク言語
ファイル131はタスク言語を含むファイルである。タス
ク言語は、アプリケーションの機能を記述する、テキス
ト形式のコマンドである。タスク言語は、クラス従属コ
マンドとクラス独立コマンドから構成される。クラス従
属コマンドは、アプリケーションが実行すべきコマンド
である。第2図には単一のアプリケーションであるアプ
リケーション100が示されているだけであるが、エイジ
ェント・エンジン108は多数のアプリケーションと相互
作用できる。 【0019】 本発明の望ましい実施例では、アプリケーションによ
って操作すべきデータ・ファイルは、オブジェクトを利
用して参照される。各オブジェクトには、データ・ファ
イルに対する参照とアプリケーションに対する参照が含
まれている。同じアプリケーションを参照するオブジェ
クトは、同じクラスのメンバであると呼ばれる。アプリ
ケーション毎に相異なるコマンド・セットを実行する。
従って、クラス従属コマンドはアプリケーション毎に異
なる。 【0020】 エイジェント・エンジン108は、エイジェント・エン
ジン108が理解できるコマンドであるクラス独立コマン
ドを実行する。クラス独立コマンドは、アプリケーショ
ンではなくエイジェント・エンジン108が実行する。 【0021】 タスク言語ファイル131は、Pコード・ファイル121の
作成のため、クラス独立パーザ122によって用いられ
る。Pコード・ファイル121の作成時、クラス独立パー
ザ122はクラス従属パーザ123、124等を呼び出す。更に
後述するように、クラス従属パーザは、Pコード形式に
カプセル化されるクラス従属コマンドを発生するパーザ
である。エイジェント・エンジン108は、Pコード形式
のコマンドからコマンドを外部形式で抽出して、これら
のコマンドを適切なアプリケーションへ送る。Pコード
内のクラス・フィールドは、どのアプリケーションがあ
る特定のクラス従属コマンドを受信することになってい
るかを指示している。クラス独立パーザ122は、エイジ
ェント・エンジン108で実行されるPコードを生成する
パーザである。 【0022】 タスク言語ファイル131は、ユーザ111がエイジェント
・タスク・エディタ132を用いて作成することが可能で
ある。そのかわりに、タスク言語ファイルは、クラス従
属レコーダ126、127等を利用するクラス独立レコーダ12
5を用いて作成することができる。一般に、レコーダ
は、後で行う再生(playback)に備えたアプリケーショ
ンのコマンドを記録する。計算システムが記録モードの
場合、エイジェント・タスク・エディタ132は、エイジ
ェント・エンジン108及びアプリケーションがどんなア
クションを取るかについて詳述する、図示されているア
プリケーション100のようなアプリケーションからの入
力を受け取る。アプリケーションは、アプリケーション
・プログラム・インターフェイス(API)130を介して、
エイジェント・タスク・エディタ132と通信する。エイ
ジェント・タスク・エディタ132は、計算システムが記
録モードの場合にはクラス独立レコーダ125にデータを
送り、エイジェント・タスク・エディタがユーザ111に
よって使用中の場合には、タスク言語ファイル131にデ
ータを送る。 【0023】 クラス独立レコーダ125は、情報を受信してタスク言
語ファイルを構築する。エイジェント・タスク・エディ
タ132がアプリケーションの取るアクションに関する情
報を出し送っていることをクラス独立レコーダ125が検
出すると、クラス独立レコーダ125は当該アプリケーシ
ョンについてのクラス従属レコーダを呼び出す。すると
このクラス従属レコーダがそのアクションに関するタス
ク言語形式を生成する。クラス独立レコーダ125は、エ
イジェント・エンジン108が行うアクションに関するタ
スク言語形式を生成する。 【0024】 Pコード・ファイル121の実行時、エイジェント・エ
ンジン108が各Pコード・コマンドを読み出し、そのP
コード・コマンドが、エイジェント・エンジン108が実
行すべきクラス独立コマンドを含んでいるのか、それと
もアプリケーションが実行すべきクラス従属コマンドを
含んでいるか判定する。Pコード・コマンドがクラス独
立コマンドを含んでいる場合には、エイジェント・エン
ジン108がそのコマンドを実行する。Pコード・コマン
ドがクラス従属コマンドを含んでいる場合、エイジェン
ト・エンジン108は、そのコマンドを受け取るべきアプ
リケーションを当該Pコード・コマンドにより決める。
エイジェント・エンジン108は次に、Pコード内に埋め
込まれた外部形式によるクラス従属コマンドを抽出す
る。このクラス従属コマンドは次にアプリケーションに
送られる。例えばクラス従属コマンドがアプリケーショ
ン100に関するものであれば、そのクラス従属コマンド
はアプリケーション100に送られる。アプリケーション1
00内において、内部形式への翻訳プロセッサ128を用い
て、外部形式で送られてきたクラス従属コマンドをこの
コマンドの内部形式に翻訳する。 【0025】 エイジェント・エンジン108とアプリケーション100と
の相互作用にはAPI130が用いられる。API130はエイジェ
ント・エンジン108及び他の機構にアクセスするための
一組の関数及びメッセージである。 【0026】 システムが記録モードの場合、内部形式への翻訳プロ
セッサ128によって、エイジェント・エンジン108からの
コマンドが翻訳され、第3図に示すコマンド・インター
フェース要素146を介してコマンド・プロセッサ102に送
られる。外部形式への翻訳プロセッサ129が、コマンド
・プロセッサ102によって実行された内部形式のコマン
ドを受け取る。コマンドは第3図に示すリターン・イン
ターフェース要素147を介して受け取られる。外部形式
への翻訳プロセッサ129は内部形式のコマンドを外部形
式のコマンドに翻訳する。外部形式のコマンドはAPI130
を介してタスク・エディタ132に転送される。 【0027】 第3図には、本発明の望ましい実施例におけるアプリ
ケーション100のアーキテクチャがより詳細に示されて
いる。アプリケーション100には、ソフトウエア環境112
と相互作用するユーザ・アクション・インターフェース
要素145及びアクション・プロセッサ101とコマンド・プ
ロセッサ102の両方と通信を行うコマンド・インターフ
ェース要素146が含まれている。図示のように、アクシ
ョン・プロセッサ101とコマンド・プロセッサ102の両方
とも、アプリケーション・データ144にアクセスする。
リターン・インターフェース要素147はコマンド・プロ
セッサ102に応答して制御をソフトウエア環境112に戻
す。外部形式への翻訳プロセッサ129はリターン・イン
ターフェース要素147と相互作用するように図示されて
いる。アプリケーション100が再生(playback)モード
または記録モードの場合は、リターン・インターフェー
ス要素147が呼び出されるだけである。これらのモード
については、より詳細に説明する。リターン・インター
フェース要素147は、アプリケーション100によるコマン
ドの実行がすみ、アプリケーション100は次のコマンド
に対する準備ができていることを、エイジェント・エン
ジン108に知らせる。 【0028】 アプリケーション100には、モード・ダイアローグ・
ボックス(mode dialog box)・プロセッサ148及びエラ
ー・ダイアローグ・ボックス要素149も含まれている。
これらは何れもソフトウエア環境と相互作用し、ユーザ
111との通信を行うダイアローグ・ボックスの表示を制
御する。 【0029】 アプリケーションには一度に2つ以上のウインドウを
使って動作することができるものもある。それを行う場
合、モードレス・ユーザ・アクション・インターフェー
ス要素、モードレス・アクション・プロセッサ、及びモ
ードレス・コマンド・インターフェース要素が、アプリ
ケーションが動作する2つ以上のウインドウの各々に付
加される。例えばアプリケーション100については、モ
ードレス・ユーザ・アクション・インターエース要素14
1、モードレス・アクション・プロセッサ142、及びモー
ドレス・コマンド・インターフェース要素143が示され
ている。 【0030】 第4図には、アプリケーション100内におけるデータ
・フローが示されている。アプリケーション100へのメ
ッセージは、ユーザ・アクション・インターフェース要
素145が受信する。例えば、ヘルプ・アプリケーション1
03からのメッセージのようなある種のメッセージについ
ては、ユーザ・アクション・インターフェース要素145
は、アプリケーション100を即座にリターンさせる、つ
まり制御を直ちにシステムに返却する。それ以外の場合
は、メッセージは再生メッセージ・テスト要素150に送
られる。 【0031】 メッセージが、記録またはパージングによって作られ
たコマンドの再生(playback)についてのものであれ
ば、そのメッセージは内部形式への翻訳プロセッサ128
へ送られ、メッセージ内のコマンドが外部形式から内部
形式に翻訳される。このコマンドは次にコマンド・イン
ターフェース要素146に送られる。 【0032】 メッセージが再生メッセージでなければ、そのメッセ
ージはアクション・プロセッサに送られ、例えばそのメ
ッセージを発生させたユーザ・アクションを構文的に解
釈する。コマンドがアクション・プロセッサ101によっ
て生成されず、また内部形式への翻訳プロセッサ128に
よって作られなければ、再生メッセージ・テスト要素15
0はアプリケーション100をリターンさせる。コマンドが
生成されれば、このコマンドはコマンド・インターフェ
ース要素146に送られる。 【0033】 エイジェント・エンジン108がアプリケーション100に
よるコマンドの実行をモニタしている場合、コマンド・
インターフェース要素146は受け取ったデータを外部形
式への翻訳プロセッサ129に送る。この翻訳プロセッサ1
29によってコマンドが外部形式に翻訳されて、エイジェ
ント・エンジン108に転送される。コマンド・インター
フェース要素146はまた、モード・ダイアローグ・ボッ
クス・テスト要素152にもデータを送る。 【0034】 そのデータにコマンドが含まれている場合、コマンド
・テスト要素151はそのコマンドをコマンド・プロセッ
サ102に送って実行されるようにする。コマンド・テス
ト要素151はそのデータをリターン・インターフェース
要素147に送る。 【0035】 エイジェント・エンジン108がコマンドを記録中であ
れば、リターン・インターフェース要素はそのデータを
外部形式への翻訳プロセッサ129に送って外部形式に翻
訳して、リターン・インターフェース要素147を介して
エイジェント・エンジン108へ転送する。リターン・イ
ンターフェース要素147は次のメッセージを受信するま
でにリターンする。 【0036】 第5図にはタスク言語コンパイラ120中のデータ・フ
ローが示されている。タスク言語コンパイラ120は、ユ
ーザが書き込んだタスク言語からPコード・ファイルを
生成するのに用いられる。タスク言語ファイル131には
ユーザが書き込んだコマンドが含まれる。 【0037】 タスク言語コンパイラ120は2バス・コンパイラであ
る。第1パスで使用されるルーチンとしては、入力スト
リーム・プロセッサ164、式パーザ166、クラス独立パー
ザ122、セーブ・ファイル・バッファ171、クラス従属パ
ーザ123、167、168が図示されているところのクラス従
属パーザ等がある。第1パスの実行の結果、一時ファイ
ル176が生成される。 【0038】 クラス独立パーザ122はクラス独立タスク言語コマン
ドのパージングを行う。システムで実行される各アプリ
ケーションは、そのアプリケーションが実行する特別な
コマンドも持っている。従って、アプリケーション毎に
別個のクラス従属パーザが開発される。このパーザは、
その開発の目的のアプリケーションが実行すべきコマン
ドをパージングできる。システムにアプリケーションが
付加されたりあるいはシステムからアプリケーションが
削除されるときには、タスク言語コンパイラ120にクラ
ス従属パーザを付加したりあるいはそこからクラス従属
パーザを削除したりすることができる。 【0039】 さらに、CBTパーザ125が図示されている(第8図)。
このパーザはCBTの実行時にエイジェント・エンジン108
によって実行されるべく生成されているコードをパージ
ングするのに用いられる。 【0040】 コンパイラの動作が開始されると、クラス独立パーザ
122が入力ストリーム・プロセッサにトークンを要求す
る。入力ストリーム・プロセッサ164はタスク言語ファ
イル131を走査してトークンを生成する。クラス独立パ
ーザ122は、次にいくつかの事項のうちの1つを行う。
クラス独立パーザ122はセーブ・ファイル・バッファ171
へ送るべきPコードを生成することができる。クラス独
立パーザ122が次のトークンとして式を期待している場
合、クラス独立パーザ122は式パーザ166を呼び出すルー
チン“MakeExpression()”を呼び出す。式パーザ166
は、式が完成するまで入力ストリーム・プロセッサ164
にトークンを要求し続ける。次に、式パーザ166はPコ
ードを生成してセーブ・ファイル・バッファ171に送
る。するとこれは一時ファイル176にセーブされる。こ
れに加えて、式パーザ166は式トークンを生成して入力
ストリーム・プロセッサ164に戻す。入力ストリーム・
プロセッサ164は、独立パーザ122から要求されると、こ
の式を独立パーザ122に送り出す。 【0041】 FOCUSコマンドの結果、特定のクラス従属パーザが優
先権を得る。従って、そのパージング・ループにおい
て、クラス独立スキャナ122aは現在フォーカスが当たっ
ているアプリケーションに関するクラス従属パーザを呼
び出す。このクラス従属パーザは、クラス従属パーザが
呼び出す意味的ルーチンにより外部コマンド形式に変換
されるクラス従属コマンドを受け取るまで、あるいはこ
のクラス従属パーザが受け取った式をパージングできな
いと判断するまで、入力ストリーム・プロセッサ164に
トークンを要求し続けるクラス従属パーザが式に出会う
と、MakeExpression()の呼出しを用いて式パーザ166
を呼び出すことができる。クラス従属パーザが受け取っ
たトークンをパージングできない場合には、クラス従属
パーザはエラーを戻し、クラス独立パーザがそのトーク
ンをパージングしようとする。 【0042】 FOCUS OFFコマンドによって、全てのコマンドがクラ
ス従属パーザには送られずに、直接独立パーザ122でパ
ージングされるようになる。クラス独立コマンドの系列
をパージングしている間は、これによって不必要な従属
パーザ・ソフトウエアの実行を回避することができ、従
ってタスク言語のコンパイルに必要な計算時間が節約さ
れる。 【0043】 CBTコンパイラ指示子(directive)によってCBTコン
パイラのフラグが“オン”または“オフ”になる。CBT
コンパイラ・フラグによって、コマンドをパージングす
る前にCBTパーザ125を呼び出してよいかどうか定められ
る。パージングの優先順位については後述する。 【0044】 コマンドは最初に、フォーカスが当たっているクラス
従属パーザに送られる。フォーカスの当たっているクラ
ス従属パーザがなければ、あるいはフォーカスの当たっ
ているクラス従属パーザがそのコマンドをパージングで
きなければ、そのコマンドは、CBTコンパイラ・フラグ
が“オン”の場合CBTパーザ125に送られてパージングさ
れる。CBTコンパイラ・フラグが“オフ”の場合、ある
いはCBTパーザ125がそのコマンドをパージングできない
場合には、そのコマンドはクラス独立パーザ122によっ
てパージングされる。 【0045】 第6図には、INSTRUCTIONオブジェクトを実行できる
コンピュータ18が示されている。また、モニタ14、マウ
ス20及びキーボード19も示されている。第7図には、ボ
タン27、28を備えたマウス20が示されている。 【0046】 第8図には、独立パーザ122と、従属パーザ123、124
として図示されている従属パーザとの間のデータ・フロ
ーが示されている。パーザ間の関係についての説明に焦
点を当てるため、第8図に関する説明においてはスキャ
ナ122aが式パーザ166を呼び出すことについては考慮に
入れない。 【0047】 また、CBTパーザ125及びCBTパーザ125のための従属ス
キャナ125aも図示されている。CBTフラグが“オン”に
なると、コマンドをパージングする優先順位は、上述の
ように、フォーカスの当たっているクラス従属パーザ、
次にCBTパーザ、最後にクラス独立パーザ122ということ
になる。以下の説明では、説明を簡単にするためCBTフ
ラグは“オフ”であると仮定する。 【0048】 クラス独立パーザ122がトークンに対して準備が整う
と、クラス独立パーザ122はスキャナ・ルーチンつまり
クラス独立スキャナ122aを呼び出す。クラス独立スキャ
ナ122aは、あるアプリケーションにフォーカスが当たっ
ているかどうかチェックする。アプリケーションにフォ
ーカスが当たっていなければ、クラス独立スキャナ112a
は入力ストリーム・プロセッサ164を呼び出し、入力ス
トリーム・プロセッサ164はトークンをクラス独立スキ
ャナ122aに戻す。クラス独立スキャナ122aはそのトーク
ンをクラス独立パーザ122に戻す。 【0049】 あるアプリケーションにフォーカスが当たっていれ
ば、そのアプリケーションに関するクラス従属パーザに
優先権があり、呼び出される。例えば、クラス従属パー
ザ123に関するアプリケーションにフォーカスが当たっ
ていれば、クラス従属パーザ123がクラス従属スキャナ1
23aを介してクラス独立スキャナ112aを呼び出す。スキ
ャナ122aは自分の状態をチェックして、自分がある従属
パーザから呼び出されているかどうかを判定するので、
別のクラス従属パーザを再帰的に呼び出すことはしな
い。クラス独立スキャナ122aは入力ストリーム・プロセ
ッサ164を呼び出し、入力ストリーム・プロセッサ164は
クラス独立スキャナ122aにトークンを戻す。クラス独立
スキャナ122aはクラス従属スキャナ123aを介してクラス
従属パーザ123にトークンを戻す。本実施例にはクラス
従属スキャナ123aが含まれているが、他の実施例ではク
ラス従属スキャナ123aをなくしてクラス従属パーザ123
が直接にクラス独立スキャナ122aを呼び出してもよい。 【0050】 クラス従属パーザ123が受け取ったトークンをパージ
ングできる限り、クラス従属パーザ123はクラス従属ス
キャナ123aを介してトークンを要求し続ける。これらの
トークンを用いて、クラス従属パーザはPコード中に埋
め込まれたクラス従属外部コマンドを生成する意味的ル
ーチンを呼び出す。クラス従属パーザ123が受け取った
トークンをパージングできない場合、クラス従属パーザ
はクラス独立スキャナ122aにエラーを戻す。このときに
はクラス独立スキャナ122aは入力ストリーム・プロセッ
サ164を呼び出して、クラス従属パーザ123がパージング
できなかったトークンを入力ストリーム・プロセッサ16
4から受け取る。このトークンはクラス独立パーザ122に
戻される。クラス独立パーザ122はそのトークンをパー
ジングし、意味的ルーチンを呼び出して、エイジェント
・エンジン108による実行のためのPコードを生成す
る。次回に、クラス独立パーザ122がクラス独立スキャ
ナ122aにトークンを要求すると、FOCUS OFFコマンドが
出されるまで、あるいは別のアプリケーションにフォー
カスが当たるまで、クラス独立スキャナ122aは再びクラ
ス従属パーザ123を呼び出す。 【0051】 クラス従属パーザ124に関するアプリケーションにフ
ォーカスが当たっているときには、クラス独立スキャナ
122aはクラス従属パーザ124を呼び出す。クラス従属パ
ーザ124はクラス従属スキャナ124aを呼び出し、従属パ
ーザ123と同様に動作する。 【0052】 第5図に示すセーブ・ファイル・バッファ171はクラ
ス独立パーザ122及び式パーザ166からPコードを受け取
り、またクラス従属パーザからPコード中に埋め込まれ
た外部コマンド形式を受け取る。セーブ・ファイル・バ
ッファ171はこの情報を一時ファイル176に記憶する。第
2パス・ルーチン群174は、一時ファイル176に記憶され
たPコード及び外部コマンド形式を受け取り、Pコード
ファイル121を生成するためアドレスを決定するといっ
たようなハウスキーピングを行う。 【0053】 第9図中では、アプリケーション100は例えばオブジ
ェクト“NewWave Office"に含まれるとして図示してあ
る。ウィンドウ300はオブジェクト“NewWave Office"の
ためのユーザ・インターフェースである。オブジェクト
“NewWave Office"の使用法についてユーザを指導する
ための指導用のアプリケーションであるINSTRUCTIONア
プリケーション200がアプリケーション100と同時に実行
される。INSTRUCTIONアプリケーション200はINSTRUCTIO
Nオブジェクト内に含まれている。INSTRUCTIONアプリケ
ーション200はこのシステム上の他のアプリケーション
と同様の設計がなされている。図示するように、INSTRU
CTIONアプリケーション200にはアクション・プロセッサ
201とコマンド・プロセッサ202が含まれている。 【0054】 エイジェント・エンジン108は、システム上の他のア
プリケーションの場合と同様、INSTRUCTIONアプリケー
ション200と相互作用する。例えば、エイジェント・エ
ンジン108は、質問のため、データ・チャネル213を介し
てアクション・プロセッサ201との相互作用を行う。エ
イジェント・エンジン108はINSTRUCTIONアプリケーショ
ン200の活動をモニタするため、データ・チャネル214を
介してアクション・プロセッサ201及びコマンド・プロ
セッサ202との相互作用を行う。エイジェント・エンジ
ン108は、コマンドがINSTRUCTIONアプリケーション200
によって実行されるようにするため、データ・チャネル
215を介してコマンド・プロセッサ202との相互作用を行
う。エイジェント・エンジン108は、INSTRUCTIONアプリ
ケーション200内でのコマンドの処理におけるエラーを
取り扱うため、データ・チャネル216を介してコマンド
・プロセッサ202との相互作用を行う。エイジェント・
エンジン108は、INSTRUCTIONアプリケーション200の実
行を記録し、またコマンド完了の通知を受け取るため、
データ・チャネル217を介してコマンド・プロセッサ202
との相互作用を行う。 【0055】 INSTRUCTIONアプリケーション200は、例えばウィンド
ウ302のようなダイアローグ・ボックスを表示する等に
よって、アプリケーション100の実行と同時に、ユーザ
との対話を行う。INSTRUCTIONアプリケーション200はま
た、音声のような他の手段を用いて交信してもよい。 【0056】 第10図〜第17図にはCBTセッションが簡潔に示されて
いる。このセッションでは、ユーザは、第10図に示すア
イコン301によって表されるフォルダ“Fred"を開く方法
について指導を受ける。また、第10図にはエイジェント
・エンジン108を表すアイコン304も示されている。アイ
コン309は下記の表1に示すタスク言語ファイルをコン
パイルしてPコードで表したものを含むオブジェクト
“Lesson Task"(授業タスク)を表している。タスク言
語ファイルをコンパイルしてPコードにしたものは、エ
イジェント・エンジン108によって実行される。オブジ
ェクト“Lesson Task"をコンパイルする前にオープンす
ると、Pコード版のタスク言語ファイルのソース・コー
ドを編集できる。 【0057】 アイコン305は“Lesson Instruction"(授業指導)と
呼ばれるオブジェクトを表している。このオブジェクト
は会話データと呼ばれるデータ、及びユーザに対してこ
のデータを表示するライブラリ・ルーチンを備えたINST
RUCTIONアプリケーション200を含んでいる。オブジェク
ト“Lesson Instruction"は、エイジェント・エンジン1
08に命令されると、このデータを表示する。マウス20に
よって制御されるカーソル303がアイコン309を指示して
いる様子が図示されている。 【0058】 カーソル303をアイコン309上に位置決めすることによ
り、ユーザはボタン27を押し込むことによってオブジェ
クト“Lesson Task"を選択することができる。この時点
で、第11図に示すように、アイコン309が強調表示され
る。アイコン309のシャドー307はカーソル303に従って
動くようになる。シャドー307をアイコン305の上に位置
決めしてボタン27を離すとアイコン309は第12図に示す
ようにウィンドウ300から消え、エイジェント・エンジ
ン108が、オブジェクト“Lesson Task"に含まれている
タスク言語プログラムの実行を開始する。Lesson Task
に含まれているタスク言語プログラムのソースの一例を
下記の表1に示す。 【0059】 【0060】 表1のタスク言語は、クラス独立パーザ122、オブジ
ェクト“NewWave Office"についてのクラス従属パー
ザ、オブジェクト“Lesson Instruction"についてのク
ラス従属パーザ、及びCBTパーザ125を用いて、タスク言
語コンパイラ120によってコンパイルされる。例えば、
5行目の“focus"コマンドは、クラス独立パーザ122に
よってパージングされ、6行目の“select instructio
n"コマンドはオブジェクト“NewWave Office"について
のクラス従属パーザによってパージングされ、9行目の
“Show_window"コマンドはオブジェクト“Lesson Instr
uction"についてのクラス従属パーザによってパージン
グされ、71行目の“point to center"コマンドはCBTパ
ーザ125によってパージングされる。 【0061】 すべてのタスク言語プログラムの先頭の行には命令
“task"が含まれるので、表1のコードの1行目にも語
“task"が入っている。同様に、表1のコードの36行目
には、タスク・プログラムの最後の命令であることを示
す“end task"という語が入っている。 【0062】 表1の2行目の命令によってCBTコンパイラのフラグ
が“on"になる。3行目と4行目の命令によって、変数
がセットされる。5行目の命令によって、オブジェクト
“NewWave Office"にフォーカスが当てられる。6行目
と7行目の命令はエイジェント・エンジン108からオブ
ジェクト“NewWave Office"に送られる。これらの命令
が、オブジェクト“NewWave Office"で実行されると、
オブジェクト“Lesson Instruction"が選択され、オー
プンされる。オブジェクト“Lesson Instruction"がオ
ープンされると、INSTRUCTIONアプリケーション200が実
行される。“Lesson Instruction"指導が選択されたこ
とは、アイコン305を第13図に示すように強調表示する
ことによって示す。 【0063】 8行目の命令によって、オブジェクト“Lesson Instr
uction"にフォーカスが当てられる。9行目の命令はエ
イジェント・エンジン108によって実行されると、エイ
ジェント・エンジン108によってオブジェクト“Lesson
Instruction"に送られる。オブジェクト“Lesson Instr
uction"による実行が行われると、その命令によって第1
4図に示すようにウィンドウ300の上にウィンドウ302が
開かれる。ウィンドウ302はオブジェクトをオープンす
る方法についてユーザに指導を与える。ユーザはウィン
ドウ302を読み終えたらマウス20を用いてカーソル303を
ボタン308の上に位置決めし、ボタン27をクリックす
る。従って、基本的に、エイジェント・エンジン108は
“Continue"とラベル表示されたボタン308がユーザによ
って選択されるのを待つ。エイジェント・エンジン108
は、他の全てのコマンドが無視される、つまり実行され
ないようにする。この処置ができるようにするため、エ
イジェント・エンジン108は、他の動作中のオブジェク
トによって実行されているアプリケーションもモニタ
し、コマンドが実行される前にそれをインターセプトす
る。これに必要とされるコードについては後述する。 【0064】 10行目〜14行目の命令は、ユーザがウィンドウ302を
読んでいる間にエイジェント・エンジン108によって実
行される。10行目の命令はモニタ手続を定義する。11行
目において、変数“button_flag#”をゼロにクリアす
る。12行目において、命令“set command on"によって
モニタ動作がオンになる。モニタ動作がオンにされる
と、ユーザが何かコマンド実行したとき手続“process_
button"が実行される。これは、例えばアプリケーショ
ン100のアクション・プロセッサ101とコマンド・プロセ
ッサ102間におけるデータ径路114のような、あるアプリ
ケーションのアクション・プロセッサとコマンド・プロ
セッサ間のデータ経路に沿って送られるコマンドに対応
する。これはコマンド・ラップと呼ばれる。エイジェン
ト・エンジン108は“NewWave Office"アプリケーション
100とINSTRUCTIONアプリケーション200をモニタできる
ので、コマンド・ラップを生じさせることができる。エ
イジェント・エンジン108がコマンド・トラップを起こ
すと、アクション・プロセッサ101からコマンド・プロ
セッサ102に送られるコマンドとアクション・プロセッ
サ201からコマンド・プロセッサ202に送られるコマンド
は、エイジェント・エンジン108によってインターセプ
トされる。このようにして、オブジェクト“NewWave Of
fice"と“Lesson 1"は両方ともエイジェント・エンジン
108によってモニタされる。両オブジェクトからのコマ
ンドは実行前にインターセプトされて、コマンド・ラッ
プが起こる。 【0065】 表1の38行目〜43行目には手続“process_button"が
示されている。関数“sys_cmdclass()”はユーザから
コマンドを受け取ったオブジェクトのクラス・ストリン
グを戻す。39行目において、もしオブジェクトがINSTRU
CTIONアプリケーション200であるならば、すなわちもし
ユーザがボタン308の上にカーソル303を位置決めし、ボ
タン27をクリックしたことで手続“process_button"が
呼び出され、関数“sys_cmdclaass()”がストリング
“INSTRUCTION"を戻すと、変数“button_flag#”が40
行目で“1"にセットされる。一方、他のオブジェクトが
ユーザからコマンドを受け取ると、例えばユーザがカー
ソルをウィンドウ300に位置決めしてボタン27をクリッ
クすると、オブジェクトのクラス・ストリングが戻され
るが、これは“INSTRUCTION"とは等しくならず、変数
“button_flag#”は“1"にセットされない。 【0066】 42行目において、“ignore"コマンドは、どちらのオ
ブジェクトが(すなわち、オブジェクト“NewWave Offi
ce"と“Lesson 1"のどちらが)ユーザからのコマンドを
戻したかには関係なく、そのコマンド自体が無視されて
実行されないようにすることを示す。すなわち、そのコ
マンドが“NewWave Office"アプリケーションからきた
ものであろうと、INSTRUCTIONアプリケーション200から
きたものであろうと、そのコマンドはこれ以上の処理の
ためにコマンド・プロセッサ102あるは202に戻されるこ
とはない。その代わりに、コマンドをAPI_NO_CMDにセッ
トすることによって、NULL(空)コマンドが戻される。 【0067】 12行目でモニタ動作をオンにした後、エイジェント・
エンジンは12行目の命令を実行し、ユーザがカーソル30
3でボタン308を選択するのを待つwhileループ(命令13
〜15)に入る。このループ内にいる間に、あるアプリケ
ーションで何らかのコマンドが生成されると、手続“pr
ocess_button"が実行される。手続“process_button"が
終了した時、button_flag#=0であれば、エイジェン
ト・エンジンは13行目〜15行目の命令によって定義され
るループ内にとどまる。button_flag#=1の場合に
は、エイジェント・エンジン108は以降の動作を16行目
の命令から継続する。 【0068】 16行目において、モニタ動作が“オフ”になる。17行
目と18行目の命令はINSTRUCTIONアプリケーション200で
実行するために、エイジェント・エンジン108によって
オブジェクト“Lesson Instruction"に送られる。これ
らの命令が実行されると、INSTRUCTIONアプリケーショ
ン200により、ディスプレイ14からウィンドウ302を除去
し、第15図に示されるように、ウィンドウ311を表示さ
せる。19行目の命令がエイジェント・エンジン108によ
って実行されると、モニタ手続を手続“process_open"
に再定義する。 【0069】 20行目において、変数“open_flag#”が“0"にセッ
トされる。21行目において、命令“set command on"が
モニタ動作を“オン”にし、その結果システム上で実行
中のオブジェクトによってコマンドが実行される前に、
エイジェント・エンジン108がこれらコマンドをインタ
ーセプトする。 【0070】 プログラムの実行を続行する前に、22行目〜24行の命
令がエイジェント・エンジン108に指示を与え、手続“p
rocess_open"中で変数“open_flag#”が“1"にセット
されるまで待機させる。ユーザ・アクションの結果ある
アプリケーションでコマンドが生成されると、手続“pr
ocess_open"が実行される。その完了時にopen_flag#=
0であれば、エイジェント・エンジンは、22行目〜24行
目の命令によって定義されたループ内にとどまる。open
_flag#=1なら、エイジェント・エンジン108は25行目
の命令によってプログラムの実行を継続する。 【0071】 手続“process_open"は45行目〜65行目に示されてい
る。46行目において、関数“sys_cmdclass()”が“IN
STRUCTION"を戻したとしよう。これが示しているのは、
コマンドを実行しようとしていたのはINSTRUCTIONアプ
リケーションであったということである。これは、ユー
ザがボタン314を選択してデモを要求したということを
意味している。従って、47行目で手続“demo"が呼び出
される。48行目において変数“open_flag#”が“1"に
セットされる。49行目において、エイジェント・エンジ
ン108は現在モニタしている最中のコマンドを無視する
ように命令を受ける。 【0072】 68行目〜74行目に示された手続“demo"は、フォルダ
“Fred"をどのようにしたらオープンできるかをユーザ
に教える。69行目の命令によって、オブジェクト“NewW
ave Office"に対しフォーカスが当てられる。質問関数w
here_is(“FOLDER",“Fred")が、ディスプレイ、すな
わちウィンドウ300内のどこにフォルダ“Fred"があるか
について、オブジェクト“NewWave Office"に問い合わ
せる。エイジェント・エンジン108がこの命令を実行す
る際、エイジェント・エンジンはオブジェクト“NewWav
e Office"に対してAPI_INTERROGATE_MSGメッセージを送
り、“NewWave Office"はフォルダ“Fred"のウィンドウ
300内における位置を座標で答える。 【0073】 70行目の命令により、変数“object_region#”は関
数where_is(“FOLDER",“Fred")が戻す値にセットさ
れる。71行目と72行目の命令によって一連のユーザ・ア
クション・レベルのメッセージが作成され、ユーザ・ア
クション・インターフェースを介してオブジェクト“Ne
wWave Office"に送られて実行される。71行目の命令に
よって、第16図に示すようにカーソル303が移動して、
フォルダ“Fred"の中心を指示する。第16図において、
移動経路310の開始点と終了点にカーソル303を図示する
ことにより、カーソル303の動きを表現している。72行
目において、マウス27のボタン20をダブル・クリックし
たことに相当するユーザ・アクションがオブジェクト
“NewWave Office"に送られ処理される。73行目におい
て、5秒間のポーズをおくことによって、ユーザが自分
の見たものについて熟考するチャンスを与える。 【0074】 一般に、3つのタイプの質問関数がある。関数“wher
e_is()”はパラメータとしてオブジェクトのクラス及
びタイトルを識別するものをとり、モニタ14上の表示中
でオブジェクトを表すアイコンの矩形領域を要求する。
関数“whats_at()”は、パラメータとしてディスプレ
イの点を取り、その点にあるアイコンによって表されて
いるオブジェクトの識別を要求する。関数“statu
s()”はパラメータとしてオブジェクトのIDを取り、
例えばそのオブジェクトにフォーカスが当たっているか
とか、そのオブジェクトのためにオープンされているウ
ィンドウが存在するかといった、オブジェクトのステー
タスを要求する。こうした関数のそれぞれに対する命令
がエイジェント・エンジン108によって実行されると、
エイジェント・エンジン108はAPI_INTERROGATE_MSGメッ
セージを送り出して、フォーカスが当たっているオブジ
ェクトからの情報を要求する。 【0075】 質問関数を利用すると、デモ・プログラムの柔軟性が
大幅に向上する。質問関数を利用することにより、デモ
・プログラムは、オブジェクトの位置を突き止め、特定
の位置にどんなオブジェクトが置かれているか判定し、
またオブジェクトのステータスを判定することが可能に
なる。こうした質問関数を利用すると、デモ・プログラ
ムは、当初、デモに用いられるオブジェクトの位置、身
元(identify)及びまたはステータスを知らなかったと
しても、デモを実行することができる。 【0076】 ユーザが、デモをさせるのではなくフォルダ“Fred"
をオープンしようとした場合、51行目〜64行目の命令
“process_open"によって、エイジェント・エンジン108
は“NewWave Office"アプリケーション100によって生成
されたコマンドの実行を許可する前に、そのコマンドを
モニタするようになる。ユーザが生成したコマンドは、
アクション・プロセッサ101からコマンド・プロセッサ1
02に送られる際にインターセプトされる。 【0077】 51行目〜64行目の命令によって、ユーザは、いくつか
のやり方でフォルダ“Fred"をオープンすることができ
るようになる。例えば、ユーザはフォルダ“Fred"上に
カーソル303を位置決めしてからボタン27をダブル・ク
リックしてもよいし、あるいはフォルダ“Fred"を選択
してからプルダウン・メニューからコマンド“Open"を
選んでもよい。フォルダ“Fred"をオープンするために
ユーザが選び取ったやり方とは関係なく、2つのコマン
ドが順次生成されなければならない。まず、ユーザがフ
ォルダ“Fred"を選択したことによって、selectコマン
ドがコマンド・プロセッサ102に戻されなければならな
い。これが起こると、53行目において、class#に値“F
OLDER"が割り当てられ、54行目において、title#に“F
RED"が割り当てられ、55行目においてselectコマンドが
実行される。次に、openコマンドがコマンド・プロセッ
サ102に戻されて実行されなければならない。openコマ
ンドが戻された時、class#=FOLDERであってかつtitle
#=FREDであれば、58行目においてopen_flag#が“1"
にセットされ、59行目において、openコマンドが実行さ
れる。 【0078】 他のコマンドについてはエイジェント・エンジン108
はどれも無視する。ユーザが成功裏にフォルダ“Fred"
をオープンすると、第17図に示すように、ウィンドウ31
9が現れる。 【0079】 25行目において、モニタ動作がオフにされる。26行目
と27行目の命令がエイジェント・エンジン108によって
オブジェクト“Lesson Instruction"に送られて実行さ
れる。この実行により、ウィンドウ311はディスプレイ1
4から除去され、第17図に示されるようにウィンドウ316
が現れる。28行目の命令によって、モニタ手続は手続
“process_button"に再定義され、ユーザが何かコマン
ドを実行するときに、ただし、モニタ動作がオンの場合
に限って、手続“proces_button"が実行される。 【0080】 29行目において、変数“button_flag#”が“0"にセ
ットされる。30行目の命令“set command on"によっ
て、モニタ動作がオンになり、アプリケーションでコマ
ンドが生成されるとコマンド・トラップが起こる。 【0081】 エイジェント・エンジン108はbutton_flag#が0であ
る限り31行目〜33行目の命令をループする。32行目の命
令において、エイジェント・エンジンは何れかのアプリ
ケーションからのコマンドがインターセプトされるのを
待つ。INSTRUCTIONアプリケーション200からのコマンド
がインターセプトされるとbutton_flag#が0にセット
され、エイジェント・エンジン108はループを抜け出
て、次に34行目の命令を実行する。 【0082】 34行目においてモニタ動作はオフになる。35行目の命
令がエイジェント・エンジン108によってオブジェクト
“Lesson Instruction"に送られて実行される。この実
行により、ウィンドウ316は、ディスプレイ14から除去
される。 【0083】 【発明の効果】 以上詳細に説明したように、本発明によれば意味的レ
ベルでアプリケーションをモニタ、制御しながらCBT動
作を行うことができるので、例えば、ウィンドウ、プル
ダウン・メニュー、ポインティング・デバイス等を駆使
するマン−マシン・インターフェースを使って動作する
アプリケーションに対するCBT等の実現に当たって有効
である。
【図面の簡単な説明】 【図1】アプリケーションとエイジェント環境とヘルプ
環境との相互作用を説明するための図。 【図2】タスク言語ファイルの生成と実行の態様を説明
するための図。 【図3】図1中のアプリケーションの講造を説明するた
めの図。 【図4】図1中のアプリケーション内のデータ・フロー
を説明するための図。 【図5】タスク言語コンパイラを説明するための図。 【図6】本発明実施例を適用できる計算システムを説明
するための図。 【図7】図6中のマウスを説明するための図。 【図8】図5中のタスク言語コンパイラ内のデータ・フ
ローを説明するための図。 【図9】CBTを行うためのアプリケーションと他の要素
との関係を説明するための図。 【図10】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図11】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図12】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図13】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図14】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図15】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図16】図9に示した構成の動作によって表示される
一連の画面を示す図。 【図17】図9に示した構成の動作によって表示される
一連の画面を示す図。 【符号の説明】 100:アプリケーション 101:アクション・プロセッサ 102:コマンド・プロセッサ 103:ヘルプ・アプリケーション 104:ヘルプ・テキスト 105:ヘルプ・ツール 107:エイジェント・タスク 108:エイジェント・エンジン 111:ユーザ 112:ソフトウエア環境 118:エイジェント環境 119:ヘルプ環境 121:Pコード・ファイル 122:クラス独立パーザ 122a:クラス独立スキャナ 123,124:クラス従属パーザ 123a,124a,125a:クラス従属スキャナ 125:クラス独立レコーダ 125′:CBTパーザ 126,127:クラス従属レコーダ 128:内部形式への翻訳プロセッサ 129:外部形式への翻訳プロセッサ 130:API 131:タスク言語ファイル 141:モードレス・ユーザ・アクション・インターフェー
ス要素 142:モードレス・アクション・プロセッサ 143:モードレス・コマンド・インターフェース要素 144:アプリケーション・データ 145:ユーザ・アクション・インターフェース要素 146:コマンド・インターフェース要素 147:リターン・インターフェース要素 148:モード・ダイアローグ・ボックス・プロセッサ 149:エラー・ダイアローグ・ボックス要素 150:再生メッセージ・テスト要素 151:コマンド・テスト要素 152:モード・ダイアローグ・ボックステスト要素 164:入力ストリーム・プロセッサ 166:式パーザ 167,168:クラス従属パーザ 171:セーブ・ファイル・バッファ 174:第2パス・ルーチン群 176:一時ファイル 200:INSTRUCTIONアプリケーション 201:アクション・プロセッサ 202:コマンド・プロセッサ
フロントページの続き (72)発明者 バーバラ・ビー・パッカード アメリカ合衆国カリフォルニア州ロス・ アルトス・ヒルズ ラ・ビダ・リール 12840 (72)発明者 グレン・スターンズ アメリカ合衆国カリフォルニア州スコッ ツ・バリータン・オーク・ドライブ 32 (56)参考文献 特開 昭61−183741(JP,A) 特開 昭62−190522(JP,A) 特開 昭61−49227(JP,A) 特開 昭62−179016(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/00,15/00,17/00

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】以下の(a)から(f)を備えた、ユーザ
    と対話して作業を行うアプリケーションについて、ユー
    ザに対してアプリケーションのトレーニングを提供する
    指導動作可能計算システム。 (a)モニタ。 (b)ユーザがコンピュータ・システムに入力を行うた
    めのユーザ入力手段。 (c)前記モニタ及び前記ユーザ入力手段との入出力を
    行うことにより、ユーザに対してマン−マシン・インタ
    ーフェースを提供するソフトウエア環境手段。 (d)以下の(d−1)及び(d−2)を備えたトレー
    ニング対象のアプリケーションであるトレーニング対象
    アプリケーション・プロセス手段であって、前記トレー
    ニング対象アプリケーション・プロセス手段は、前記作
    業に関する情報を前記ソフトウエア環境手段を介して前
    記モニタ上に表示し、ユーザが前記トレーニング対象ア
    プリケーション手段に対して行った第1のユーザ操作を
    前記ソフトウエア環境手段を介してメッセージの形態で
    受信し、受信した前記第1のユーザ操作を示すメッセー
    ジに応答して動作して、動作結果を必要に応じて前記ソ
    フトウエア環境手段を介して出力するトレーニング対象
    アプリケーション・プロセス手段。 (d−1)前記第1のユーザ操作を示すメッセージを前
    記ソフトウエア環境手段を介して受信して、前記第1の
    ユーザ操作に基づいて前記第1のユーザ操作が意図する
    アプリケーション用コマンドを生成するアプリケーショ
    ン・アクション・プロセッサ手段。 (d−2)前記アプリケーション・アクション・プロセ
    ッサ手段から前記アプリケーション用コマンドを受け取
    って、前記アプリケーション用コマンドを実行して、前
    記動作結果を出力するアプリケーション・コマンド・プ
    ロセッサ手段。 (e)以下の(e−1)及び(e−2)を備え、前記ト
    レーニング対象アプリケーション・プロセス手段につい
    てのユーザに対する操作の指導の情報を前記ソフトウエ
    ア環境手段を介して前記モニタ上に表示するとともに、
    ユーザが前記情報に応答して前記指導プロセス手段に対
    して行った第2のユーザ操作を前記ソフトウエア環境手
    段を介してメッセージの形態で受信する指導プロセス手
    段。 (e−1)前記第2のユーザ操作を示すメッセージを前
    記ソフトウエア環境手段を介して受信して、前記第2の
    ユーザ操作に基づいて前記指導プロセス手段の動作を制
    御する指導プロセス手段用コマンドを生成する指導アク
    ション・プロセッサ手段。 (e−2)前記指導アクション・プロセッサ手段から又
    は後記エイジエント・プロセス手段から前記指導プロセ
    ス手段用コマンドを受け取って、前記指導用コマンドを
    実行して、前記ユーザに対する操作の指導の情報を出力
    する指導コマンド・プロセッサ手段。 (f)前記トレーニング対象アプリケーション・プロセ
    ス手段及び前記指導プロセス手段に結合され、ユーザに
    対する操作の指導のためのタスク言語プログラムによっ
    て制御されるエイジエント・プロセス手段であって、前
    記エイジエント・プロセス手段は、前記タスク言語プロ
    グラムによって指定された指導プロセス手段用コマンド
    を前記指導コマンド・プロセッサ手段に送って前記指導
    プロセス手段に対して前記モニタ上に表示する情報を指
    示するとともに、前記アプリケーション・アクション・
    プロセッサ手段から前記アプリケーション・コマンド・
    プロセッサ手段へ向けて送出された前記アプリケーショ
    ン用コマンドをインターセプトすることにより、ユーザ
    による操作を監視し、前記インターセプトされたアプリ
    ケーション用コマンドを前記アプリケーション・コマン
    ド・プロセッサ手段に実行させるかあるいは実行させな
    いかを決定するエイジエント・プロセス手段。
JP19538189A 1988-07-27 1989-07-27 指導動作可能計算システム Expired - Fee Related JP3361803B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22511588A 1988-07-27 1988-07-27
US225,115 1988-07-27

Publications (2)

Publication Number Publication Date
JPH0273392A JPH0273392A (ja) 1990-03-13
JP3361803B2 true JP3361803B2 (ja) 2003-01-07

Family

ID=22843592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19538189A Expired - Fee Related JP3361803B2 (ja) 1988-07-27 1989-07-27 指導動作可能計算システム

Country Status (6)

Country Link
EP (1) EP0352908A3 (ja)
JP (1) JP3361803B2 (ja)
KR (1) KR900002161A (ja)
CN (1) CN1018207B (ja)
AU (1) AU631128B2 (ja)
CA (1) CA1323702C (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134560A (en) * 1989-10-23 1992-07-28 International Business Machines Corporation Method and system for generation of manufacturing process plans
JPH0535715A (ja) * 1991-04-20 1993-02-12 Fuji Xerox Co Ltd 計算機意味操作判定装置
US5432940A (en) * 1992-11-02 1995-07-11 Borland International, Inc. System and methods for improved computer-based training
US5565655A (en) * 1992-11-19 1996-10-15 Goldstar Co., Ltd. Method of detecting food weight in microwave oven by processing weight sensor signals
US5550563A (en) * 1992-12-23 1996-08-27 Taligent, Inc. Interaction framework system
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
CA2151102C (en) 1994-06-07 2004-07-20 Thomas Gerard Marsh Computer based training system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1267229A (en) * 1986-03-10 1990-03-27 Randal H. Kerr Reconfigurable automatic tasking system

Also Published As

Publication number Publication date
EP0352908A3 (en) 1991-01-30
CN1039912A (zh) 1990-02-21
AU631128B2 (en) 1992-11-19
CN1018207B (zh) 1992-09-09
CA1323702C (en) 1993-10-26
KR900002161A (ko) 1990-02-28
EP0352908A2 (en) 1990-01-31
AU3825989A (en) 1990-02-01
JPH0273392A (ja) 1990-03-13

Similar Documents

Publication Publication Date Title
US5317688A (en) Software agent used to provide instruction to a user for a plurality of computer applications
US5117496A (en) Method for recording and replaying mouse commands by recording the commands and the identities of elements affected by the commands
US7861178B2 (en) System and method for dynamic assistance in software applications using behavior and host application models
KR101120756B1 (ko) 사용자 인터페이스 상에서의 사용자 액션을 설명하는텍스트를 자동으로 생성하는 시스템, 방법 및 그 컴퓨터실행가능 명령어를 포함하는 컴퓨터 판독가능 매체
US5748191A (en) Method and system for creating voice commands using an automatically maintained log interactions performed by a user
EP1763865B1 (en) Automatic image capture for generating content
JP4731643B2 (ja) スクリプト作成システム
US20050060719A1 (en) Capturing and processing user events on a computer system for recording and playback
JP2004213677A (ja) Guiを有するコンピュータシステムでタスクを実行する方法
JPH0458052B2 (ja)
KR970007760B1 (ko) 클래스 독립 파서 및 다수의 클래스 종속 파서를 갖고 있는 모듈러 컴파일러
JP3361803B2 (ja) 指導動作可能計算システム
JPH08314760A (ja) プログラム開発支援装置
EP0481012A1 (en) Computer operations recorder and training system
US7137108B1 (en) Identifying non-externalized text strings that are not hard-coded
JP2004280476A (ja) プログラム開発装置、およびプログラム開発プログラム
CN118142166A (zh) 游戏事件处理方法、装置、电子设备和计算机存储介质
KFKI-MSZKI et al. Visual Programming
James et al. Microcomputers as protective interfaces in computing networks
JPH0778075A (ja) 対話式分散有限状態プログラム発生器を提供する方法及び装置
BIVAND CHAPTER THREE Scripting and toolbox approaches to spatial analysis in a GIS context
JPH0635687A (ja) 対話処理システム
JPH0635688A (ja) 対話処理システム

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees