JPH0273392A - 指導動作可能計算システム及び指導方法 - Google Patents
指導動作可能計算システム及び指導方法Info
- Publication number
- JPH0273392A JPH0273392A JP1195381A JP19538189A JPH0273392A JP H0273392 A JPH0273392 A JP H0273392A JP 1195381 A JP1195381 A JP 1195381A JP 19538189 A JP19538189 A JP 19538189A JP H0273392 A JPH0273392 A JP H0273392A
- Authority
- JP
- Japan
- Prior art keywords
- command
- application
- class
- agent
- processor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 35
- 230000009471 action Effects 0.000 claims abstract description 77
- 238000012549 training Methods 0.000 claims abstract description 7
- 239000003795 chemical substances by application Substances 0.000 description 89
- 230000001419 dependent effect Effects 0.000 description 67
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 241000244317 Tillandsia usneoides Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 102220295568 rs1554341697 Human genes 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/0053—Computers, 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)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrically Operated Instructional Devices (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の技術分野]
本発明はコンピュータ・ベース・トレーニング(CBT
)に関連するものであり、とりわけ、ユーザに指示を与
えるソフトウェア・エイジェントの利用に関するもので
ある。
)に関連するものであり、とりわけ、ユーザに指示を与
えるソフトウェア・エイジェントの利用に関するもので
ある。
[従来技術およびその問題点コ
CBTは、マニュアル、印刷された教材、及びその他の
伝統的な取扱説明資料を補足するが、あるいはこれらに
取って代わるため、さまざまな市販のアプリケーション
に用意されている。CBTは、対話形とすることが可能
であり、しばしば人間の指導者の役割をモデルとして、
トレーニング・セツションの間、ユーザの出来具合に応
答して、特定のフィードバックを行なうようになってい
る。
伝統的な取扱説明資料を補足するが、あるいはこれらに
取って代わるため、さまざまな市販のアプリケーション
に用意されている。CBTは、対話形とすることが可能
であり、しばしば人間の指導者の役割をモデルとして、
トレーニング・セツションの間、ユーザの出来具合に応
答して、特定のフィードバックを行なうようになってい
る。
−船釣には、CBTを実現するには2通りのやり方があ
る。“シミュレーションCBT”)場合、CBTプログ
ラムがアプリケーションをシミコレートする。“同時(
concurrent) CB T”では、CBTプロ
グラムと同時に、アプリケーションが実行される。
る。“シミュレーションCBT”)場合、CBTプログ
ラムがアプリケーションをシミコレートする。“同時(
concurrent) CB T”では、CBTプロ
グラムと同時に、アプリケーションが実行される。
アプリケーションが高度になり、グラフィックをより多
く利用するようになると、シミュレーションCBTの利
用はより困難になる。これは、アプリケーションが複雑
になると、一般に、アプリケーションをシミュレートす
るプログラムも必然的に複雑になるためである。
く利用するようになると、シミュレーションCBTの利
用はより困難になる。これは、アプリケーションが複雑
になると、一般に、アプリケーションをシミュレートす
るプログラムも必然的に複雑になるためである。
同時CBTの場合、アプリケーション自体によって、ト
レーニング・セツション時におけるそれ自体のインター
フェース及び機能性が得られるので、同時CBTはシミ
ュレーションCBTに比べ、しばしばはるかに単純なも
のとすることができる。
レーニング・セツション時におけるそれ自体のインター
フェース及び機能性が得られるので、同時CBTはシミ
ュレーションCBTに比べ、しばしばはるかに単純なも
のとすることができる。
同時CBTのセツションにおいて、CBTプログラムは
、一般にアプリケーションを開始させて、アプリケーシ
ョンのまわりの“シェル(shell)”としての働き
をする。
、一般にアプリケーションを開始させて、アプリケーシ
ョンのまわりの“シェル(shell)”としての働き
をする。
同時CBTのセツション時、CBTはアプリケーション
をオーブンして、制御し、アプリケーションを既知の所
望の状態にする。CBTは、それ自体のルーチンを利用
し、アプリケーションの上に描かれる“窓”を介して、
指導に関するテキストやグラフィックをユーザに伝える
。テキスト及びグラフィックは、アプリケーションの概
念及びユーザの応答を求めるプロンプトについて説明を
与える。CBTはユーザの入力をモニタしてユーザの応
答が適切であったか否かの判定を行い、また表示画面を
モニタして、アプリケーションが入力の処理を終了した
時点を判定する。この時、CBTは、ユーザの応答に基
づいてトレーニングを先へ進めることができる。
をオーブンして、制御し、アプリケーションを既知の所
望の状態にする。CBTは、それ自体のルーチンを利用
し、アプリケーションの上に描かれる“窓”を介して、
指導に関するテキストやグラフィックをユーザに伝える
。テキスト及びグラフィックは、アプリケーションの概
念及びユーザの応答を求めるプロンプトについて説明を
与える。CBTはユーザの入力をモニタしてユーザの応
答が適切であったか否かの判定を行い、また表示画面を
モニタして、アプリケーションが入力の処理を終了した
時点を判定する。この時、CBTは、ユーザの応答に基
づいてトレーニングを先へ進めることができる。
一般にCBTは構文レベル(symtactic 1e
vel)でアプリケーションの活動を制御しモニタする
。
vel)でアプリケーションの活動を制御しモニタする
。
この場合、“構文レベル”の意味するところは、アプリ
ケーションとの対話を行なうためにユーザが行なう、キ
ー・ストロークやマウスの移動といった動作つまりアク
ションである。例えば、構文レベルのCBTであって、
対象のアプリケーションがキーボード及びマウスによっ
て制御を受け、またCRTモニタ装置に対し出力する場
合ならば、CBTはCRT上のビクセルの状況に加えて
キー及びマウスによる人力の検出もできる。このレベル
では、コンピュータがアクションに関連した意図を意味
的に解釈しないので、この対話レベルは“構文的”であ
ると呼ばれる。これに対して、アクションの意図を考慮
した意味的レベルに対応したCBTについては、従来技
術では実現手法が与えられていなかった。
ケーションとの対話を行なうためにユーザが行なう、キ
ー・ストロークやマウスの移動といった動作つまりアク
ションである。例えば、構文レベルのCBTであって、
対象のアプリケーションがキーボード及びマウスによっ
て制御を受け、またCRTモニタ装置に対し出力する場
合ならば、CBTはCRT上のビクセルの状況に加えて
キー及びマウスによる人力の検出もできる。このレベル
では、コンピュータがアクションに関連した意図を意味
的に解釈しないので、この対話レベルは“構文的”であ
ると呼ばれる。これに対して、アクションの意図を考慮
した意味的レベルに対応したCBTについては、従来技
術では実現手法が与えられていなかった。
[発明の目的]
本発明は意味的レベルで対象のアプリケーションをモニ
タ、制御等することによってCBTを実現することを目
的とする。
タ、制御等することによってCBTを実現することを目
的とする。
[発明の概要]
本発明の望ましい実施例によれば、アプリケーション・
オブジェクト、コンピュータ・ベース・トレーニングの
指導オブジェクト (lN5TRLl[:Tl0Nオブ
ジェクト)、及びエージェント・エンジンを備えた計算
システムが提示される。lN5TRIIcTIONオブ
ジェクトは、アプリケーション・オブジェクトと同時に
実行される。アプリケーション・オブジェクトには、第
1のアクション・プロセッサと第1のコマンド・プロセ
ッサが含まれる。第1のアクション・プロセッサは、ユ
ーザがとる構文的アクションを表わしたメツセージを受
信して、構文的アクションに基づく意味的コマンド(s
emanticcommamnd)を発生ずる。ここで
構文的アクションが然々のキーを押したとか、マウス・
カーソルが然々の座標にあるときにマウスをクリックし
た等の、物理レベルの動作のことを言うのに対し、意味
的コマンドとは、1つあるいは一連の構文的アクション
が意味している事項、たとえば然々のコマンドを人力し
たとか、あるいは然々のオブジェクトを選択した等のこ
とを言う。第1のコマンド・プロセッサは、第1のアク
ション・プロセッサから意味的コマンドを受け取って、
この意味的コマンドを実行する。
オブジェクト、コンピュータ・ベース・トレーニングの
指導オブジェクト (lN5TRLl[:Tl0Nオブ
ジェクト)、及びエージェント・エンジンを備えた計算
システムが提示される。lN5TRIIcTIONオブ
ジェクトは、アプリケーション・オブジェクトと同時に
実行される。アプリケーション・オブジェクトには、第
1のアクション・プロセッサと第1のコマンド・プロセ
ッサが含まれる。第1のアクション・プロセッサは、ユ
ーザがとる構文的アクションを表わしたメツセージを受
信して、構文的アクションに基づく意味的コマンド(s
emanticcommamnd)を発生ずる。ここで
構文的アクションが然々のキーを押したとか、マウス・
カーソルが然々の座標にあるときにマウスをクリックし
た等の、物理レベルの動作のことを言うのに対し、意味
的コマンドとは、1つあるいは一連の構文的アクション
が意味している事項、たとえば然々のコマンドを人力し
たとか、あるいは然々のオブジェクトを選択した等のこ
とを言う。第1のコマンド・プロセッサは、第1のアク
ション・プロセッサから意味的コマンドを受け取って、
この意味的コマンドを実行する。
1NsTR[IcTl0Nオブジェクトは、構文的アク
ションによりユーザから入力を受け取り、モニタに情報
を表示する。この情報によって、ユーザに対して第1の
アプリケーションの操作の指導が行なわれる。lN5T
RIJcTIONオブジェクトには、望ましい実施例で
は、lN5TRUCTIONアクション・プロセッサと
1NsTR[IcTl0Nコマンド・プロセッサが含ま
れている。l N5TRUCT IONアクション・プ
ロセッサは、ユーザがとる構文的アクションを表わした
メツセージを受け取って、構文的アクションに基づく意
味的コマンドを発生ずる。lN5TR[ICTl0Nコ
マンド・プロセッサはlN5TRUCTIONアクショ
ン・プロセッサから意味的コマンドを受け取ってそれを
実行する。
ションによりユーザから入力を受け取り、モニタに情報
を表示する。この情報によって、ユーザに対して第1の
アプリケーションの操作の指導が行なわれる。lN5T
RIJcTIONオブジェクトには、望ましい実施例で
は、lN5TRUCTIONアクション・プロセッサと
1NsTR[IcTl0Nコマンド・プロセッサが含ま
れている。l N5TRUCT IONアクション・プ
ロセッサは、ユーザがとる構文的アクションを表わした
メツセージを受け取って、構文的アクションに基づく意
味的コマンドを発生ずる。lN5TR[ICTl0Nコ
マンド・プロセッサはlN5TRUCTIONアクショ
ン・プロセッサから意味的コマンドを受け取ってそれを
実行する。
エイジェントはタスク言語プログラムを実行し、どの情
報を表示すべきかについての指示をlN5TR−UCT
[ONオブジェクトに指示する意味的コマンドをlN5
TR1lCTIONオブジェクトに送る。エイジェント
はまた、アプリケーション・オブジェクト及びlN5T
R(ICTIONオブジェクトをモニタし、意味的コマ
ンドをその実行前にインターセプトする。
報を表示すべきかについての指示をlN5TR−UCT
[ONオブジェクトに指示する意味的コマンドをlN5
TR1lCTIONオブジェクトに送る。エイジェント
はまた、アプリケーション・オブジェクト及びlN5T
R(ICTIONオブジェクトをモニタし、意味的コマ
ンドをその実行前にインターセプトする。
[発明の実施例コ
第1図は本発明の望ましい実施例による計算システムの
ブロック図である。ユーザ111は、ソフトウェア環境
112を通して計算システムとの通信を行なう。ソフト
ウェア環境112は、例えば16011NB 36th
Way、 Redmond、 HA 98073−9
717. U、S、Aを会社所在地とするMicros
oft Corporationによって販売されてい
るMicrosoft Windowsとすることがで
きる。ソフトウェア環境112はアプリケーション10
0と対話を行なう。ユーザ・アクションを記述する情報
を含むメツセージがソフトウェア環境112によってア
プリケーション100に送られる。望ましい実施例の場
合、ユーザのアクションを含むメツセージは、Micr
osoft Ilindowsによつて送られる標章的
なメツセージである。アプリケーション100には、い
くつかの構文的ユーザ・アクションを単一の意味的コマ
ンドを変換するアクション・プロセッサ101が含まれ
ている。例えば、アクション・プロセッサ101は、ユ
ーザが用いるマウスのクリック及び移動といった、ユー
ザ・アクションの観測及び収集を行なう。ユーザ・アク
ションがコマンドの構文に適合すると、意味的コマンド
が生成される。いくつかのユーザ・アクションを用いて
単一の意味的コマンドを生成できるようにするにはいろ
いろな方法がある。ユーザがある意味的コマンドを生成
させるには多様なやり方があるが、その意味的コマンド
の実行は常に同じである。アクション・プロセッサ10
1は、ユーザーが特定の意味的コマンドを構成し得るさ
まざまなやり方を構文的に解釈することができる。構文
的ユーザ・アクションに加えて、アクション・プロセッ
サ101はまた、アプリケーション100に送られてく
るそれ以外のメツセージの処理も行なう。これらのメツ
セージのうちには、意味的コマンドを生じさせるものも
あれば、アクション・プロセッサ101ですっかり処理
されるものもある。
ブロック図である。ユーザ111は、ソフトウェア環境
112を通して計算システムとの通信を行なう。ソフト
ウェア環境112は、例えば16011NB 36th
Way、 Redmond、 HA 98073−9
717. U、S、Aを会社所在地とするMicros
oft Corporationによって販売されてい
るMicrosoft Windowsとすることがで
きる。ソフトウェア環境112はアプリケーション10
0と対話を行なう。ユーザ・アクションを記述する情報
を含むメツセージがソフトウェア環境112によってア
プリケーション100に送られる。望ましい実施例の場
合、ユーザのアクションを含むメツセージは、Micr
osoft Ilindowsによつて送られる標章的
なメツセージである。アプリケーション100には、い
くつかの構文的ユーザ・アクションを単一の意味的コマ
ンドを変換するアクション・プロセッサ101が含まれ
ている。例えば、アクション・プロセッサ101は、ユ
ーザが用いるマウスのクリック及び移動といった、ユー
ザ・アクションの観測及び収集を行なう。ユーザ・アク
ションがコマンドの構文に適合すると、意味的コマンド
が生成される。いくつかのユーザ・アクションを用いて
単一の意味的コマンドを生成できるようにするにはいろ
いろな方法がある。ユーザがある意味的コマンドを生成
させるには多様なやり方があるが、その意味的コマンド
の実行は常に同じである。アクション・プロセッサ10
1は、ユーザーが特定の意味的コマンドを構成し得るさ
まざまなやり方を構文的に解釈することができる。構文
的ユーザ・アクションに加えて、アクション・プロセッ
サ101はまた、アプリケーション100に送られてく
るそれ以外のメツセージの処理も行なう。これらのメツ
セージのうちには、意味的コマンドを生じさせるものも
あれば、アクション・プロセッサ101ですっかり処理
されるものもある。
アプリケーション100には意味的コマンドを実行する
コマンド・プロセッサ102も含まれている。
コマンド・プロセッサ102も含まれている。
コマンド・プロセッサ102は、内部フォーマットで表
わされている意味的コマンドを受け取り(内部フォーマ
ットについてはさらに詳しく後述する)、そのコマンド
を実行できない場合はエラーを送り返す。
わされている意味的コマンドを受け取り(内部フォーマ
ットについてはさらに詳しく後述する)、そのコマンド
を実行できない場合はエラーを送り返す。
アプリケーション100及びソフトウェア環境112は
、ソフトウェア環境112とアプリケーション100と
のインターフェースのレベルでヘルプ環境119との相
互作用を行なう。ヘルプ環境119には、ヘルプテキス
ト104を利用するヘルプ・アプリケーション103が
含まれている。ヘルプ環境119にはまた、ヘルプ・テ
キスト104の生成に用いられるヘルプ・ツール105
も含まれている。
、ソフトウェア環境112とアプリケーション100と
のインターフェースのレベルでヘルプ環境119との相
互作用を行なう。ヘルプ環境119には、ヘルプテキス
ト104を利用するヘルプ・アプリケーション103が
含まれている。ヘルプ環境119にはまた、ヘルプ・テ
キスト104の生成に用いられるヘルプ・ツール105
も含まれている。
ソフトウェア環境112はさらに、エイジェント環境1
18との相互作用も行なう。エイジェント環境118に
は、エイジェント・タスク107とエイジェント・エン
ジン108が含まれている。
18との相互作用も行なう。エイジェント環境118に
は、エイジェント・タスク107とエイジェント・エン
ジン108が含まれている。
エイジェント・エンジン10日は、5つの機能を果たす
ため、5つの異なる概念カテゴリでアプリケーション1
00との対話を行なう。エイジェント・エンジン108
は、質問(interrogation)のためデータ
・チャンネル113を介してアクション・プロセン勺と
の相互作用を行なう。エイジェント・エンジン108は
、アプリケーション100の活動をモニタするため、デ
ータ・チャネル114を介してアクション・プロセッサ
101との間、及びコマンド・プロセッサ102と間で
相互作用を行なう。エイジェント・エンジン108は、
アプリケーション100にコマンド実行をさせるため、
データ・チャネル115を介してコマンド・プロセッサ
102との、相互作用を行なう。エイジェント・エンジ
ン108は、アプリケーション100内でのコマンド処
理の際のエラーを取扱うため、データ・チャネル116
を介してコマンド・プロセッサ102との相互作用を行
なう。エイジェント・エンジン108は、アプリケーシ
ョン100の実行を記録し、またコマンド完了の通知を
受け取るため、データ・チャネル117を介してコマン
ド・プロセッサ102との相互作用を行なう。
ため、5つの異なる概念カテゴリでアプリケーション1
00との対話を行なう。エイジェント・エンジン108
は、質問(interrogation)のためデータ
・チャンネル113を介してアクション・プロセン勺と
の相互作用を行なう。エイジェント・エンジン108は
、アプリケーション100の活動をモニタするため、デ
ータ・チャネル114を介してアクション・プロセッサ
101との間、及びコマンド・プロセッサ102と間で
相互作用を行なう。エイジェント・エンジン108は、
アプリケーション100にコマンド実行をさせるため、
データ・チャネル115を介してコマンド・プロセッサ
102との、相互作用を行なう。エイジェント・エンジ
ン108は、アプリケーション100内でのコマンド処
理の際のエラーを取扱うため、データ・チャネル116
を介してコマンド・プロセッサ102との相互作用を行
なう。エイジェント・エンジン108は、アプリケーシ
ョン100の実行を記録し、またコマンド完了の通知を
受け取るため、データ・チャネル117を介してコマン
ド・プロセッサ102との相互作用を行なう。
望ましい実施例においては、コマンドは以下に示す通り
の形式で表現できる;(1)キーワード及びパラメータ
として記憶されている、タスク言語形式;(2)エイジ
ェント・エンジン108によって解釈される、付加ヘッ
ダを備えた外部形式による2進コードであるPコード形
式;(3)アプリケーション100によって理解され、
かつエイジェント・エンジン108とアプリケーション
100の間で取り交される2進データである外部形式;
(4)アプリケーション100内で実行される2進コマ
ンドとしての、内部形式。コマンドを表現するこの4つ
の形式については参考文献Aにおいてさらに説明されて
いる。
の形式で表現できる;(1)キーワード及びパラメータ
として記憶されている、タスク言語形式;(2)エイジ
ェント・エンジン108によって解釈される、付加ヘッ
ダを備えた外部形式による2進コードであるPコード形
式;(3)アプリケーション100によって理解され、
かつエイジェント・エンジン108とアプリケーション
100の間で取り交される2進データである外部形式;
(4)アプリケーション100内で実行される2進コマ
ンドとしての、内部形式。コマンドを表現するこの4つ
の形式については参考文献Aにおいてさらに説明されて
いる。
第2図には、エイジェント・システム全体がいかに働く
かについてのブロック図が示されている。
かについてのブロック図が示されている。
タスク5吾フアイル131はタスク言語を含むファイル
である。タスク言語は、アプリケーションの機能性を記
述する、テキスト形式のコマンドである。
である。タスク言語は、アプリケーションの機能性を記
述する、テキスト形式のコマンドである。
タスク言語は、クラス従属コマンドとクラス独立コマン
ドから構成される。クラス従属コマンドは、アプリケー
ションが実行すべきコマンドである。
ドから構成される。クラス従属コマンドは、アプリケー
ションが実行すべきコマンドである。
第2図には単一のアプリケーションであるアプリケーシ
ョン100が示されているだけであるが、エイジェント
・エンジン108は多数のアプリケーションと相互作用
してもよい。
ョン100が示されているだけであるが、エイジェント
・エンジン108は多数のアプリケーションと相互作用
してもよい。
本発明の望ましい実施例では、アプリケーションによっ
て操作すべきデータ・ファイルは、オブジェクトを利用
して参照される。各オブジェクトには、データ・ファイ
ルに対する参照とアプリケーションに対する参照が含ま
れている。同じアプリケーションを参照するオブジェク
トは、同じクラスのメンバであると呼ばれる。各アプリ
ケーションは参目異なるコマンド・セットを実行する。
て操作すべきデータ・ファイルは、オブジェクトを利用
して参照される。各オブジェクトには、データ・ファイ
ルに対する参照とアプリケーションに対する参照が含ま
れている。同じアプリケーションを参照するオブジェク
トは、同じクラスのメンバであると呼ばれる。各アプリ
ケーションは参目異なるコマンド・セットを実行する。
従って、クラス従属コマンドはアプリケーション毎に異
なる。
なる。
エイジェント・エンジン108はエイジェント・エンジ
ン108が理解できるコマンドであるクラス独立コマン
ドを実行する。クラス独立コマンドは、アプリケーショ
ンではなくエイジェント・エンジン108が実行する。
ン108が理解できるコマンドであるクラス独立コマン
ドを実行する。クラス独立コマンドは、アプリケーショ
ンではなくエイジェント・エンジン108が実行する。
タスク言語ファイル131は、Pコード・ファイル12
1の作成のため、クラス独立パーザ122によって用い
られる。Pコード・ファイル121の作成時、クラス独
立パーザ122はクラス従属パーザ123.124等を
呼出す。さらに後述するように、クラス従属パーザは、
Pコード形式にカプセル化されるクラス従属コマンドを
発生するパーザである。エイジェント・エンジン108
は、Pコート形式のコマンドからコマンドを外部形式で
抽出して、これらのコマンドを適切なアプリケーション
へ送る。Pコード内のクラス・フィールドは、どのアプ
リケーションがある特定のクラス従属コマンドを受信す
ることになっているかを指示されている。
1の作成のため、クラス独立パーザ122によって用い
られる。Pコード・ファイル121の作成時、クラス独
立パーザ122はクラス従属パーザ123.124等を
呼出す。さらに後述するように、クラス従属パーザは、
Pコード形式にカプセル化されるクラス従属コマンドを
発生するパーザである。エイジェント・エンジン108
は、Pコート形式のコマンドからコマンドを外部形式で
抽出して、これらのコマンドを適切なアプリケーション
へ送る。Pコード内のクラス・フィールドは、どのアプ
リケーションがある特定のクラス従属コマンドを受信す
ることになっているかを指示されている。
クラス独立パーザ122は、エイジェント・エンジン1
08で実行されるPコードを生成するパーザである。
08で実行されるPコードを生成するパーザである。
タスク言語ファイル131は、ユーザ111がエイジェ
ント・タスク・エディタ132を用いて作成することが
可能である。そのかわりに、タスク言語ファイルは、ク
ラス従属レコーダ126.127等を利用するクラス独
立レコーダ125を用いて作成することができる。一般
に、レコーダは、後で行なう再生(ρ1ayback)
に備えてアプリケーションのコマンドを記録する。計算
システムが記録モードの場合、エイジェント・タスク・
エディタ132は、エイジェント・エンジン108及び
アプリケーションがどんなアクションをとるかについて
詳述する、図示されているアプリケーション100のよ
うなアプリケーションからの人力を受け取る。アプリケ
ーションは、アプリケーション・プログラム・インター
フェイス(API)130を介して、エイジェント・タ
スク・エディタ132と通信する。エイジェント・タス
ク・エディタ132は、計算システムが記録モードの場
合にはクラス独立レコーダ125にデータを送り、エイ
ジェント・タスク・エディタがユーザ111によって使
用中の場合には、タスク言語ファイル131にデータを
送る。
ント・タスク・エディタ132を用いて作成することが
可能である。そのかわりに、タスク言語ファイルは、ク
ラス従属レコーダ126.127等を利用するクラス独
立レコーダ125を用いて作成することができる。一般
に、レコーダは、後で行なう再生(ρ1ayback)
に備えてアプリケーションのコマンドを記録する。計算
システムが記録モードの場合、エイジェント・タスク・
エディタ132は、エイジェント・エンジン108及び
アプリケーションがどんなアクションをとるかについて
詳述する、図示されているアプリケーション100のよ
うなアプリケーションからの人力を受け取る。アプリケ
ーションは、アプリケーション・プログラム・インター
フェイス(API)130を介して、エイジェント・タ
スク・エディタ132と通信する。エイジェント・タス
ク・エディタ132は、計算システムが記録モードの場
合にはクラス独立レコーダ125にデータを送り、エイ
ジェント・タスク・エディタがユーザ111によって使
用中の場合には、タスク言語ファイル131にデータを
送る。
クラス独立レコーダ125は、情報を受信してタスク言
語ファイルを構築する。エイジェント・タスク・エディ
タ132がアプリケーションのとるアクションに関する
情報を出し送っていることをクラス独立レコーダ125
が検出すると、クラス独立レコーダ125は当該アプリ
ケーションについてのクラス従属レコーダを呼び出す。
語ファイルを構築する。エイジェント・タスク・エディ
タ132がアプリケーションのとるアクションに関する
情報を出し送っていることをクラス独立レコーダ125
が検出すると、クラス独立レコーダ125は当該アプリ
ケーションについてのクラス従属レコーダを呼び出す。
するとこのクラス従属レコーダがそのアクションに関す
るタスク言語形式を生成する。クラス独立レコーダ12
5は、エイジェント・エンジン108が行なうアクショ
ンに関するタスク言語形式を生成する。
るタスク言語形式を生成する。クラス独立レコーダ12
5は、エイジェント・エンジン108が行なうアクショ
ンに関するタスク言語形式を生成する。
Pコード・ファイル121の実行時、エイジェント・エ
ンジン108が各Pコード・コマンドを読み出し、その
Pコード・コマンドが、エイジェント・エンジン108
が実行すべきクラス独立コマンドを含んでいるのか、そ
れともアプリケーションが実行すべきクラス従属コマン
ドを含んでいるか判定する。Pコード・コマンドがクラ
ス独立コマンドを含んでいる場合には、エイジェント・
エンジン108がそのコマンドを実行する。Pコード・
コマンドがクラス従属コマンドを含んでいる場合、エイ
ジェント・エンジン108は、そのコマンドを受け取る
べきアプリケーションを当該Pコード・コマンドにより
決める。エイジェント・エンジン108は次に、Pコー
ド内に埋め込まれた外部形式によるクラス従属コマンド
を抽出する。このクラス従属コマンドは次にアプリケー
ションに送られる。例えばクラス従属コマンドがアプリ
ケーション100に関するものであれば、そのクラス従
属コマンドはアプリケーション100に送られる。アプ
リケーション100内において、内部形式への翻訳プロ
セッサ128を用いて、外部形式で送られてきたクラス
従属コマンドをこのコマンドの内部形式1こ帛羽訳する
。
ンジン108が各Pコード・コマンドを読み出し、その
Pコード・コマンドが、エイジェント・エンジン108
が実行すべきクラス独立コマンドを含んでいるのか、そ
れともアプリケーションが実行すべきクラス従属コマン
ドを含んでいるか判定する。Pコード・コマンドがクラ
ス独立コマンドを含んでいる場合には、エイジェント・
エンジン108がそのコマンドを実行する。Pコード・
コマンドがクラス従属コマンドを含んでいる場合、エイ
ジェント・エンジン108は、そのコマンドを受け取る
べきアプリケーションを当該Pコード・コマンドにより
決める。エイジェント・エンジン108は次に、Pコー
ド内に埋め込まれた外部形式によるクラス従属コマンド
を抽出する。このクラス従属コマンドは次にアプリケー
ションに送られる。例えばクラス従属コマンドがアプリ
ケーション100に関するものであれば、そのクラス従
属コマンドはアプリケーション100に送られる。アプ
リケーション100内において、内部形式への翻訳プロ
セッサ128を用いて、外部形式で送られてきたクラス
従属コマンドをこのコマンドの内部形式1こ帛羽訳する
。
エイジェント・エンジン108とアプリケーション10
0との相互作用にはA P I 130が用いられる。
0との相互作用にはA P I 130が用いられる。
A P I 130はエイジェント・エンジン10B及
び他の機構にアクセスするための1組の関数及びメツセ
ージである。
び他の機構にアクセスするための1組の関数及びメツセ
ージである。
システムが記録モードの場合、内部形式への翻訳プロセ
ッサ128によって、エイジェント・エンジン108か
らのコマンドが翻訳され、第3図に示すコマンド・イン
ターフェース要素146を介してコマンド・プロセッサ
102に送られる。外部形式ヘノ翻訳プロセッサ129
が、コマンド・プロセッサ102によって実行された内
部形式のコマンドを受け取る。コマンドは第3図に示す
リターン・インターフェース要素147を介して受け取
られる。
ッサ128によって、エイジェント・エンジン108か
らのコマンドが翻訳され、第3図に示すコマンド・イン
ターフェース要素146を介してコマンド・プロセッサ
102に送られる。外部形式ヘノ翻訳プロセッサ129
が、コマンド・プロセッサ102によって実行された内
部形式のコマンドを受け取る。コマンドは第3図に示す
リターン・インターフェース要素147を介して受け取
られる。
外部形式への翻訳プロセッサ129は内部形式のコマン
ドを外部形式のコマンドに翻訳する。外部形式のコマン
ドはA P I 130を介してタスク・エディタ13
2に転送される。
ドを外部形式のコマンドに翻訳する。外部形式のコマン
ドはA P I 130を介してタスク・エディタ13
2に転送される。
第3図には、本発明の望ましい実施例におけるアプリケ
ーション100のアーキテクチャがより詳細に示されて
いる。アプリケーション100には、ソフトウェア環境
112と相互作用するユーザ・アクション・インターフ
ェース要素145及びアクション・プロセッサ101と
コマンド・プロセッサ102の両方と通信を行なうコマ
ンド・インターフェース要素146が含まれている。図
示のように、アクション・プロセッサ101とコマンド
・プロセッサ102の両方とも、アプリケーション・デ
ータ144にアクセスする。リターン・インターフェー
ス要素147はコマンド・プロセッサ102に応答して
制御をソフトウェア環境112に戻す。外部形式への翻
訳プロセッサ129はリターン・インターフェース要素
147と相互作用するように図示されている。
ーション100のアーキテクチャがより詳細に示されて
いる。アプリケーション100には、ソフトウェア環境
112と相互作用するユーザ・アクション・インターフ
ェース要素145及びアクション・プロセッサ101と
コマンド・プロセッサ102の両方と通信を行なうコマ
ンド・インターフェース要素146が含まれている。図
示のように、アクション・プロセッサ101とコマンド
・プロセッサ102の両方とも、アプリケーション・デ
ータ144にアクセスする。リターン・インターフェー
ス要素147はコマンド・プロセッサ102に応答して
制御をソフトウェア環境112に戻す。外部形式への翻
訳プロセッサ129はリターン・インターフェース要素
147と相互作用するように図示されている。
アプリケーション100が再生(playback)モ
ードまたは記録モードの場合は、リターン・インターフ
ェース要素147が呼び出されるだけである。これらの
モードについては、より詳細に後述する。リターン・イ
ンターフェース要素147は、アプリケーション100
によるコマンドの実行がすみ、アプリケーション100
は次のコマンドに対する準備ができていることを、エイ
ジェント・エンジン108に知らせる。
ードまたは記録モードの場合は、リターン・インターフ
ェース要素147が呼び出されるだけである。これらの
モードについては、より詳細に後述する。リターン・イ
ンターフェース要素147は、アプリケーション100
によるコマンドの実行がすみ、アプリケーション100
は次のコマンドに対する準備ができていることを、エイ
ジェント・エンジン108に知らせる。
アプリケーション100には、モード・ダイアローブ・
ボックス(modal dialog box) ・ブ
ロモ”7す148及びエラー・ダイアローブ・ボックス
要素149も含まれている。これらはいずれもソフトウ
ェア環境112と相互作用し、ユーザ111との通信を
行なうダイアローブ・ボックスの表示を制御する。
ボックス(modal dialog box) ・ブ
ロモ”7す148及びエラー・ダイアローブ・ボックス
要素149も含まれている。これらはいずれもソフトウ
ェア環境112と相互作用し、ユーザ111との通信を
行なうダイアローブ・ボックスの表示を制御する。
アプリケーションには一度に2つ以上のウィンドウで動
作することができるものもある。これを行なう場合、モ
ードレス・ユーザ・アクション・インターフェース要素
、モードレス・アクション・プロセッサ、及びモードレ
ス・コマンド・インターフェース要素が、アプリケーシ
ョンが動作する2つ以上のウィンドウの各々に付加され
る。例えばアプリケーション100については、モード
レス・ユーザ・アクション・インターフェース要素14
1、モードレス・アクション・プロセッサ142、及び
モードレス・コマンド・インターフェース要素143が
示されている。
作することができるものもある。これを行なう場合、モ
ードレス・ユーザ・アクション・インターフェース要素
、モードレス・アクション・プロセッサ、及びモードレ
ス・コマンド・インターフェース要素が、アプリケーシ
ョンが動作する2つ以上のウィンドウの各々に付加され
る。例えばアプリケーション100については、モード
レス・ユーザ・アクション・インターフェース要素14
1、モードレス・アクション・プロセッサ142、及び
モードレス・コマンド・インターフェース要素143が
示されている。
第4図には、アプリケーション100内におけるデータ
・フローが示されている。アプリケーション100への
メツセージは、ユーザ・アクション・インターフェース
要素145が受信する。例えば、ヘルプ・アプリケーシ
ョン103からのメツセージのようなある種のメツセー
ジについては、ユーザ・アクション・インターフェース
要素145は、アプリケーション100を即座にリター
ンさせる。それ以外の場合はミメッセージは再生メツセ
ージ・テスト要素150に送られる。
・フローが示されている。アプリケーション100への
メツセージは、ユーザ・アクション・インターフェース
要素145が受信する。例えば、ヘルプ・アプリケーシ
ョン103からのメツセージのようなある種のメツセー
ジについては、ユーザ・アクション・インターフェース
要素145は、アプリケーション100を即座にリター
ンさせる。それ以外の場合はミメッセージは再生メツセ
ージ・テスト要素150に送られる。
メツセージが、記録またはパージングによって作られた
コマンドの再生(playback)についてのもので
あれば、そのメツセージは内部形式への翻訳プロセッサ
128に送られ、メツセージ内のコマンドが外部形式か
ら内部形式に翻訳される。このコマンドは次にコマンド
・インターフェース要素146に送られる。
コマンドの再生(playback)についてのもので
あれば、そのメツセージは内部形式への翻訳プロセッサ
128に送られ、メツセージ内のコマンドが外部形式か
ら内部形式に翻訳される。このコマンドは次にコマンド
・インターフェース要素146に送られる。
メツセージが再生メツセージでなければ、そのメツセー
ジはアクションプロセッサに送られ、例えばそのメツセ
ージを発生させたユーザ・アクションを構文的に解釈す
る。意味的コマンドがアクション・プロセッサ101に
よって生成されず、また内部形式への翻訳プロセッサ1
28によって作られなければ、再生メツセージ・テスト
要素150はアプリケーション100をリターンさせる
。意味的コマンドが生成されれば、このコマンドはコマ
ンド・インターフェース要素146に送られる。
ジはアクションプロセッサに送られ、例えばそのメツセ
ージを発生させたユーザ・アクションを構文的に解釈す
る。意味的コマンドがアクション・プロセッサ101に
よって生成されず、また内部形式への翻訳プロセッサ1
28によって作られなければ、再生メツセージ・テスト
要素150はアプリケーション100をリターンさせる
。意味的コマンドが生成されれば、このコマンドはコマ
ンド・インターフェース要素146に送られる。
エイジェント・エンジン108がアプリケーション10
0によるコマンドの実行モニタしている場合、コマンド
・インターフェース要素146は受け取ったデータを外
部形式への翻訳プロセッサ129に送る。このプロセッ
サ129でコマンドが外部形式に翻訳されて、エイジェ
ント・エンジン108に転送される。コマンド・インタ
ーフェース要素はまた、モード・ダイアローブ・ボック
ス・テスト要素152にもデータを送る。
0によるコマンドの実行モニタしている場合、コマンド
・インターフェース要素146は受け取ったデータを外
部形式への翻訳プロセッサ129に送る。このプロセッ
サ129でコマンドが外部形式に翻訳されて、エイジェ
ント・エンジン108に転送される。コマンド・インタ
ーフェース要素はまた、モード・ダイアローブ・ボック
ス・テスト要素152にもデータを送る。
もし送られてきたデータにダイアローブ・ボックスへの
要求が含まれていれば、モード・ダイアローブ・ボック
ス・テスト要素152はそのデータをモード・ダイアロ
ーブ・ボックス・プロセッサ148に送り、処理される
ようにする。そのような要求が含まれていなければ、モ
ード・ダイアローブ・ボックス・テスト要素152はそ
のデータをコマンド・テスト要素151に送る。
要求が含まれていれば、モード・ダイアローブ・ボック
ス・テスト要素152はそのデータをモード・ダイアロ
ーブ・ボックス・プロセッサ148に送り、処理される
ようにする。そのような要求が含まれていなければ、モ
ード・ダイアローブ・ボックス・テスト要素152はそ
のデータをコマンド・テスト要素151に送る。
そのデータにコマンドが含まれている場合、コマンド・
テスト要素151はそのコマンドをコマンド・プロセッ
サ102に送って実行されるようにする。コマンド・テ
スト要素151はそのデータをリターン・インターフェ
ース要素147に送る。
テスト要素151はそのコマンドをコマンド・プロセッ
サ102に送って実行されるようにする。コマンド・テ
スト要素151はそのデータをリターン・インターフェ
ース要素147に送る。
エイジェント・エンジン10gがコマンドを記録中であ
れば、リターン・インターフェース要素はそのデータを
外部形式への翻訳プロセッサ129に送って外部書式に
翻訳してリターン・インターフェース要素147を介し
てエイジェント・エンジン108へ転送する。リターン
・インターフェース要素は次のメツセージを受診するま
での間のリターンを行なう。
れば、リターン・インターフェース要素はそのデータを
外部形式への翻訳プロセッサ129に送って外部書式に
翻訳してリターン・インターフェース要素147を介し
てエイジェント・エンジン108へ転送する。リターン
・インターフェース要素は次のメツセージを受診するま
での間のリターンを行なう。
第5図にはタスク言語コンパイラ12Q中のデータ・フ
ローが示されている。タスク言語コンパイラ120は、
ユーザが書き込んだタスク言語からPコード・ファイル
を生成するのに用いられる。タスク言語ファイル131
にはユーザが書き込んだコマンドが含まれる。
ローが示されている。タスク言語コンパイラ120は、
ユーザが書き込んだタスク言語からPコード・ファイル
を生成するのに用いられる。タスク言語ファイル131
にはユーザが書き込んだコマンドが含まれる。
タスク営ミ吾コンパイラ120は2バス・コンパイラで
ある。第1パスで使用されるルーチンとしては、人カス
) IJ−ム・プロセッサ164、式パーザ166、ク
ラス独立パーザ122、セーブ・ファイル・バッファ1
711 クラス従属パーザ1
23.167.168が図示されているところのクラス
従属パーザ等がある。第1パスの実行の結果、−時ファ
イル176が生成される。
ある。第1パスで使用されるルーチンとしては、人カス
) IJ−ム・プロセッサ164、式パーザ166、ク
ラス独立パーザ122、セーブ・ファイル・バッファ1
711 クラス従属パーザ1
23.167.168が図示されているところのクラス
従属パーザ等がある。第1パスの実行の結果、−時ファ
イル176が生成される。
クラス独立パーザ122はクラス独立タスク言l吾コマ
ンドのパージングを行なう。システムで実行される各ア
プリケーションは、そのアプリケーションが実行する特
別なコマンドも持っている。従って、各アプリケーショ
ン毎に別個のクラス従属パーザが開発される。このパー
ザは、その開発の目的のアプリケーションが実行すべき
コマンドをパージングできる。システムにアプリケーシ
ョンが付加されたりあるいはシステムがらアプリケーシ
ョンが削除される時には、タスク言語コンパイラ120
にクラス従属パーザを付加したりあるいはそこからクラ
ス従属パーザを削除したりすることができる。
ンドのパージングを行なう。システムで実行される各ア
プリケーションは、そのアプリケーションが実行する特
別なコマンドも持っている。従って、各アプリケーショ
ン毎に別個のクラス従属パーザが開発される。このパー
ザは、その開発の目的のアプリケーションが実行すべき
コマンドをパージングできる。システムにアプリケーシ
ョンが付加されたりあるいはシステムがらアプリケーシ
ョンが削除される時には、タスク言語コンパイラ120
にクラス従属パーザを付加したりあるいはそこからクラ
ス従属パーザを削除したりすることができる。
さらに、CBTパーザ125が図示されている(第8
図) 、 CB Tバーf125 ft、CBT(7)
実行時にエイジェント・エンジン108によって実行さ
れるべく生成されるコードをパージングするのに用いら
れる。
図) 、 CB Tバーf125 ft、CBT(7)
実行時にエイジェント・エンジン108によって実行さ
れるべく生成されるコードをパージングするのに用いら
れる。
コンパイラが開始されると、クラス独立パーザ122が
人力ストリーム・プロセッサ164にトークンを要求す
る。入力ストリーム・プロセッサ164はタスク言語フ
ァイル131を走査してトークンを作成する。クラス独
立パーザ122は、次にいくつかの事項のうちの1つを
行なう。クラス独立パーサ122はセーブ・ファイル・
バッファ171へ送るべきPコードを生成することがで
きる。クラス独立パーザ122が次のトークンとして式
を期待している場合、クラス独立パーザ122は式パー
ザ166を呼び出すルーチンMakeExpressi
on ()を呼び出す。式パーザ166は、式が完成す
るまで人力ストリーム・プロセッサ164にトークンを
要求し続ける。次に、式パーザ166はPコードを生成
してセーブ・ファイル・バッファ171に送る。これは
さらには−時ファイル176にセーブされる。これに加
えて、式パーザ166は式トークンを生成して人カスド
リーl、・プロセッサ164に戻す。人力ストリーム・
プロセッサ164は、独立パーザ122から要求される
と、この式を独立パーザ122に送り出す。
人力ストリーム・プロセッサ164にトークンを要求す
る。入力ストリーム・プロセッサ164はタスク言語フ
ァイル131を走査してトークンを作成する。クラス独
立パーザ122は、次にいくつかの事項のうちの1つを
行なう。クラス独立パーサ122はセーブ・ファイル・
バッファ171へ送るべきPコードを生成することがで
きる。クラス独立パーザ122が次のトークンとして式
を期待している場合、クラス独立パーザ122は式パー
ザ166を呼び出すルーチンMakeExpressi
on ()を呼び出す。式パーザ166は、式が完成す
るまで人力ストリーム・プロセッサ164にトークンを
要求し続ける。次に、式パーザ166はPコードを生成
してセーブ・ファイル・バッファ171に送る。これは
さらには−時ファイル176にセーブされる。これに加
えて、式パーザ166は式トークンを生成して人カスド
リーl、・プロセッサ164に戻す。人力ストリーム・
プロセッサ164は、独立パーザ122から要求される
と、この式を独立パーザ122に送り出す。
FOCUSコマンドの結果、特定のクラス従属パーザが
優先権を得る。従って、そのパージング・ループにおい
て、クラス独立スキャナ122aは現在フォーカスつま
り焦点が合っているアプリケーションに関するクラス従
属パーザを呼出す。このクラス従属パーザは、クラス従
属パーザが呼出す意味的ルーチンにより外部コマンド形
式に変換されるクラス従属コマンドを受け取るまで、あ
るいはこのクラス従属パーザが受け取った式をパージン
グできないと判断するまで、人カス) IJ−ム・プロ
セッサ164にトークンを要求し続けるクラス従属パー
ザが式に出会うと、MakeExpression(>
の呼出しを用いて式パーザ166を呼び出すことができ
る。クラス従属パーザが受け取ったトークンをパージン
グできない場合には、クラス従嘱パーザはエラーを戻し
、クラス独立パーザがそのトークンをパージングしよう
とする。
優先権を得る。従って、そのパージング・ループにおい
て、クラス独立スキャナ122aは現在フォーカスつま
り焦点が合っているアプリケーションに関するクラス従
属パーザを呼出す。このクラス従属パーザは、クラス従
属パーザが呼出す意味的ルーチンにより外部コマンド形
式に変換されるクラス従属コマンドを受け取るまで、あ
るいはこのクラス従属パーザが受け取った式をパージン
グできないと判断するまで、人カス) IJ−ム・プロ
セッサ164にトークンを要求し続けるクラス従属パー
ザが式に出会うと、MakeExpression(>
の呼出しを用いて式パーザ166を呼び出すことができ
る。クラス従属パーザが受け取ったトークンをパージン
グできない場合には、クラス従嘱パーザはエラーを戻し
、クラス独立パーザがそのトークンをパージングしよう
とする。
FOCUS OFFコマンドによって、全てのコマンド
がクラス従属パーザには送られずに、直接独立パーザ1
22でパージングされるようになる。クラス独立コマン
ドの系列をパージングを行なっている間では、これによ
って不必要な従属パーザ・ソフトウェアの実行を回避す
ることができ、従ってタスク言語のコンパイルに必要な
計算時間が節約される。
がクラス従属パーザには送られずに、直接独立パーザ1
22でパージングされるようになる。クラス独立コマン
ドの系列をパージングを行なっている間では、これによ
って不必要な従属パーザ・ソフトウェアの実行を回避す
ることができ、従ってタスク言語のコンパイルに必要な
計算時間が節約される。
CBTコンパイラ指示子(directive)によっ
てCBTコンパイラのフラグが“オン”または“オフ”
になる。CBTコンパイラ・フラグによって、コマンド
をパージングするためにCBTパーザ125を呼出して
よいかどうか定められる。パージングの優先順位につい
ては後述する。
てCBTコンパイラのフラグが“オン”または“オフ”
になる。CBTコンパイラ・フラグによって、コマンド
をパージングするためにCBTパーザ125を呼出して
よいかどうか定められる。パージングの優先順位につい
ては後述する。
コマンドは最初に、フォーカスの合っているクラス従属
パーザに送られる。フォーカスの合っているクラス従属
パーザがなければ、あるいはフォーカスの合っているク
ラス従属パーザがそのコマンドをパージングできなけれ
ば、そのコマンドは、CBTコンパイラ・フラグが“オ
ン”の場合CBTパーザ125に送られてパージングさ
れる。CBTコンパイラ・フラグが“オフ”の場合、あ
るいはCBTパーザ125がそのコマンドをパージング
できない場合には、そのコマンドはクラス独立パーザ1
22によってパージングされる。
パーザに送られる。フォーカスの合っているクラス従属
パーザがなければ、あるいはフォーカスの合っているク
ラス従属パーザがそのコマンドをパージングできなけれ
ば、そのコマンドは、CBTコンパイラ・フラグが“オ
ン”の場合CBTパーザ125に送られてパージングさ
れる。CBTコンパイラ・フラグが“オフ”の場合、あ
るいはCBTパーザ125がそのコマンドをパージング
できない場合には、そのコマンドはクラス独立パーザ1
22によってパージングされる。
第6図には、lN5TR11[:Tl0Nオブジェクト
を実行できるコンピュータ18が示されている。また、
モニタ14、マウス20、及びキーボード19も示され
ている。第7図には、ボタン27.28を備えたマウス
20が示されている。
を実行できるコンピュータ18が示されている。また、
モニタ14、マウス20、及びキーボード19も示され
ている。第7図には、ボタン27.28を備えたマウス
20が示されている。
第8図には、独立パーザ122と、従属パーザ123.
124として図示されている従属パーザとの間における
データ・フローが示されている。パーザ間の関係につい
ての説明に焦点を集中するため、第8図に関する説明に
おいてはスキャナ122aが式パーザ166を呼出すこ
とについては考慮に入れない。
124として図示されている従属パーザとの間における
データ・フローが示されている。パーザ間の関係につい
ての説明に焦点を集中するため、第8図に関する説明に
おいてはスキャナ122aが式パーザ166を呼出すこ
とについては考慮に入れない。
また、CBTパーザ125及びCBTパーザ125のた
めの従属スキャナ125aも図示されている。
めの従属スキャナ125aも図示されている。
CBTフラグが“オン”になると、コマンドをノマージ
ングする優先順位は、上述のように、フォーカスの合っ
ているクラス従属パーザ、次にCBTパーザ、最後にク
ラス独立パーザ122ということになる。以下の説明で
は、説明を簡単にするためCBTフラグはオフであると
仮定する。
ングする優先順位は、上述のように、フォーカスの合っ
ているクラス従属パーザ、次にCBTパーザ、最後にク
ラス独立パーザ122ということになる。以下の説明で
は、説明を簡単にするためCBTフラグはオフであると
仮定する。
クラス独立パーザ122がトークンに対して準備が整う
と、独立パーザ122はスキャナ・ルーチンつまりクラ
ス独立スキャナ122aを呼出す。クラス独立スキャナ
122aは、あるアプリケーションにフォーカスが合わ
せられているかどうかチエツクする。アプリケーション
にフォーカスが合わせられていなければ、クラス独立ス
キャナ112aは、人力ストリーム・プロセッサ164
を呼出し、入力ストリーム・プロセッサ164は、トー
クンをクラス独立スキャナ122aに戻す。クラス独立
スキャナ112aはそのトークンをクラス独立パーザ1
22に戻す。
と、独立パーザ122はスキャナ・ルーチンつまりクラ
ス独立スキャナ122aを呼出す。クラス独立スキャナ
122aは、あるアプリケーションにフォーカスが合わ
せられているかどうかチエツクする。アプリケーション
にフォーカスが合わせられていなければ、クラス独立ス
キャナ112aは、人力ストリーム・プロセッサ164
を呼出し、入力ストリーム・プロセッサ164は、トー
クンをクラス独立スキャナ122aに戻す。クラス独立
スキャナ112aはそのトークンをクラス独立パーザ1
22に戻す。
あるアプリケーションにフォーカスが合っていれば、そ
のアプリケーションに関するクラス従属パーザに優先権
があり、呼出される。例えば、クラス従属パーザ123
に関するアプリケーションにフォーカスが合わせられて
いれば、クラス従属パーザ123がクラス従属スキャナ
123aを介してクラス独立スキャナ112aを呼び出
す。スキャナ122aは自分の状態をチエツクして、自
分がある従属パーザから呼出されていることを判定する
ので、別のクラス従属パーザを再帰的に呼出すことはし
ない。クラス独立スキャナ122aは人力ストリーム・
プロセッサ164を呼び出し、入力ストリーム・プロセ
ッサ164はクラス独立スキャナ122 aにトークン
を戻す。クラス独立スキャナ122aはクラス従属スキ
ャナ123aを介してクラス従属パーザ123にトーク
ンを戻す。本実施例にはクラス従属スキャナ123 a
が含まれているが、他の実施例ではクラス従属スキャナ
123aをなくしてクラス従属パーザ123が直接にク
ラス独立スキャナ122aを呼び出してもよい。
のアプリケーションに関するクラス従属パーザに優先権
があり、呼出される。例えば、クラス従属パーザ123
に関するアプリケーションにフォーカスが合わせられて
いれば、クラス従属パーザ123がクラス従属スキャナ
123aを介してクラス独立スキャナ112aを呼び出
す。スキャナ122aは自分の状態をチエツクして、自
分がある従属パーザから呼出されていることを判定する
ので、別のクラス従属パーザを再帰的に呼出すことはし
ない。クラス独立スキャナ122aは人力ストリーム・
プロセッサ164を呼び出し、入力ストリーム・プロセ
ッサ164はクラス独立スキャナ122 aにトークン
を戻す。クラス独立スキャナ122aはクラス従属スキ
ャナ123aを介してクラス従属パーザ123にトーク
ンを戻す。本実施例にはクラス従属スキャナ123 a
が含まれているが、他の実施例ではクラス従属スキャナ
123aをなくしてクラス従属パーザ123が直接にク
ラス独立スキャナ122aを呼び出してもよい。
クラス従属パーザ123が受け取ったトークンをパージ
ングできる限り、クラス従属パーザ123はクラス従属
スキャナ123aをを介してトークンを要求し続ける。
ングできる限り、クラス従属パーザ123はクラス従属
スキャナ123aをを介してトークンを要求し続ける。
これらのトークンを用いて、クラス従属パーザはPコー
ド中に埋め込まれたクラス従属外部コマンドを生成する
意味的ルーチンを呼出す。クラス従属パーザ123が受
け取ったトークンをパージングできない場合、クラス従
属パーザはクラス独立スキャナ122 aにエラーを戻
す。このときにはクラス独立スキャナ122aは入力ス
トリーム・プロセッサ164を呼び出して、クラス従属
パーザ123がパージングできなかったトークンを人力
スト・リーム・プロセッサ164から受け取る。
ド中に埋め込まれたクラス従属外部コマンドを生成する
意味的ルーチンを呼出す。クラス従属パーザ123が受
け取ったトークンをパージングできない場合、クラス従
属パーザはクラス独立スキャナ122 aにエラーを戻
す。このときにはクラス独立スキャナ122aは入力ス
トリーム・プロセッサ164を呼び出して、クラス従属
パーザ123がパージングできなかったトークンを人力
スト・リーム・プロセッサ164から受け取る。
このトークンはクラス独立パーザ122に戻される。
クラス独立パーザ122はそのトークンをパージングし
、意味的ルーチンを呼び出して、エイジェント・エンジ
ン108による実行のためのPコードを生成する。次回
に、クラス独立パーザ122がクラス独立スキャナ12
2aにトークンを要求すると、FDCIIS OFFコ
マンドが出されるまで、あるいは別のアプリケーション
にフォーカスが合わせられるまで、クラス独立スキャナ
122 aは再びクラス従属パーザ123を呼び出す。
、意味的ルーチンを呼び出して、エイジェント・エンジ
ン108による実行のためのPコードを生成する。次回
に、クラス独立パーザ122がクラス独立スキャナ12
2aにトークンを要求すると、FDCIIS OFFコ
マンドが出されるまで、あるいは別のアプリケーション
にフォーカスが合わせられるまで、クラス独立スキャナ
122 aは再びクラス従属パーザ123を呼び出す。
クラス従属パーザ124に関するアプリケーションにフ
ォーカスが合わせられているときには、クラス独立スキ
ャナ122aはクラス従属パーザ124を呼出すクラス
従属パーザ124はクラス従属スキャナ124aを呼び
出し、従属パーザ123と同様に動作する。
ォーカスが合わせられているときには、クラス独立スキ
ャナ122aはクラス従属パーザ124を呼出すクラス
従属パーザ124はクラス従属スキャナ124aを呼び
出し、従属パーザ123と同様に動作する。
第5図に示すセーブ・ファイル・バッファ171はクラ
ス独立パーザ122及び式パーザ166からPコードを
受け取り、またクラス従属パーザからPコード中に埋め
込まれた外部コマンド形式を受け取る。セーブ・ファイ
ル・バッファ171はこの情報を一時フアイル176に
記憶する。第2パス・ルーチン群174は一時フアイル
176に記憶されたPコード及び外部コマンド形式を受
け取り、Pコードファイル121を生成するため、アド
レスを決定するといったようなハウスキーピングを行な
う。
ス独立パーザ122及び式パーザ166からPコードを
受け取り、またクラス従属パーザからPコード中に埋め
込まれた外部コマンド形式を受け取る。セーブ・ファイ
ル・バッファ171はこの情報を一時フアイル176に
記憶する。第2パス・ルーチン群174は一時フアイル
176に記憶されたPコード及び外部コマンド形式を受
け取り、Pコードファイル121を生成するため、アド
レスを決定するといったようなハウスキーピングを行な
う。
第9図中では、アプリケーション100は例えばオブジ
ェクト“NewWave 0ffice”に含まれると
して図示しである。ウィンドウ300はオブジェクトN
ewWave 0ffice”のだめのユーザ・インタ
ーフェースである。オブジェクト″NewWave 0
ffice’の使用法についてユーザに指導するための
指導用のアプリケーションであるlN5TRUCTIO
Nアプリケーション200がアプリケーション100と
同時に実行さレル。lN5TRUcTION ”rブ’
J’r−ショ:/2001tINSTl?fJCTrO
Nオブジェクト内に含まれている。lN5TR[ICT
l0Nアプリケーション200はこのシステム上の他の
アプリケーションと同様の設計がなされている。図示す
るように、lN5TRIICTIONアプリケーション
200にはアクション・プロセッサ201とコマンド・
プロセッサ202が含まれている。
ェクト“NewWave 0ffice”に含まれると
して図示しである。ウィンドウ300はオブジェクトN
ewWave 0ffice”のだめのユーザ・インタ
ーフェースである。オブジェクト″NewWave 0
ffice’の使用法についてユーザに指導するための
指導用のアプリケーションであるlN5TRUCTIO
Nアプリケーション200がアプリケーション100と
同時に実行さレル。lN5TRUcTION ”rブ’
J’r−ショ:/2001tINSTl?fJCTrO
Nオブジェクト内に含まれている。lN5TR[ICT
l0Nアプリケーション200はこのシステム上の他の
アプリケーションと同様の設計がなされている。図示す
るように、lN5TRIICTIONアプリケーション
200にはアクション・プロセッサ201とコマンド・
プロセッサ202が含まれている。
エイジェント・エンジン108は、システム上の他のア
プリケーションの場合と同様、lN5TRUC−TIO
Nアプリケーション200と相互作用する。例えば、エ
イジェント・エンジン108は、質問のため、データ・
チャネル213を介してアクション・プロセッサ201
との相互作用を行なう。エイジェント・エンシフ 10
g ハlN5TRIJCTION 7 フリ’r−シB
:/200の活動をモニタするため、データ・チャネ
ル214を介してアクション・プロセンサ201及びコ
マンド・プロセッサ202との相互作用を行なう。エイ
ジェント・エンジン108は、コマンドがlN5TR[
ICTl0Nアプリケーション200によって実行され
るようにするため、データ・チャネル215を介してコ
マンド・プロセッサ202との相互作用を行なう。
プリケーションの場合と同様、lN5TRUC−TIO
Nアプリケーション200と相互作用する。例えば、エ
イジェント・エンジン108は、質問のため、データ・
チャネル213を介してアクション・プロセッサ201
との相互作用を行なう。エイジェント・エンシフ 10
g ハlN5TRIJCTION 7 フリ’r−シB
:/200の活動をモニタするため、データ・チャネ
ル214を介してアクション・プロセンサ201及びコ
マンド・プロセッサ202との相互作用を行なう。エイ
ジェント・エンジン108は、コマンドがlN5TR[
ICTl0Nアプリケーション200によって実行され
るようにするため、データ・チャネル215を介してコ
マンド・プロセッサ202との相互作用を行なう。
エイジェント・エンジン108は、lN5TRLIcT
IONアプリケーション200内でのコマンドの処理に
おけるエラーを取扱うため、データチャネル216を介
してコマンド・プロセッサ202との相互作用を行なう
。エイジェント・エンジン108は、lN5TRIIC
−TIONアプリケーション200の実行を記録し、ま
たコマンド完了の通知を受け取るため、データ・チャネ
ル217を介してコマンド・プロセッサ202との相互
作用を行なう。
IONアプリケーション200内でのコマンドの処理に
おけるエラーを取扱うため、データチャネル216を介
してコマンド・プロセッサ202との相互作用を行なう
。エイジェント・エンジン108は、lN5TRIIC
−TIONアプリケーション200の実行を記録し、ま
たコマンド完了の通知を受け取るため、データ・チャネ
ル217を介してコマンド・プロセッサ202との相互
作用を行なう。
lN5TRtlCTION 77’ !I ’r −シ
ョア 200 ハ、例えばウィンドウ302のようなダ
イアローブ・ボックス6日を表示する等によって、アプ
リケーション100の実行と同時に、ユーザとの対話を
行なう。lN5TRUCTIO1tアプリケーション2
00はまた、音声のような他の手段を用いて交信しても
よい。
ョア 200 ハ、例えばウィンドウ302のようなダ
イアローブ・ボックス6日を表示する等によって、アプ
リケーション100の実行と同時に、ユーザとの対話を
行なう。lN5TRUCTIO1tアプリケーション2
00はまた、音声のような他の手段を用いて交信しても
よい。
第10図〜第17図にはCBTセツションが簡潔に示さ
れている。このセツションでは、ユーザは、第1O図に
示すアイコン301によって表わされるフォルダFre
d”を開く方法について指導を受ける。
れている。このセツションでは、ユーザは、第1O図に
示すアイコン301によって表わされるフォルダFre
d”を開く方法について指導を受ける。
また、第10図にはエイジェント・エンジン108をパ
イルしてPコードで表したものを含むオブジェクト“L
esson Ta5k″°(授業タスク)を表わしてい
る。タスク言語ファイルをコンパイルしてPコードにし
たものは、エイジェント・エンジン108によって実行
される。オブジェクトLesson Ta5kをコンパ
イル前にオープンすると、Pコード版のタスク言語ファ
イルのソース・コードを編集できる。
イルしてPコードで表したものを含むオブジェクト“L
esson Ta5k″°(授業タスク)を表わしてい
る。タスク言語ファイルをコンパイルしてPコードにし
たものは、エイジェント・エンジン108によって実行
される。オブジェクトLesson Ta5kをコンパ
イル前にオープンすると、Pコード版のタスク言語ファ
イルのソース・コードを編集できる。
アイコン305は“Lesson In5tructi
on”(授業指導)と呼ばれるオブジェクトを表してい
る。このオブジェクトは会話データと呼ばれるデータ、
及びユーザにこのデータを表示するライブラリ・ルーチ
ンを備えたlN5TRIJCTrON7ブリケーシヨン
200を含んでいる。オブジェクト’Lesson I
n5truction”は、エイジェント・エンジン1
08に命令されると、このデータを表示する。マウス2
0によって制御されるカーソル303がアイコン309
を指示しているように図示されている。
on”(授業指導)と呼ばれるオブジェクトを表してい
る。このオブジェクトは会話データと呼ばれるデータ、
及びユーザにこのデータを表示するライブラリ・ルーチ
ンを備えたlN5TRIJCTrON7ブリケーシヨン
200を含んでいる。オブジェクト’Lesson I
n5truction”は、エイジェント・エンジン1
08に命令されると、このデータを表示する。マウス2
0によって制御されるカーソル303がアイコン309
を指示しているように図示されている。
カーソル303をアイコン309上に位置決めすること
により、ユーザはボタン27を押し込むことによってオ
ブジェクト“しesson Ta5k″“を選択するこ
とができる。この時点で、第11図に示すように、アイ
コン309が強調表示される。アイコン309のシャド
ー307はカーソル303に従って動くようになる。シ
ャドー307をアイコン305の上に位置決めしてボタ
ン27を離すとアイコン309は第12図に示すように
ウィンドウ300から消え、エイジェントエンジン10
8が、オブジェクト“しesson Ta5k”に含ま
れているタスク言語プログラムの実行を開始する。Le
sson Ta5kに含まれているタスク言諺プログラ
ムのソースの一例を下記の表1に示す。
により、ユーザはボタン27を押し込むことによってオ
ブジェクト“しesson Ta5k″“を選択するこ
とができる。この時点で、第11図に示すように、アイ
コン309が強調表示される。アイコン309のシャド
ー307はカーソル303に従って動くようになる。シ
ャドー307をアイコン305の上に位置決めしてボタ
ン27を離すとアイコン309は第12図に示すように
ウィンドウ300から消え、エイジェントエンジン10
8が、オブジェクト“しesson Ta5k”に含ま
れているタスク言語プログラムの実行を開始する。Le
sson Ta5kに含まれているタスク言諺プログラ
ムのソースの一例を下記の表1に示す。
表
■
ask
cbt on
DPI!N# =1
SBLIICT#= 211
focus on office NewWav
e 0fficeselect 1nStruc
tion “Lesqon In5trucion
Oρen focus on 1nstruction ”
Lesson Instructionshow
window 1 on command do process
buttonbutton flag# = 0
set command on while button flag# =
Oaft endwhile set command off hide window 1 show window 2 on command do process
openopen flag# = 0 set command On while open rlag# = Oa
lt 0ρen rlaglt = 1 gnore 1se class# = sys commandpa
rm(1,0>title# =Sys comm
andparm(1,Ien(class#))exe
cute 1se if cmd$ = 0PEN# and
class# = ’FDLD[!R” and
title# = ”Fred″ open fl:ig# = 1 execute elc+e nore ndif ndif ndif endproc procedure dem。
e 0fficeselect 1nStruc
tion “Lesqon In5trucion
Oρen focus on 1nstruction ”
Lesson Instructionshow
window 1 on command do process
buttonbutton flag# = 0
set command on while button flag# =
Oaft endwhile set command off hide window 1 show window 2 on command do process
openopen flag# = 0 set command On while open rlag# = Oa
lt 0ρen rlaglt = 1 gnore 1se class# = sys commandpa
rm(1,0>title# =Sys comm
andparm(1,Ien(class#))exe
cute 1se if cmd$ = 0PEN# and
class# = ’FDLD[!R” and
title# = ”Fred″ open fl:ig# = 1 execute elc+e nore ndif ndif ndif endproc procedure dem。
focusonoffice”NewWaveOffi
ceendwh+1e set co+nmand offhide w
indow 2 show window 3 on command do process
buttonbutton flag# = 0
set command on while button flag# =
Oaft endwhile set command off hide window 3 end task procedure process butto
nif sys cmdclass()= ”l
N5TRUCTION″button flag#
:1 ndif IgllOre endproc procedure process open
if sys cmdclasS()=do d
em。
ceendwh+1e set co+nmand offhide w
indow 2 show window 3 on command do process
buttonbutton flag# = 0
set command on while button flag# =
Oaft endwhile set command off hide window 3 end task procedure process butto
nif sys cmdclass()= ”l
N5TRUCTION″button flag#
:1 ndif IgllOre endproc procedure process open
if sys cmdclasS()=do d
em。
lN5TRUCTION”
point to center (objec
tdouble click 1eft bu
ttonρause 5 endproc 18g 0on) 表1のタスク言語は、クラス独立パーザ122、オブジ
ェクト“NewWave 0ffice”についてのク
ラス従属パーザ、オブジェクト“しesson In5
truction″についてのクラス従属パーザ、及び
CBTパーザ125を用いて、タスク言語コンパイラ1
20によってコンパイルされる。例えば、5行目の“f
ocus”コマンドは、クラス独立パーザ122によっ
てパージングされ、6行目のl5e1ect1nsLr
uction” :lマントはオブジェクト”NewW
ave 0ffic。
tdouble click 1eft bu
ttonρause 5 endproc 18g 0on) 表1のタスク言語は、クラス独立パーザ122、オブジ
ェクト“NewWave 0ffice”についてのク
ラス従属パーザ、オブジェクト“しesson In5
truction″についてのクラス従属パーザ、及び
CBTパーザ125を用いて、タスク言語コンパイラ1
20によってコンパイルされる。例えば、5行目の“f
ocus”コマンドは、クラス独立パーザ122によっ
てパージングされ、6行目のl5e1ect1nsLr
uction” :lマントはオブジェクト”NewW
ave 0ffic。
についてのクラス従属パーザによってパージングされ、
9行目のshow window″コマンドはオブジ
ェクト“Lesson In5truction″につ
いてのクラス従属パーザによってパージングされ、71
行目の’point to center”コマンドは
CBTパーザ125によってパージングされる。
9行目のshow window″コマンドはオブジ
ェクト“Lesson In5truction″につ
いてのクラス従属パーザによってパージングされ、71
行目の’point to center”コマンドは
CBTパーザ125によってパージングされる。
全てのタスク言語プログラムの先頭の行には命令“ta
sk″が含まれるので、表1のコードの1行目にも語“
task”が入っている。同様に、表1のコードの36
行目には、タスク・プログラムの最後の命令であること
を示す“end task”′という語が人っている。
sk″が含まれるので、表1のコードの1行目にも語“
task”が入っている。同様に、表1のコードの36
行目には、タスク・プログラムの最後の命令であること
を示す“end task”′という語が人っている。
表1の2行目の命令によってCBTコンパイラのフラグ
が“On”になる。3行目と4行目の命令によって、変
数がセットされる。5行目の命令によって、オブジェク
ト“NewWave 0ffice″にフォーカスが合
わせられる。6行目と7行目の命令はエイジェント・エ
ンジン108からオブジェクト”NewWave 0f
fice”に送られる。これらの命令が、オブジェクト
“NewWave 0ffice”で実行されると、オ
ブジェクト”Lesson In5truction”
が選択され、オープンにされる。オブジェクト”Les
son In5truction”がオープンされると
lN5TRIICTIONアプリケーション200が実
行されるo”Lesson In5truct+on指
導が選択されたことは、アイコン305を第13図に示
すように強調表示することによって示す。
が“On”になる。3行目と4行目の命令によって、変
数がセットされる。5行目の命令によって、オブジェク
ト“NewWave 0ffice″にフォーカスが合
わせられる。6行目と7行目の命令はエイジェント・エ
ンジン108からオブジェクト”NewWave 0f
fice”に送られる。これらの命令が、オブジェクト
“NewWave 0ffice”で実行されると、オ
ブジェクト”Lesson In5truction”
が選択され、オープンにされる。オブジェクト”Les
son In5truction”がオープンされると
lN5TRIICTIONアプリケーション200が実
行されるo”Lesson In5truct+on指
導が選択されたことは、アイコン305を第13図に示
すように強調表示することによって示す。
8行目の命令によって、オブジェクト’LessonI
nstruction″′にフォーカスが合わせられる
。9行目の命令はエイジェント・エンジン108によっ
て実行されると、エイジェント・エンジン108によっ
てオブジェクト’Lesson In5tructio
n”に送られる。オブジェクト°’Lesson In
5truction″′によって実行されると、その命
令によって第14図に示すようにウィンドウ300の上
にウィンドウ302が開かれる。ウィンドウ302はオ
ブジェクトをオープンする方法についてユーザに指導す
る。ユーザはウィンドウ302を読み終えたらマウス2
0を用いてカーソル303をボタン308の上に位置決
めし、ボタン27をクリックする。従って、基本的に、
エイジェント・エンジン10gは“Continue”
とラベル表示されたボタン308がユーザによって選択
されるのを待つ。エイジェント・エンジン108は、他
の全てのコマンドが無視されるようにする。この処置を
可能とするため、エイジェント・エンジン108は、他
の動作中のオブジェクトによって実行されているアプリ
ケーションもモニタし、コマンドが実行される前にそれ
をインターセプトする。
nstruction″′にフォーカスが合わせられる
。9行目の命令はエイジェント・エンジン108によっ
て実行されると、エイジェント・エンジン108によっ
てオブジェクト’Lesson In5tructio
n”に送られる。オブジェクト°’Lesson In
5truction″′によって実行されると、その命
令によって第14図に示すようにウィンドウ300の上
にウィンドウ302が開かれる。ウィンドウ302はオ
ブジェクトをオープンする方法についてユーザに指導す
る。ユーザはウィンドウ302を読み終えたらマウス2
0を用いてカーソル303をボタン308の上に位置決
めし、ボタン27をクリックする。従って、基本的に、
エイジェント・エンジン10gは“Continue”
とラベル表示されたボタン308がユーザによって選択
されるのを待つ。エイジェント・エンジン108は、他
の全てのコマンドが無視されるようにする。この処置を
可能とするため、エイジェント・エンジン108は、他
の動作中のオブジェクトによって実行されているアプリ
ケーションもモニタし、コマンドが実行される前にそれ
をインターセプトする。
これに必要とされるコードについては後述する。
10行目〜14行目の命令は、ユーザがウィンドー30
2を読んでいる間にエイジェント・エンジン108によ
って実行される。10行目の命令はモニタ手続を定義す
る。11行目において、変数’button fl−
ag#’”をゼロにクリアする。12行目において、命
令” set command on”によってモニタ
動作がオンになる。モニタ動作がオンにされると、ユー
ザが何かコマンド実行したとき手続”process
button”が実行される。これは、例えばアプリ
ケーション100のアクション・プロセッサ101とコ
マンド・プロセッサ102間におけるデータ経路114
のような、あるアプリケーションのアクション・プロセ
ッサとコマンド・プロセッサ間のデータ経路に沿って送
られるコマンドに対応する。これはコマンド・ラップと
呼ばれる。エイジェント・エンジン108はNewWa
ve 0ffice’アプリケーション100とlN5
TRIICTIONアプリケーション200をモニタで
きるので、コマンド・トラップを生じさせることが可能
になる。エイジェント・エンジン108がコマンド・ト
ラップを起すと、アクション・プロセッサ101からコ
マンド・プロセッサ102に送られるコマンドとアクシ
ョン・プロセッサ201からコマンド・プロセッサ20
2に送られるコマンドは、エイジェント・エンジン10
8によってインターセプトされる。こうして、オブジェ
クト“NewWaveOffice”と”Lesson
1’は両方ともエイジェント・エンジン108によっ
てモニタされる。両オブジェクトからの意味的コマンド
は実行前にインターセプトされて、コマンド・ラップが
起る。
2を読んでいる間にエイジェント・エンジン108によ
って実行される。10行目の命令はモニタ手続を定義す
る。11行目において、変数’button fl−
ag#’”をゼロにクリアする。12行目において、命
令” set command on”によってモニタ
動作がオンになる。モニタ動作がオンにされると、ユー
ザが何かコマンド実行したとき手続”process
button”が実行される。これは、例えばアプリ
ケーション100のアクション・プロセッサ101とコ
マンド・プロセッサ102間におけるデータ経路114
のような、あるアプリケーションのアクション・プロセ
ッサとコマンド・プロセッサ間のデータ経路に沿って送
られるコマンドに対応する。これはコマンド・ラップと
呼ばれる。エイジェント・エンジン108はNewWa
ve 0ffice’アプリケーション100とlN5
TRIICTIONアプリケーション200をモニタで
きるので、コマンド・トラップを生じさせることが可能
になる。エイジェント・エンジン108がコマンド・ト
ラップを起すと、アクション・プロセッサ101からコ
マンド・プロセッサ102に送られるコマンドとアクシ
ョン・プロセッサ201からコマンド・プロセッサ20
2に送られるコマンドは、エイジェント・エンジン10
8によってインターセプトされる。こうして、オブジェ
クト“NewWaveOffice”と”Lesson
1’は両方ともエイジェント・エンジン108によっ
てモニタされる。両オブジェクトからの意味的コマンド
は実行前にインターセプトされて、コマンド・ラップが
起る。
表1の38行目〜43行目には手続“process
but−t o n ”が示されている。関数”sy
s cmdclass()”はユーザからコマンドを
受け取ったオブジェクトのクラス・ストリングを戻す。
but−t o n ”が示されている。関数”sy
s cmdclass()”はユーザからコマンドを
受け取ったオブジェクトのクラス・ストリングを戻す。
39行目において、もしオブジェクトがlN5TR[I
CTl0Nアプリケーション200であるならば、すな
わちもしユーザがボタン308の上にカーソル303を
位置決めし、ボタン27をクリックしたことで手続”p
rocess button”が呼び出され、関数”
sys cmdclass()”がストリング” l
N5TRUCTION”を戻すと、変数“button
flag#”が40行目で“1”にセットされる。一方
、他のオブジェクトがユーザからコマンドを受け取ると
、例えばユーザがカーソルをウィンドウ300に位置決
めしてボタン27をクリックすると、オブジェクトのク
ラスストリングが戻されるがこれは” lN5TRII
CTION”とは等しくならず、変数″buttonf
lag#”は11”にセットされない。
CTl0Nアプリケーション200であるならば、すな
わちもしユーザがボタン308の上にカーソル303を
位置決めし、ボタン27をクリックしたことで手続”p
rocess button”が呼び出され、関数”
sys cmdclass()”がストリング” l
N5TRUCTION”を戻すと、変数“button
flag#”が40行目で“1”にセットされる。一方
、他のオブジェクトがユーザからコマンドを受け取ると
、例えばユーザがカーソルをウィンドウ300に位置決
めしてボタン27をクリックすると、オブジェクトのク
ラスストリングが戻されるがこれは” lN5TRII
CTION”とは等しくならず、変数″buttonf
lag#”は11”にセットされない。
42行目において、 ignore’コマンドはどちら
のオブジェクトが(すなわち、オブジェクト“NewW
−ave 0ffice”と”Lesson 1°°の
どちらが)ユーザからのコマンドを戻したかには関係な
く、そのコマンド自体が無視されるべきであることを示
す。すなわち、そのコマンドがNewWave 0ff
ice″アプリケーションから来たものであろうと、l
N5TRUC−TIONアプリケーション200から来
たものであろうと、そのコマンドはこれ以上の処理のた
めにコマンド・プロセッサ102あるいは202に戻さ
れることはない。その代わりに、コマンドをAI’I
N。
のオブジェクトが(すなわち、オブジェクト“NewW
−ave 0ffice”と”Lesson 1°°の
どちらが)ユーザからのコマンドを戻したかには関係な
く、そのコマンド自体が無視されるべきであることを示
す。すなわち、そのコマンドがNewWave 0ff
ice″アプリケーションから来たものであろうと、l
N5TRUC−TIONアプリケーション200から来
たものであろうと、そのコマンドはこれ以上の処理のた
めにコマンド・プロセッサ102あるいは202に戻さ
れることはない。その代わりに、コマンドをAI’I
N。
CMOにセットすることによって、NULL (空)コ
マンドが戻される。
マンドが戻される。
12行目でモニタ動作をオンにした後、エイジェント・
エンジンは13行目の命令を実行し、ユーザがカーソル
303でボタン308を選択するのを待っwhileル
ープ(命令13〜15)に入る。このループ内にいる間
に、あるアプリケーションで何らかのコマンドが生成さ
れると、手続”process buttonが実行
される。手続゛″process button″が
終了した時、button flag#=0であれば
、エイジェント・エンジンは13行目〜15行目の命令
によって定義されるループ内にとどまる。button
flag#= 1の場合には、エイジェント・エン
ジン108は以降の動作を16行目の命令から継続する
。
エンジンは13行目の命令を実行し、ユーザがカーソル
303でボタン308を選択するのを待っwhileル
ープ(命令13〜15)に入る。このループ内にいる間
に、あるアプリケーションで何らかのコマンドが生成さ
れると、手続”process buttonが実行
される。手続゛″process button″が
終了した時、button flag#=0であれば
、エイジェント・エンジンは13行目〜15行目の命令
によって定義されるループ内にとどまる。button
flag#= 1の場合には、エイジェント・エン
ジン108は以降の動作を16行目の命令から継続する
。
16行目において、モニタ動作が“オフ”になる。
17行目ト18行目ノ命令1;! lN5TRUCTr
ON 7ブリケーシヨン200で実行するために、エイ
ジェント・エンジン10gによってオブジェクト”Le
sson In5tru−ction”に送られる。こ
れらの命令が実行されると、lN5TR[ICTl0N
アプリケーション200により、デイスプレィ14から
ウィンドウ302を除去し、第15図に示されるように
、ウィンドウ311を表示させる。
ON 7ブリケーシヨン200で実行するために、エイ
ジェント・エンジン10gによってオブジェクト”Le
sson In5tru−ction”に送られる。こ
れらの命令が実行されると、lN5TR[ICTl0N
アプリケーション200により、デイスプレィ14から
ウィンドウ302を除去し、第15図に示されるように
、ウィンドウ311を表示させる。
19行目の命令がエイジェント・エンジン108によっ
て実行されると、モニタ手続を手続“processo
pen”に再定義する。
て実行されると、モニタ手続を手続“processo
pen”に再定義する。
20行目において、変数“open flag#”が
0”にセットされる。21行目において、命令”set
co−mmand on”がモニタ動作を“オン”に
し、その結果システム上で実行中のオブジェクトによっ
てコマンドが実行される前に、エイジェント・エンジン
108がこれらコマンドをインターセプトする。
0”にセットされる。21行目において、命令”set
co−mmand on”がモニタ動作を“オン”に
し、その結果システム上で実行中のオブジェクトによっ
てコマンドが実行される前に、エイジェント・エンジン
108がこれらコマンドをインターセプトする。
プログラムの実行を続行する前に、22行目〜24行目
の命令がエイジェント・エンジン108に指示を与え、
手続“process open”中で変数′″op
enflag”が“1°にセットされるまで待機させる
。
の命令がエイジェント・エンジン108に指示を与え、
手続“process open”中で変数′″op
enflag”が“1°にセットされるまで待機させる
。
ユーザ・アクションの結果あるアプリケーションでコマ
ンドが生成されると、手続”process ope
nが実行される。その完了時にopen f Iag
#= 0であれば、エイジェント・エンジンは、22行
目〜24行目の命令によって定義されたループ内にとど
まる。
ンドが生成されると、手続”process ope
nが実行される。その完了時にopen f Iag
#= 0であれば、エイジェント・エンジンは、22行
目〜24行目の命令によって定義されたループ内にとど
まる。
open flag#=1なら、エイジェント・エン
ジン108は25行目の命令によってプログラムの実行
を継続する。
ジン108は25行目の命令によってプログラムの実行
を継続する。
手続”procesSopen”は45行目〜65行目
に示されている。46行目において関数“sys c
mdclass()”が’ lN5TRUCTION’
を戻シタトシよつ。コレが示しているのは、コマンドを
実行しようとしていたのはrNsTRIJcTIONア
プリケーションであったということである。これは、ユ
ーザがボタン314を選択してデモを要求したというこ
とを意味している。従って、47行目で手続“demo
”が呼び出される。48行目において変数“open
flag#″°が1にセットされる。49行目におい
て、エイジェント・エンジン108は現在モニタしてい
る最中のコマンドを無視するように命令を受ける。
に示されている。46行目において関数“sys c
mdclass()”が’ lN5TRUCTION’
を戻シタトシよつ。コレが示しているのは、コマンドを
実行しようとしていたのはrNsTRIJcTIONア
プリケーションであったということである。これは、ユ
ーザがボタン314を選択してデモを要求したというこ
とを意味している。従って、47行目で手続“demo
”が呼び出される。48行目において変数“open
flag#″°が1にセットされる。49行目におい
て、エイジェント・エンジン108は現在モニタしてい
る最中のコマンドを無視するように命令を受ける。
68行目〜74行目に示された手続“demo”は、フ
ォルダFred“をどのようにしたらオーブンできるか
をユーザに考える。68行目の命令によって、オブジェ
クト“NewWave 0ffice”に対しフォーカ
スが合わせられる。質問関数where is(”F
OLDER−°“Fred″′)が、デイスプレィ、す
なわちウィンドウ300内のどこにフォルダFredが
あるかについて、オブジェクト“NewWave 0f
fice”に問い合わせる。
ォルダFred“をどのようにしたらオーブンできるか
をユーザに考える。68行目の命令によって、オブジェ
クト“NewWave 0ffice”に対しフォーカ
スが合わせられる。質問関数where is(”F
OLDER−°“Fred″′)が、デイスプレィ、す
なわちウィンドウ300内のどこにフォルダFredが
あるかについて、オブジェクト“NewWave 0f
fice”に問い合わせる。
エイジェント・エンジン108がこの命令を実行する際
、エイジェント・エンジンはオブジェクト’Lメツセー
ジを送り、”NewWave 0ffice”はフォル
ダFredのウィンドウ300内における位置を座標で
答える。
、エイジェント・エンジンはオブジェクト’Lメツセー
ジを送り、”NewWave 0ffice”はフォル
ダFredのウィンドウ300内における位置を座標で
答える。
70行目の命令により、変数“object reg
ion#”は関数where is(”FOLDBR
−”Fred”)が戻す値にセットされる。71行目と
72行目の命令によって一連のユーザ・アクション・レ
ベルのメツセージが作成され、ユーザ・アクション・イ
ンターフェースを介してオブジェクト“Ne1L+Wa
ve 0ffice”に送られて実行される。71行目
の命令によって、第16図に示すようにカーソル303
が移動して、フォルダFredの中心を指示する。第1
6図において、移動経路310の開始点と終了点にカー
ソル303を図示することにより、カーソル303の動
きを表現している。72行目において、マウス27のボ
タン20をダブル・クリックしたことに相当するユーザ
・アクションがオブジェクト”NewWave 0ff
ice”に送られ処理される。73行目において、5秒
間のポーズを置くことによって、ユーザが自分の見たも
のについて熟考するチャンスを与える。
ion#”は関数where is(”FOLDBR
−”Fred”)が戻す値にセットされる。71行目と
72行目の命令によって一連のユーザ・アクション・レ
ベルのメツセージが作成され、ユーザ・アクション・イ
ンターフェースを介してオブジェクト“Ne1L+Wa
ve 0ffice”に送られて実行される。71行目
の命令によって、第16図に示すようにカーソル303
が移動して、フォルダFredの中心を指示する。第1
6図において、移動経路310の開始点と終了点にカー
ソル303を図示することにより、カーソル303の動
きを表現している。72行目において、マウス27のボ
タン20をダブル・クリックしたことに相当するユーザ
・アクションがオブジェクト”NewWave 0ff
ice”に送られ処理される。73行目において、5秒
間のポーズを置くことによって、ユーザが自分の見たも
のについて熟考するチャンスを与える。
一般に、3つのタイプの質問関数がある。関数”whe
re is()′はパラメータとしてオブジェクトの
クラス及びタイトルを識別するものを取り、モニタ14
上の表示中でオブジェクトを表わすアイコンの矩形領域
を要求する。関数“whats at()”″は、パ
ラメータとしてデイスプレィの点を取り、その点におけ
るアイコンによって表わされているオブジェクトの識別
を要求する。関数“5tatus()”はパラメーター
としてオブジェクトのIDを取り、例えばそのオブジェ
クトにフォーカスが合わせられているかとか、そのオブ
ジェクトのためにオーブンされているウィンドウが存在
するかといった、オブジェクトのステータスを要求する
。こうした関数のそれぞれに対する命令がエイジェント
・エンジン108によって実行されると、エイジェント
・エンジン108(まAPI INT巳RROGAT
E MSGメツセージを送り出して、フォーカスの合
っているオブジェクトからの情報を要求する。
re is()′はパラメータとしてオブジェクトの
クラス及びタイトルを識別するものを取り、モニタ14
上の表示中でオブジェクトを表わすアイコンの矩形領域
を要求する。関数“whats at()”″は、パ
ラメータとしてデイスプレィの点を取り、その点におけ
るアイコンによって表わされているオブジェクトの識別
を要求する。関数“5tatus()”はパラメーター
としてオブジェクトのIDを取り、例えばそのオブジェ
クトにフォーカスが合わせられているかとか、そのオブ
ジェクトのためにオーブンされているウィンドウが存在
するかといった、オブジェクトのステータスを要求する
。こうした関数のそれぞれに対する命令がエイジェント
・エンジン108によって実行されると、エイジェント
・エンジン108(まAPI INT巳RROGAT
E MSGメツセージを送り出して、フォーカスの合
っているオブジェクトからの情報を要求する。
質問関数を利用すると、デモ・プログラムの柔軟性が大
幅に向上する。質問関数を利用することにより、デモ・
プログラムは、オブジェクトの位置を突きとめ、特定の
位置にどんなオブジェクトが置かれてい°るか判定し、
またオブジェクトの状況を判定することが可能になる。
幅に向上する。質問関数を利用することにより、デモ・
プログラムは、オブジェクトの位置を突きとめ、特定の
位置にどんなオブジェクトが置かれてい°るか判定し、
またオブジェクトの状況を判定することが可能になる。
こうした質問関数を利用すると、デモ・プログラムは、
当初、デモに用いられるオブジェクトの位置、身元(i
den−tity)及びまたはステータスを知らなかっ
たとしても、デモを実行することができる。
当初、デモに用いられるオブジェクトの位置、身元(i
den−tity)及びまたはステータスを知らなかっ
たとしても、デモを実行することができる。
ユーザーが、デモをさせるのではなくフォルダfred
をオーブンしようとした場合、51行目〜64行目の命
令” p r o c e s s o p e n
”によって、エイジェント・エンジン10Bは“Ne
wWave 0ffice″アプリケーション100に
よって生成されたコマンドの実行を許可する前に、その
コマンドをモニタするようになる。ユーザが生成したコ
マンドは、アクション・プロセッサ101からコマンド
・プロセッサ102に送られる際にインターセプトされ
る。
をオーブンしようとした場合、51行目〜64行目の命
令” p r o c e s s o p e n
”によって、エイジェント・エンジン10Bは“Ne
wWave 0ffice″アプリケーション100に
よって生成されたコマンドの実行を許可する前に、その
コマンドをモニタするようになる。ユーザが生成したコ
マンドは、アクション・プロセッサ101からコマンド
・プロセッサ102に送られる際にインターセプトされ
る。
51行目〜64行目の命令によって、ユーザは、いくつ
かのやり方でフォルダFredをオーブンすることが可
能になる。例えば、ユーザはフォルダFred上にカー
ソル303を位置決めしてからボタン27をダブル・ク
リックしてもよいし、あるいはフォルダFredを選択
してからプルダウン・メニューからコマンド0pen”
を選んでよい。フォルダFredをオーブンするために
ユーザが選び取ったやり方とは関係なく、2つのコマン
ドが順次生成されなければならない。まず、ユーザがフ
ォルダ“Fred″゛を選択したことによって、5el
ectコマンドがコマンドプロセッサ102に戻されな
ければならない。これが起ると、53行目において、c
lasssに値” P OL DER”が割り当てられ
、54行目においてtitle#に′FRED’”が割
り当てられ、55行目において5electコマンドが
実行される。2番目にapeロコマンドがコマンド・プ
ロセッサ102に戻されて実行されなければならない。
かのやり方でフォルダFredをオーブンすることが可
能になる。例えば、ユーザはフォルダFred上にカー
ソル303を位置決めしてからボタン27をダブル・ク
リックしてもよいし、あるいはフォルダFredを選択
してからプルダウン・メニューからコマンド0pen”
を選んでよい。フォルダFredをオーブンするために
ユーザが選び取ったやり方とは関係なく、2つのコマン
ドが順次生成されなければならない。まず、ユーザがフ
ォルダ“Fred″゛を選択したことによって、5el
ectコマンドがコマンドプロセッサ102に戻されな
ければならない。これが起ると、53行目において、c
lasssに値” P OL DER”が割り当てられ
、54行目においてtitle#に′FRED’”が割
り当てられ、55行目において5electコマンドが
実行される。2番目にapeロコマンドがコマンド・プ
ロセッサ102に戻されて実行されなければならない。
openコマンドが戻された時、classttFOL
DIERであってかつt i t Icf=PRHDで
あれば、58行目においてopen flagttが
1にセントされ、59行目においてopenコマンドが
実行される。
DIERであってかつt i t Icf=PRHDで
あれば、58行目においてopen flagttが
1にセントされ、59行目においてopenコマンドが
実行される。
他のコマンドについてはエイジェント・エンジン108
はどれも無視する。ユーザが成功裏にフォルダ’ F
r e d ”をオーブンすると、第17図に示すよう
に、ウィンドウ319が現われる。
はどれも無視する。ユーザが成功裏にフォルダ’ F
r e d ”をオーブンすると、第17図に示すよう
に、ウィンドウ319が現われる。
25行目において、モニタ動作がオフにされる。
26行目と27行目の命令がエイジェント・エンジン1
08によってオブジェクト”Lesson In5tr
uction’に送られて実行される。この実行により
、ウィンドウ311はデイスプレィ14から除去され、
第17図に示されるようにウィンドウ316が現われる
。28行目の命令によって、モニタ手続は手続”pro
cessb u t t o n ”に再定義され、ユ
ーザが何かコマンドを実行するときに、ただし、モニタ
動作がオンの場合に限って、手続”process
button”が実行される。
08によってオブジェクト”Lesson In5tr
uction’に送られて実行される。この実行により
、ウィンドウ311はデイスプレィ14から除去され、
第17図に示されるようにウィンドウ316が現われる
。28行目の命令によって、モニタ手続は手続”pro
cessb u t t o n ”に再定義され、ユ
ーザが何かコマンドを実行するときに、ただし、モニタ
動作がオンの場合に限って、手続”process
button”が実行される。
29行目において、変数”button flag#
”が” o ”にセットされる。30行目の命令“se
t command onによって、モニタ動作がオン
になり、アプリケーションでコマンドが生成されるとコ
マンド・トラップが起る。
”が” o ”にセットされる。30行目の命令“se
t command onによって、モニタ動作がオン
になり、アプリケーションでコマンドが生成されるとコ
マンド・トラップが起る。
エイジェント108はbutton flag#がO
である限り31行目〜33行目の命令をループする。3
2行目の命令において、エイジェント・エンジンは何れ
かのアプリケーションからのコマンドがインターセプト
されるのを待つ。lN5TRUCTIONアプリケーシ
ョン200からのコマンドがインターセプトされるとh
utton flag#が0にセットされ、エイジェ
ント・エンジン108はループを抜は出て、引続き34
行目の命令を実行する。
である限り31行目〜33行目の命令をループする。3
2行目の命令において、エイジェント・エンジンは何れ
かのアプリケーションからのコマンドがインターセプト
されるのを待つ。lN5TRUCTIONアプリケーシ
ョン200からのコマンドがインターセプトされるとh
utton flag#が0にセットされ、エイジェ
ント・エンジン108はループを抜は出て、引続き34
行目の命令を実行する。
34行目においてモニタ動作はオフになる。35行目の
命令がエイジェント・エンジン108によってオブジェ
クト”Lesson In5truction”に送ら
れて実行される。この実行により、ウィンドウ316は
、デイスプレィ14から除去される。
命令がエイジェント・エンジン108によってオブジェ
クト”Lesson In5truction”に送ら
れて実行される。この実行により、ウィンドウ316は
、デイスプレィ14から除去される。
[発明の効果]
以上詳細に説明したように、本発明によれば意味的レベ
ルでアプリケーションをモニタ、制御しながらCBT動
作を行なうことができるので、たとえばウィンドウ、プ
ルダウン・メニュー、ボイルティング・デバイス等を駆
使するマン−マシン・インターフェースを使って動作す
るアプリケーションに対するCBT等の実現に当って有
効である。
ルでアプリケーションをモニタ、制御しながらCBT動
作を行なうことができるので、たとえばウィンドウ、プ
ルダウン・メニュー、ボイルティング・デバイス等を駆
使するマン−マシン・インターフェースを使って動作す
るアプリケーションに対するCBT等の実現に当って有
効である。
第1図はアプリケーションとエイジェント環境とヘルプ
環境との相互作用を説明するための図、第2図はタスク
言語ファイルの生成と実行の態様を説明するための図、 第3図は第1図中のアプリケーションの構造を説明する
ための図、 第4図は第1図中のアプリケーション内のデータ・フロ
ーを説明するための図、 第5図はタスク言語コンパイラを説明するための図、 第6図は本発明実施例を適用できる計算システムを説明
するだめの図、 第7図は第6図中のマウスを説明するための図、第8図
は第5図中のタスク言語コンパイラ内のデータ・フロー
を説明するための図、 第9図はCBTを行なうためのアプリケーションによっ
て表示される一連の画面を示す図である。 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:外部形式への翻訳プロセッサ 1307A P f 131:タスク言語ファイル 141:モードレス・ユーザ・アクション・インターフ
ェース要素 142:モードレス・アクション・プロセッサ143:
モードレス・コマンド・インターフェース要素 144:アプリケーション・データ 145:ユーザ・アクション・インターフェース要素 146;コマンド・インターフェース要素147:リタ
ーン・インターフェース要素148:モード・ダイアロ
ーブ・ボックス・プロセッサ 149:エラー・ダイアローブ・ボックス要素150:
再生メツセージ・テスト要素 151:コマンド・テスト要素 152:モード・ダイアローブ・ボックステスト要素 164:人力ストリーム・プロセッサ 166:式パーザ 167、168:クラス従属パーザ 171:セーブ・ファイル・バッファ 174:第2パス・ルーチン群 176:−時ファイル 2(10:lN5TR[ICTl[lN 7 )’)
ケージa 7201:アクション・プロセッサ 202:コマンド・プロセッサ
環境との相互作用を説明するための図、第2図はタスク
言語ファイルの生成と実行の態様を説明するための図、 第3図は第1図中のアプリケーションの構造を説明する
ための図、 第4図は第1図中のアプリケーション内のデータ・フロ
ーを説明するための図、 第5図はタスク言語コンパイラを説明するための図、 第6図は本発明実施例を適用できる計算システムを説明
するだめの図、 第7図は第6図中のマウスを説明するための図、第8図
は第5図中のタスク言語コンパイラ内のデータ・フロー
を説明するための図、 第9図はCBTを行なうためのアプリケーションによっ
て表示される一連の画面を示す図である。 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:外部形式への翻訳プロセッサ 1307A P f 131:タスク言語ファイル 141:モードレス・ユーザ・アクション・インターフ
ェース要素 142:モードレス・アクション・プロセッサ143:
モードレス・コマンド・インターフェース要素 144:アプリケーション・データ 145:ユーザ・アクション・インターフェース要素 146;コマンド・インターフェース要素147:リタ
ーン・インターフェース要素148:モード・ダイアロ
ーブ・ボックス・プロセッサ 149:エラー・ダイアローブ・ボックス要素150:
再生メツセージ・テスト要素 151:コマンド・テスト要素 152:モード・ダイアローブ・ボックステスト要素 164:人力ストリーム・プロセッサ 166:式パーザ 167、168:クラス従属パーザ 171:セーブ・ファイル・バッファ 174:第2パス・ルーチン群 176:−時ファイル 2(10:lN5TR[ICTl[lN 7 )’)
ケージa 7201:アクション・プロセッサ 202:コマンド・プロセッサ
Claims (3)
- (1)下記の(A)ないし(D)を設けてなる計算シス
テム: (A)モニタ; (B)情報を前記モニタに表示する第1アプリケーショ
ン・オブジェクト:前記第1アプリケーション・オブジ
ェクトはユーザの取る構文的アクションに応答するとと
もに、 下記の(a)および(b)を有する: (a)ユーザの取った構文的アクションを表わすメッセ
ージを受け取って、当該構文的アクションに基いて意味
的コマンドを生成する第1アクション・プロセッサ手段
;及び (b)前記第1アクション・プロセッサ手段から意味的
コマンドを受け取って、当該意味的コマンドを実行する
第1コマンド・プロセッサ手段; (C)ユーザの取った構文的アクションに応答する指導
オブジェクト:前記指導オブジェクトは前記第1アプリ
ケーションの動作についての情報を前記モニタ上に表示
する; (D)前記第1アプリケーション・オブジェクトと前記
指導オブジェクトに結合されたエイジェント手段:前記
エイジェント手段は意味的コマンドを前記指導オブジェ
クトに送ってどの情報を前記モニタに表示するかを前記
指導オブジェクトに示し、また前記第1アクション・プ
ロセッサ手段から前記第1コマンド・プロセッサ手段へ
送られる意味的コマンドをインターセプトする。 - (2)モニタとアプリケーション・オブジェクトと指導
オブジェクトとエイジェントとを有する計算システムに
おいて、ユーザにコンピュータ・ベース・トレーニング
を与えるため、下記(A)ないし(D)のステップを設
けてなる指導方法: (A)前記アプリケーション・オブジェクトを実行状態
におく; (B)前記エイジェントから前記指導オブジェクトに対
して、前記指導オブジェクトに前記アプリケーション・
オブジェクトに関する情報を表示させるように指示する
意味的コマンドを送る; (C)前記指導オブジェクトにより、前記アプリケーシ
ョン・オブジェクトに関する情報を表示する; (D)前記アプリケーション・オブジェクトによって生
成された意味的コマンドを前記アプリケーション・オブ
ジェクトが実行する前に前記エイジェントによってイン
ターセプトする。 - (3)モニタとエイジェントを有する計算システムにお
いて、第1オブジェクトのウィンドウ内に表示された図
形的インターフェース・エレメントの操作に関与するデ
モを与える。下記の(A)ないし(C)のステップを設
けてなる指導方法: (A)前記エイジェントから前記第1オブジェクトへ質
問メッセージを送り、前記第1オブジェクトに対して前
記図形的インターフェイス・エレメントに関する情報を
前記エイジェントに送ることを要求する。 (B)前記情報を前記第1オブジェクトから前記エイジ
ェントへ送る; (C)前記デモを行なう。
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 true JPH0273392A (ja) | 1990-03-13 |
JP3361803B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0535715A (ja) * | 1991-04-20 | 1993-02-12 | Fuji Xerox Co Ltd | 計算機意味操作判定装置 |
Families Citing this family (6)
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 |
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 |
AU695912B2 (en) | 1994-06-07 | 1998-08-27 | Skillsoft Ireland Limited | A computer based training system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1267229A (en) * | 1986-03-10 | 1990-03-27 | Randal H. Kerr | Reconfigurable automatic tasking system |
-
1989
- 1989-03-21 CA CA000594334A patent/CA1323702C/en not_active Expired - Fee Related
- 1989-04-10 CN CN89102124A patent/CN1018207B/zh not_active Expired
- 1989-06-26 EP EP19890306438 patent/EP0352908A3/en not_active Ceased
- 1989-07-19 AU AU38259/89A patent/AU631128B2/en not_active Ceased
- 1989-07-26 KR KR1019890010638A patent/KR900002161A/ko not_active Application Discontinuation
- 1989-07-27 JP JP19538189A patent/JP3361803B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0535715A (ja) * | 1991-04-20 | 1993-02-12 | Fuji Xerox Co Ltd | 計算機意味操作判定装置 |
Also Published As
Publication number | Publication date |
---|---|
CA1323702C (en) | 1993-10-26 |
AU631128B2 (en) | 1992-11-19 |
CN1039912A (zh) | 1990-02-21 |
EP0352908A2 (en) | 1990-01-31 |
JP3361803B2 (ja) | 2003-01-07 |
AU3825989A (en) | 1990-02-01 |
CN1018207B (zh) | 1992-09-09 |
EP0352908A3 (en) | 1991-01-30 |
KR900002161A (ko) | 1990-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5317688A (en) | Software agent used to provide instruction to a user for a plurality of computer applications | |
US6340977B1 (en) | System and method for dynamic assistance in software applications using behavior and host application models | |
US6020886A (en) | Method and apparatus for generating animated help demonstrations | |
JP3177301B2 (ja) | 計算機システムへの入力提供方法 | |
US5627977A (en) | Trainable user interface translator | |
US7017145B2 (en) | Method, system, and program for generating a user interface | |
Srinivasan et al. | Discovering natural language commands in multimodal interfaces | |
KR101038395B1 (ko) | Gui를 갖는 컴퓨터 시스템에서 태스크를 실행하는 방법, help 파일을 구성하는 방법 및 컴퓨터 판독가능 매체 | |
US5117496A (en) | Method for recording and replaying mouse commands by recording the commands and the identities of elements affected by the commands | |
KR20060048929A (ko) | 개선된 두드러짐을 갖는 활성화된 컨텐츠 위자드 실행 | |
Alexander | Formally-based tools and techniques for human-computer dialogues | |
KR970007760B1 (ko) | 클래스 독립 파서 및 다수의 클래스 종속 파서를 갖고 있는 모듈러 컴파일러 | |
EP0557205B1 (en) | System for developing software from a natural language specification using object networks | |
JPH0273392A (ja) | 指導動作可能計算システム及び指導方法 | |
KR950014164B1 (ko) | 적응가능한 사용자 인터페이스 시스템 및 방법 | |
CN114564195B (zh) | 一种基于b/s架构的云cad平台的二次开发方法 | |
CN112749032B (zh) | 一种支持多模态交互的软件架构 | |
James et al. | Microcomputers as protective interfaces in computing networks | |
Endo et al. | User Manual for MissionLab version 4.0 | |
Plaus | Union College Senior Design Project: Using Spatial Context and Clarification Questions to Interpret Ambiguous Natural Language Commands | |
JPH0778075A (ja) | 対話式分散有限状態プログラム発生器を提供する方法及び装置 | |
JPH0635687A (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 |