CN1018207B - 一种向用户提供培训的用于多种计算机应用的软件代理 - Google Patents

一种向用户提供培训的用于多种计算机应用的软件代理

Info

Publication number
CN1018207B
CN1018207B CN89102124A CN89102124A CN1018207B CN 1018207 B CN1018207 B CN 1018207B CN 89102124 A CN89102124 A CN 89102124A CN 89102124 A CN89102124 A CN 89102124A CN 1018207 B CN1018207 B CN 1018207B
Authority
CN
China
Prior art keywords
target
instruction
proxy server
order
information
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
Application number
CN89102124A
Other languages
English (en)
Other versions
CN1039912A (zh
Inventor
格伦·斯特恩斯
巴巴拉·B·帕卡德
罗尔夫·托马斯·沃森
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 CN1039912A publication Critical patent/CN1039912A/zh
Publication of CN1018207B publication Critical patent/CN1018207B/zh
Expired legal-status Critical Current

Links

Images

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种计算机系统。它包括一个应用目标,一个以计算机为基础的培训目标(“INSTRUCTION目标”)和一个代理器。INSTRUCTION目标与应用目标同时运行。应用目标包括一个第一动作处理器和一个第一命令处理器。第一动作处理器接收说明由用户采取的语法动作的信息,并根据语法动作产生语义命令。第一命令处理器从第一动作处理器接收语义命令并执行语义命令。

Description

本发明属于以计算机为基础的培训(CBT),更具体地说,属于应用一个软件代理向用户提供培训。
目前在市场上已有许多CBT计算机应用,它们补充或代替手册、书面辅导材料和其它普通的说明材料。CBT可以是交互式的,且常以一个辅导教师为模型,提供特定的反馈以对培训课期间用户的表现作出响应。
一般来说,CBT有两种实施方案。在“模拟的CBT”中,计算机应用是由一个CBT程序所模拟;在“同时的CBT”中,计算机应用则与一个CBT程序同时运行。
随着计算机应用变得越来越复杂和更多地运用图形,使用模拟的CBT变得更为困难,这是因为一个计算机应用的复杂性一般要求模拟此计算机应用的程序的复杂性。
同时的CBT常比模拟的CBT简单,这是因为在同时的CBT中,计算机应用本身在培训作业期间提供其自己的接口和功能。在一次同时的CBT作业期间,CBT程序一般将启动计算机应用,围绕着计算机应用起着一种“外壳”的作用。
在同时的CBT作业期间,CBT将打开计算机应用,并控制它使此计算机应用达到一种已知的所需状态。CBT应用其自己的子程序,通过在计算机应用顶部画出的“窗口”向用户提供培训用正文和图形。正文和图形解释此计算机应用的概念并提示用户作出响应。CBT监视 用户的输入,以确定用户是否正确地作出响应,还监视显示器屏幕以确定何时计算机应用已结束对输入的处理。然后,根据用户作出的响应,CBT再使培训进展下去。
通常,CBT是在语法级上控制和监视的活动。这里所谓的“语法级”指的是用户为了与一个计算机应用对话所进行的动作,如敲键或鼠标的动作。例如,在一个工作于语法级上的CBT中,其中一个计算机应用受一个键盘和鼠标所控制,并且输出至一个阴极射线管监视器,CBT将检测出键和鼠标输入以及阴极射线管上象素的状态。这种程度的交互作用称为“语法的”,因为在此级别上,计算机并不从语义上解释与此动作有关的意图。
按照本发明的优选实施例,提出了一种计算机系统,它包括一个应用目标,一个以计算机为基础的培训指令目标(“INSTRUCTION目标”)和一个代理器。INSTRUCTION目标与应用目标同时运行。应用目标包括一个第一动作处理器和一个第一命令处理器。第一动作处理器接收表示用户所采取的语法动作的信息,并根据此语法动作产生出语义命令。第一命令处理器从第一动作处理器接收语义命令并执行语义命令。
INSTRUCTION目标通过语法动作接收用户的输入,并在监视器上显示信息。此信息告诉用户关于第一计算机应用的工作。在该优选实施例中,INSTRUCTION目标包括一个INSTRUCTION动作处理器和一个INSTRUCTION命令处理器。INSTRUCTION动作处理器接收表明由用户所采取的语法动作,并根据此语法动作产生语义命令。INSTRUCTION命令处理器从INSTRUCTION动作处理器接收语义命令并执行语义命令。
操作一任务语言程序的软件代理,向INSTRUCTION目标发出语义命令,指示INSTRUCTION目标显示哪些信息。此软件代理还监视应用目标和INSTRUCTION目标,在语义命令被执行之前截听这些命令。
图1为一个方块图,说明在一个计算机应用、一个软件代理环境和一个求助环境之间的相互关系。
图2为一个方块图,说明按照本发明的优选实施例,一个任务语言文件是如何产生和执行的。
图3为一个方块图,表示按照本发明的优选实施例在图1所示的计算机应用。
图4为一个方块图,表示按照本发明的优选实施例,通过图1所示的计算机应用的数据流。
图5为一个方块图,表示按照本发明的优选实施例的编译器。
图6表示按照本发明的优选实施例的一个计算机、监视器、键盘和鼠标。
图7为图6所示的鼠标的顶视图。
图8为图5所示的编译器中的数据流。
图9为一个方块图,它表示把一个执行以计算机为基础的培训的计算机应用加至图1所示的计算机应用和软件代理环境。
图10~17表示,由于图9所示的系统执行一项任务的结果,在图6所示的监视器上显示的内容。
图1所示的为根据本发明的优选实施例的一种计算机系统的方块图。用户111通过一个软件环境112与计算机系统通信。例如,软件环境112可以是Microsoft    Windows(微软件窗口),即由 Microsoft公司所出售的一种程序,该公司的营业地址为16011NE    36th    Way,Redmond,WA    98073-9717。软件环境112与一个计算机应用100相互作用。含有描述用户动作的信息被软件环境112送至计算机应用100。在该优选实施例中,含有用户动作的信息为由Microsoft    Windows发送的标准信息。计算机应用100含有一个动作处理器101,它将用户的语法动作转换成单个的语义命令。例如动作处理器101观察和收集用户的动作,如击键和由用户使用的鼠标的运动。只要用户的动作符合一个命令的语法,则产生一个语义命令。有多种可为用户动作使用以产生单个的语义命令的方式。用户产生语义命令的方式可以不同,但语义命令的执行总是相同的。动作处理器101能从语法上说明用户用于构成一个特定的语义命令的许多方式。除用户的语法动作外,动作处理器101还处理输至计算机应用100的其它信息。其中有些信息将会导致及产生一个语义命令;另一些则将完全由动作处理器101进行处理。
计算机应用100还包括一个命令处理器102,它执行语义命令。命令处理器102接收内部形式的语义命令(内部形式在下文中还将详细介绍),如果一个命令不能被执行,则回送一个出错。
计算机应用100和软件环境112在它们之间的接口层与求助环境119相互作用。求助环境119含有一个求助应用103,它使用一个求助文本104。求助环境119还包括一个求助工具105,它用于产生求助文本104。
软件环境112还与一个代理环境118相互作用。代理环境118包括一个代理任务107和一个代理器108。
代理器108与计算机应用100在五种不同的概念类别上相互作 用以执行五种功能。代理器108与动作处理器101通过一个数据通道113相互作用进行询问。代理器108通过一个数据通道114在动作处理器101和命令处理器102之间相互作用,以监视计算机应用100的活动。代理器108通过一个数据通道115与命令处理器102相互作用,以使命令由计算机应用100执行。代理器108通过一个数据通道116与命令处理器102相互作用,以处理在计算机应用100中处理命令过程中的出错。代理器108通过一个数据通道117与命令处理器102相互作用,以记录计算机应用100的执行和接收一个命令结束的通知。
在本发明的优选实施例中,命令可以用四种方式表达:(1)任务语言的形式,以关键字和参数贮存;(2)P码形式,它是由代理器108翻译的外部形式的二进制码,并带有附加的标题;(3)外部形式,它是为计算机应用所理解的二进制数据,并在代理器108和计算机应用100之间传送;(4)内部形式,为二进制命令,这些命令在计算机应用100中执行。这四种表示命令的方式在本文的附录A中将有进一步的介绍。
图2为说明整个代理系统工作的方块图。任务语言文件131是一个含有任务语言的文件。任务语言是描述一个计算机应用功能的命令的文本形式。任务语言由类别相关的命令和类别无关的命令所组成。类别相关的命令为由一个计算机应用执行的命令。在图2仅示出一个计算机应用100。但是,代理器108可与许多计算机应用相互作用。
在本发明的优选实施例中,由计算机应用操作的数据文件通过使用目标来进行访问。每个目标包括访问一个数据文件和访问一个计算机应用。那些引用相同的计算机应用的目标被称作是同一类别 的成员。每个计算机应用执行一组不同的命令。因此,类别相关的命令对不同的计算机应用是不一样的。
代理器108执行类别无关的命令,这些命令为代理器108所能理解。类别无关的命令由代理器108执行,而不是由计算机应用所执行。
任务语言文件131由一个类别无关的分析块122用于准备一个P码文件121。在准备P码文件121过程中,类别无关分析块122调用类别相关分析块123、124等。如下文还将进一步介绍的,一个类别相关的分析块是这样的一个分析块,它产生类别相关的命令,这些命令以P码形式封装。代理器108从P码形式提取其外部形式的命令,将这些命令送往适当的计算机应用。P码内的一个类别域表明哪一个计算机应用应接收一个特定的类别相关的命令。类别无关分析块122是这样一个分析块它产生由代理器执行的P码。
任务语言文件131可由用户111用一个代理任务编辑块132来准备。或者,任务语言文件也可用一个类别无关的记录装置125来准备,该记录装置则利用类别相关的记录装置126、127等。总的说来,记录装置记录计算机应用的命令供以后读出之用。当计算系统处在记录工作方式时,代理任务编辑块132从计算机应用(如图示的计算机应用100)接收输入,它详细说明代理器108和计算机应用将采用什么动作。计算机应用通过一个计算机应用接口(API)130与代理任务编辑块132连接。当计算系统处于记录工作方式时代理任务编辑块132把数据输送到类别无关的记录装置125,当代理任务编辑块被用户111所用时,则输送到 任务语言文件131。
类别无关的记录装置125接收此信息并构成任务语言文件131。当类别无关的记录装置125发现代理任务编辑块132正在输送有关被计算机应用所采取的动作的信息时,类别无关的记录块就调用该计算机应用的类别相关的记录块,然后此记录块产生用于该动作的任务语言形式。类别无关的记录块125产生由代理器108采取的行动的任务语言形式。
在执行P码文件121时,代理器108读取每个P码命令,并确定此P码命令是否会有一个将由代理器108执行的类别无关的命令,或一个由一个计算机应用执行的类别相关的命令。如果P码命令含有一个类别无关的命令,则代理器108执行此命令。如果P码命令含有一个类别相关的命令,代理器由p码命令确定将接收此命令的计算机应用。然后代理器108提取一个插入在P码中的外部形式表示的类别相关的命令。此类别相关的命令再被送至该计算机应用。例如,如果类别相关的命令是用于计算机应用100,则此类别相关的命令被送至计算机应用100。在计算机应用100内,一个译成内部形式的装置128被用来将类别相关的命令(以外部形式传送的)翻译至命令的内部形式。
API130用于在代理器108和计算机应用100之间作为接口。API130为一组函数和信息,用于访问代理器108和其它部份。
当系统处于记录工作方式时,译成内部形式的装置128对来自代理器108的命令进行翻译,然后通过图3中的一个命令接口部件146将它们输送到命令处理器102。一个译成外部形式 的装置129接收已被命令处理器102执行的内部形式的命令。该命令通过回送接口部件147所接收,如图3所示。译成外部形式的装置129将内部形式的命令译成外部形式的命令。然后外部形式的命令再通过API130传送至任务编辑块132。
图3示出的是本发明的优选实施例中计算机应用100的详细组成。计算机应用100包括一个用户动作接口单元145,它与软件环境112和命令接口单元146相互配合,命令接口单元146则与动作处理器101和命令处理器102连接。如图所示,动作处理器101和命令处理器102都访问计算机应用数据144。一个回送接口单元147对命令处理器102作出响应,并把控制回送至软件环境112。图示的译成外部形式的装置129与回送接口单元147相互作用。只有在应用程序100处于读出或记录工作方式时,回送接口单元147才被调用。这些工作方式在下文中还将充分阐述。回送接口单元147向代理器108指明一个命令已被计算机应用100所执行,应用程序100已准备好执行下一个命令。
在计算机应用100内还有一个模态对话区处理器148和一个出错对话区单元149。这两部份都与软件环境112相互作用以控制对话区的显示,对话区则与用户111通信。
一些计算机应用能同时在一个以上的窗口工作。当这样工作时,对计算机应用在其中工作的多个窗口的每一个加有一个无模式用户动作接口单元、一个无模式动作处理器和一个无模式命令接口单元。例如,在计算机应用100中示出有一个无模式用户动作接口单元141、一个无模式动作处理器142和一个无模式命令接口单元143。
图4所示的是计算机应用100内的数据流。送给计算机应用100 的信息由一个用户动作接口单元145所接收。对于某些类型的信息,如来自求助应用程序103的信息,用户动作接口单元145使应用程序100立即返回。否则,此信息将送至读出信息测试单元150。
如果此信息是用于读出已由记录或分析而产生的命令,则此信息将送至译成内部形式的装置128,128再将此信息中的命令由外部形式转换至内部形式。然后此命令再输至命令接口单元146。
如果此信息不是一个读出信息,则此信息被送至动作处理器101,以便(例如)从语法上解释引起产生此信息的一个用户动作。如果没有由动作处理器101或由内部处理程序108产生的语义命令,则读出信息测试单元150使得应用程序100返回。如果有一个所产生的语义命令,则此命令被送至命令接口单元146。
如果代理器108正在监视计算机应用100执行命令,则命令接口单元146将所接收到的任何数据送至译成内部形式的装置129,该装置129把命令译成外部形式,再将命令传输至代理器108。命令接口单元146还将数据送至一个模态对话区测试单元152。
如果被传送的数据含有一个用于对话区的请求,则模态对话区测试单元152把数据送至模态对话区处理器148进行处理。否则模态对话区测试单元152将此数据送到命令测试单元151。
如果数据含有一个命令,则命令测试单元151将该命令送至命令处理器102执行。命令测试单元151把数据送往回送接口单元147。
如果代理器108正在记录命令,回送接口单元147把数据送 至译成外部形式的装置129以便转换为外部形式,并通过回送接口单元147传送至代理器108。回送接口单元在下一个信息收到时返回。
图5示出的是在任务语言编译块120中的数据流。任务语言编译块120用来产生P码文件121,它由用户用任务语言编写。任务语言文件131包含有用户所写的命令。在本发明的优选实施例中,任务语言是按照本文的附录B中的代理任务语言准则来编写的。
任务语言编译程块120是一个两遍编译块。在第一遍时,所用的流程中包括有一个输入流处理器164、一个表达式分析块166、一个类别相关的分析块122、一个保存文件缓存器171、第二遍程块174和类别相关的语法分析块(所示出的有类别相关语法分析块123、一个现行的类别相关的语法分析块167和一个类别相关的语法分析块168)。由于第一遍扫描的结果,建立起一个暂时文件176。
类别无关的语法分析块122分析类别无关的任务语言命令。在系统内运行的每个计算机应用还有它执行的特殊命令。因此,对每个计算机应用都开发了一个单独的类别相关的语法分析块。此语法分析块能分析它为之开发的计算机应用将执行的命令。随着计算机应用加入系统或从系统删去时,类别相关的分析块可加入到任务语言编辑块120或从其中删去。
此外,图上还示出有一个CBT语法分析块125。当执行CBT时,CBT语法分析块被用来分析由代理器108运行而产生的码。
当编译开始时,类别无关的语法分析块122从输入流处理器 164要求一个标记。输入流处理器164对任务语言文件131进行扫描并产生标记。然后,类别无关的语法分析块122完成下列几件事之一。类别无关的语法分析块122可能产生送至保存文件缓存器171的P码。如果类别无关的语法分析块122期待的下一个标记是一个表达式,则类别无关的语法分析块122将调用一个程序Makeexpression(完成表达式)(),它调用表达式语法分析块166。表达式语法分析块166从输入流处理器164请求标记直至表达式结束。然后表达式语法分析块166产生P码以送至保存文件缓存器171,再保存在暂时文件176中。此外,表达式语法分析块166产生一个表达式标记,此记号被回送至输入流处理器164。输入流处理程序164在类别无关的语法分析块122要求此表达式时,将此表达式送至类别无关的语法分析块122。
由于执行一个Focus命令的结果,一个特定的类别相关的语法分析块将具有优先权。因此,在它的语法分析环中,类别无关的扫描块122a将调用当时有Focus命令的计算机应用的类别相关的语法分析块。此类别相关的语法分析块将从输入流处理器164请求标记,直至它接收到一个类别相关的命令,从而由类别相关的语法分析块调用的语义程序转换为外部命令形式,或直至类别相关的语法分析块确定它不能分析所接收到的表达式。如果类别相关的语法分析块遇到一个表达式,它可通过调用Makeex-pression()来调用表达式语法分析块166。如果类别相关的语法分析块不能分析它所接收到的标记,则类别相关的语法分析块回送一个出错,类别无关的语法分析块将试图分析这些标记。
一个Focus    OFF命令将立即使类别无关的语法分析块122分析所有的命令,而不将它们送往一个类别相关的语法分析块。当分析一组类别无关的命令时,这样做可避免类别相关的语法分析块软件不必要的运行,从而节省为编译任务语言所需的计算时间。
CBT编译程序指令使得CBT编译程序的一个标志为“通”或“断”。CBT编译程序标志确定CBT语法分析块125是否可被调用来分析命令。分析的优先次序将在下文讨论。
命令将先被送至有Focus命令的任何类别相关的语法分析块。如果没有具有Focus命令的类别相关的语法分析块,或者如果具有Focus命令的类别相关的语法分析块不能分析此命令,则只要CBT编译程序的标志为“通”,该命令将送到CBT语法分析块125进行分析。如果CBT编译程序的标志为“断”,或者CBT语法分析块125不能分析此命令,则此命令将被类别无关的语法分析块122所分析。
图6所示为一个INSTRUCTION目标可以运行的计算机18。还示出有一个监视器14,一个鼠标20和一个键盘19。图7所示为带有按钮27、28及鼠标20。
图8为类别无关的语法分析块122和类别相关的语法分析块之间的数据流,类别相关的分析块示出的是语法分析块123和124。为了集中讨论语法分析块之间的关系,在图8的说明中,扫描块122a对表达式语法分析块166的调用不予考虑。
同样,图上画出CBT语法分析块125和CBT语法分析块125的类别相关的扫描块125a。当CBT标志为“通”时,如上所述,分析块的优先顺序为带有Focus命令的类别相关的语 法分析块,然后是CBT语法分析块,最后为类别无关的语法分析程序122。在以下的讨论中,为便于说明,假定CBT标志为“断”。
当类别无关的语法分析块122准备好接收一个标记时,它调用一个扫描块122a。扫描块122a检查是否有一个Focus命令相对一个计算机应用。如果在一个计算机应用中没有一个Focus命令扫描块122a就调用输入流处理器164,它向扫描块122a回送一个标记。扫描块122a再将此标记回送给类别无关的语法分析块122。
如果在一个计算机应用中有一个Focus命令,该计算机应用的类别相关的语法分析块具有优先权并被调用。例如,当有Focus于计算机应用的语法分析块123时,语法分析块123通过一个类别相关的扫描器123a调用扫描块,122a。扫描块122a检查它的状态,并确认它正在被一个类别相关的语法分析块所调用,因此它不递归地调用另一个类别相关的语法分析块。扫描块122a调用输入流处理器164,它向扫描块122a回送一个标记。扫描块122a通过类别相关的扫描块123a向类别相关的语法分析块123回送此标记。虽然本发明的执行过程中包括有相关的扫描块123a,在其它的执行过程中也可能没有相关的扫描块123a,语法分析块123可直接调用扫描块122a。
只要相关的语法分析块123能分析它所接收的标记,相关的语法分析块123就能继续通过相关的扫描块123a请求标记。用这些标记,相关的语法分析块将调用语义程序,后者将产生插入 在P码中的类别相关的外部指令。当相关的语法分析块123不能分析它所接收的一个标记时,相关的语法分析块将向扫描块122a回送一个出错。扫描块122a然后再调用输入流处理器164并从它接收相关的语法分析块123不能分析的标记。此标记被回送到无关的语法分析块122。无关的语法分析块122分析此标记,调用语义程序来产生P码供代理器108执行。下一次无关的语法分析块122从扫描块122a请求一个标记,扫描块122a将重新调用相关的语法分析块123直至存在一个Focus    OFF命令或在另一个计算机应用上有一个Focus命令。
当Focus命令是对相关的语法分析块124的计算机应用上时,扫描块122a将调用相关的语法分析块124。相关的语法分析块124调用一个相关的扫描块124a并按类似于相关的语法分析块123进行工作。
图5中所示的保存文件缓存器171从类别无关的语法分析块122和从表达式分析块166接收P码,也从类别相关的语法分析块接收插入P码中的外部形式命令。保存文件缓存器171将此信息贮存在一个暂时文件176中。第二遍程序174接收贮存在暂时文件176中的这个P码和外部形式命令并完成内务操作,如确定地址等,以便产生P码文件121。
在图9中,计算机应用100被包含于(例如)一个目标“NewWave    Office”中。窗口300为用户与目标“NewWave    Office”之间的接口。为了培训用户如何使用目标“NewWave    Office”,一个INSTRUCTION应用200与计算机应用100同时运行。INSTRUCTION应用200 被包含在一个INSTRUCTION目标中,中,INSTRUCTION应用200与其它计算机应用或系统在设计上相似。如图所示,INSTRUCTION应用200有一个动作处理器201和一个命令处理器202。
代理器108与INSTRUCTION应用200的相互作用与系统中其它计算机应用相同。例如,代理器108通过一个数据通道213与动作处理器201相互作用进行询问。代理器108通过一个数据通道214在动作处理器201和命令处理器202之间相互作用,以便监视应用200的活动。代理器108通过一个数据通道215与命令处理器202相互作用以便使命令为INSTRUCTION应用200所执行。代理器108通过一个数据通道216与命令处理器202相互作用以便处理在INSTRUCTION应用200中执行一项命令的出错。代理器108通过一个数据通道217与命令处理器202相互作用,以便记录INSTRUCTION应用200的执行和接收一个命令结束的通知。
INSTRUCTION应用200在执行计算机应用100的命令时与用户相互作用,例如通过显示对话区(如窗口302)的方式进行。INSTRUCTION应用200还可通过使用其它方法(如话音)来通信。
图10~17表示的是一个简明的CBT对话过程。在对话期间,用户被告知如何打开一个档案文件“Fred”,在图10中它用一个图象301来表示。在图10上还示出一个图象304,它表示代理器108。图象309表示一个目标“Lesson    Task” (“课程任务”),它包括如下表1所示的任务语言文件的已编译的P码形式。任务语言文件的编译的P码形式被代理器108所运行。如果目标“Lesson    Task”(“课程任务”)在编译之前已被打开,则可以对任务语言文件的P码形式的源码进行编辑。
一个图象305表示一个被称为“Lesson    Instruction”(“课程说明”)目标,它包括被称为对话数据的数据,含有向用户显示数据的库程序的INSTRUCTION应用200。目标“Lesson    Instruction”(“课程说明”)在被代理器108命令时显示此数据。受鼠标20控制的箭头303在图上指示图象309。
当箭头303处于图象309上时,用户可通过按钮27来选择目标“Lesson    Task”(“课程任务”)。同时,图象309最亮,如图11所示。图象309的阴影307将跟随着箭头303。当阴影307被置于图象305上、并且按钮27被释放,则图象、309将从窗口300消失,如图12所示,而代理器108将开始运行包含在目标“Lesson    Task”(“课程任务”)中的任务语言程序。下表1中给出的例子是包含在Lesson    Task(“课程任务”)中的该任务语言程序的源程序。
表1
1    task
2    cbt    on
3    OPEN#=1
4    SELECT#=211
5    focus    on    office    "NewWave    Office"
6    select    instruction    "Lesson    Instruction"
7    open
8    focus    on    instruction    "Lesson    Instruction"
9    show_window    1
10    on    command    do    process_button
11    button_flag#=0
12    set    command    on
13    while    button_flag#=0
14    wait
15    endwhile
16    set    command    off
17    hide_window    1
18    show_window    2
19    on    command    do    process_open
20    open_flag#=0
21    set    command    on
22    while    open_flag#=0
23    wait
24    endwhile
25    set    command    off
26    hide_window    2
27    show_window    3
28    on    command    do    process_button
29    button_flag#=0
30    set    command    on
31    while    button_flag#=0
32    wait
33    endwhile
34    set    command    off
35    hide_window    3
36    end    task
37
38    procedure    process_button
39    if    sys_cmdclass()="INSTRUCTION"
40    button_flag#=1
41    endif
42    ignore
43    endproc
44
45    procedure    process_open
46    if    sys_cmdclass()="INSTRUCTION"
47    do    demo
48    open_flag#=1
49    ignore
50    else
51    cmd#=sys_command()
52    if    cmd#=SELECT#
53    class#=sys_commandparm(1,0)
54    title#=sys_commandparm(1,len(class#))
55    execute
56    else
57    if    cmd#=OPEN#    and    class#="FOLDER"and
title#="Fred"
58    open_flag#=1
59    execute
60    else
61    ignore
62    endif
63    endif
64    endif
65    endproc
66
67
68    procedure    demo
69    focus    on    office"NewWave    Office"
70    object_region#=where_is("FOLDER","Fred")
71    point    to    center(object_region#)
72    double_click    left    button
73    pause    5
74    endproc
在表1中的任务语言是通过使用一个类别无关的语法分析块122、一个用于目标“NewWave    Office”的类别相关的语法分析块、一个用于目标“Lesson    Instruction”(“课程说明”)的类别相关的语法分析块和一个CBT分析块125,由任务语言编译块120所编译。例如,第5行中的“Focus”命令由类别无关的语法分析块122所分析,第6行中的“Select    Instruction”(选择指令)命令是由目标“NewWave    Office”的类别相关的语法分析块所分析,第9行中的“Show-Wnidow”(显示窗口)命令由目标“Lesson    Instruction”(“课程说明”)的类别相关的语法分析块所分析,第71行中的“Point    to    Center”(指向中心)命令由CBT语法分析块125所分析。
表1中码字的第1行含有字“task”(任务),因为每个任务语言程序的第1行都含有指令“task”。同样,表1的码的第36行含有字“end    task”(任务结束),表示这是任务程序中的最后一条指令。
第2行的指令将CBT编译块标记“通”。第3和4行的指令 设定变量。第5行的指令将Focus置于目标“NewWave    Office”上。第6行和第7行的指令将被代理器108送至目标“NewWave    Office”。当被目标“NewWave    Office”执行时,这些指令将使目标“Lesson    Instruction”(“课程说明”)被选择和打开。当目标“Lesson    Instruction”(“课程说明”)被打开时,它运行INSTRUCTION应用200。在图13上显示最亮的图象305表明选择了“Lesson    Instruction”(“课程说明”)。
第8行的指令将Focus命令置于目标“Lesson    Instruction”(“课程说明”)上。第9行的指令,当由代理器108执行时,将被代理器送往目标“Lesson    Instruction”(“课程说明”)。当由目标“Lesson    Instruction”(“课程说明”)执行时,此指令将在窗口300的顶部打开窗口302,如图14所示。窗口302告诉用户关于如何打开一个目标。当用户读完窗口302后,他利用鼠标将箭头置于一个按钮308上,再按压按钮27。实质上代理器108等待用户选择按钮308,其中标有“继续”字样。代理器108将使其它每个命令都被忽略。代理器108是通过监视被其它运行的目标所执行的计算机应用和截听被执行之前的命令实现这一点的。为此所需的程序将在下文中介绍。
当用户读窗口302时,第10~14行中的指令被代理器108所执行。第10行中的指令确定一个监视过程。在第11行中,变量“Button-flag”(按钮-标志)为清“零”。第12行的指令“接通命令”接通监视。当监视接通时,在用户执行任何命令时,过程“Process-button”将被执行。这相应于在一个计算机应用中在一 个动作处理器和一个命令处理器之间沿着一条数据通路传送任何命令,例如,沿着计算机应用100的动作处理器101和命令处理器102之间的数据通道114,这称作命令陷阱。因为代理器108能监视“NewWave    Office”计算机应用100和INSTRUCTION应用200,故能产生命令陷阱。当代理器产生一个命令陷阱时,从动作处理器101送至命令处理器102的命令和动作处理器201送至命令处理器202的命令被代理器108所截听,从而使目标“NewWave    Office”和“课程1”被代理器108所监视。从这二个目标来的语义命令在执行之前被监听,并形成一个命令陷阱。
过程“Process-button”表示在表1第38~43行,函数“Sys-cmdclass()”(系统命令类别)回送一个从用户接收此命令的目标的类别字符串。在第39行中,目标为INSTRUCTION应用200,也就是说,如果由于用户已把箭头303置于按钮308上并按压按钮27使过程“Process    button”被调用,则函数“Syo-cmdclass()”将回送字符串“INSTRUCTION”,并且第40行中变量“Button-flag#”被置成“1”。在另一方面,如果任何其它的目标从用户接收一个命令,例如,如果用户把箭头303置于窗口300并按压按钮27,则目标的类别字符串将被回送且不等于“INSTRUCTION”,并且变量“Button-flag”将不置为“1”。
在第42行的“Ignore”(忽略)命令表明,不管那个目标(即不管是目标“NewWave    Office”或“课程1”)回 送从用户来的命令,该命令本身被忽略。也就是说,不管命令来自“NewWave    Office”计算机应用100或INSTRUCTION应用200,该命令不被回送至命令处理器102或命令处理器202作进一步处理。反之,通过把命令设置API-NO-CMD而回送一个NULL(零)命令。
在第12行中接通监视后,代理器执行第13行中的命令,进入一个While(短时)循环(指令13~15),等待用户用箭头303选择按钮308。处于此循环中,当在一个计算机应用中产生任何命令时,过程“Process-button”运行。在过程“Process-button”结束时,如果Button-flag#=0,代理器108继续处于如第13~15行中的指令所确定的循环中。如果Button-flag#=1,代理器108继续执行程序,从第16行的指令开始。
在第16行中,监视被“断”。第17和第18行的指令被代理器108送至目标“Lesson    Instruction”(“课程说明”)以便由INSTRUCTION应用200执行。这二个指令的执行使INSTRUCTION应用200从显示器14上移去窗口302和显示窗口311,如图15所示。第19行的指令被代理器108执行时,重新定义监视器过程为过程“Process-open”。
在第20行,变量“Open-flag#”(打开标记)被置为“0”。在第21行,指令“Set    Command    on”把监视“接通”,使命令在被系统中运行的任何目标执行之前,被代理器108所截听。
第22~24行中的指令通知代理器108在继续执行程序之前等待,直至过程“Process-Open”中的变量“Open-flag”被 置为“1”。当在一个计算机应用中产生一个命令时,由于用户动作的结果,过程“Process-open”被运行。在结束时,如果Open-flag#=0,代理器继续处于由第22~24行所确定的循环中。如果Open-flag#=1,代理器108继续执行程序,从第25行的指令开始。
过程“Process-Open”在第45~65行中表示。如果在第46行中,函数“Sys-cmdclass()”回送“INSTRUCTION”,这表示它是曾试图执行一个命令的INSTRUCTION应用200。这意味着用户已选择按键314,请求一个演示。因此在第47行,过程“demo”(演示)被调用。在第48行,变量“Open-flag#”被置“1”。在第49行,代理器108被指示忽略正被监视的命令。
过程“demo”表示在第68~74行,它向用户表明如何打开档案文件“Fred”。第68行的指令把“Focus”置于目标“NewWave    Office”。询问函数“Where-is”(那里是…)(“档案文件”,“Fred”)询问目标“NewWave    Office”在它的显示上(即窗口300)那里是档案文件Fred。当代理器108执行此指令时,代理器发送一个API-INTERROGATE-MSG信息给目标“NewWave    Office”,后者以档案文件Fred在窗口300的位置座标作出响应。
在第70行的指令中,变量“Object-negiob”(目标范围”被置为由函数“Where-is”(“FOLDER”,“Fred”)所回送的值。第71和72行的指令产生有顺序的用户动作级别的信息,它通过用户动作接口送至目标“NewWave    Office”供执行。 如图16所示第71行的指令使箭头303移动以指向档案文件Fred的中心。在图16中,箭头303的运动是由表示在运动途径310的起点和终点上的箭头303所表示。在第72行,一个用户动作(相当于按压鼠标20的按钮27二次)被送至目标“NewWave    Office”进行处理。在第73行,一个5秒的暂停使用户有机会去对他所看到的作出响应。
总的来说,存在三种类型的询问功能。功能“Where-is()”具有一个目标的类别和标题的标识符作为参数,并要求在监视器14的图象显示器内的长方形区域代表该目标。功能“Whats-at()”(什么在那里())有显示器上的一个点作为功能,并要求在该点由一个图象所表示的任何目标的同性。功能“Status()”(状态)具有一个目标的标识符作为一个功能,并要求该目标的状态,如该目标是否有Focns命令或是否有一个供该目标用的打开的窗口。每一个这类功能的指令,当被代理器108执行时,会导致从具有Focus的目标请求信息的代理器发送一个API-INTERROGATE-MSG信息。
询问信息的使用使得演示程序的使用有很大的灵活性。由于采用一个询问功能,演示程序就能定位一个目标,确定那些目标处于特定位置上,并确定一个目标的状态。这些询问功能的采用可使演示程序执行这样一项演示,即使该演示程序开始并不知道在演示中使用的目标的位置、标识符和/或状态。
如果用户想打开档案文件Fred,而不是接收一个演示,则过程“Process-open”的51~64行的指令将使代理器108在执行由“NewWave    Office”计算机应用100产生的命令之前先监 视这些命令。用户所产生的一个命令,当被从动作处理器101送至命令处理器102时被截听。
第51~64行中的指令使用户能以多种方式打开档案文件Fred。例如,用户可以把箭头303置于档案文件Fred处并二次按压按键27,或者,用户可以选择档案文件Fred并从一个下移的菜单中选用命令“Open”。不管用户选用何种打开档案文件Fred的方法,两个命令必须依次发生。首先,在用户已选用档案文件Fred的情况下,“选择”命令必须回送到命令处理器102。当发生这种情况时,在第53行中的Class#被赋以值“FOLDER”(档案文件),第54行中的Title#被赋以值“Fred”,此“选择”命令在第55行执行。其次,一个“Open”命令必须回送到命令处理器102供执行。当一个“Open”命令被回送时,并且,如果Class#=Folder和Title#=Fred,则第58行中的Open-flag#将被置“1”,此Open命令将在第59行执行。
所有其它的命令被代理器108所忽略。当用户成功地打开档案文件Fred时,窗口319出现,如图17所示。
在第25行,监视被关闭。第26和27行的指令被代理器108送至目标“Lesson    Instruction”(“课程说明”)供执行。执行这些指令时,窗口311从显示器14移去,窗口316出现,如图17所示。在第28行的指令重新定义监视过程为过程“Process-button”,使得在用户执行任何命令时,过程“Process-button”被执行,但是仅当监视被接通时才如此。
在第29行,变量“button-flag#”被置“0”。在第30行,指令“Set    Command    on”(接通命令)使得监视接通,以 便在任何一个计算机应用中产生一个命令时也产生一个命令陷阱。
只要button-flag#保持为0,代理器108就循环执行第31~33行之间的指令。在第32行指令处,代理器108等待从任何计算机应用截听来的一个命令。当一个来自INSTRUCTION应用200的命令被截听时,button-flag#被置为“0”,代理器108退出循环,继续执行第34行的指令。
在第34行,监视被关闭。第35行的指令被代理器108送至目标“Lesson    Instruction”(“课程说明”)执行。执行此指令时,窗口316从显示器14移去。
附录A含有API130的介绍(程序员使用指南第4章)。
附录B为开发代理任务语言的准则(代理任务语言准则)。
附录C含有任务语言详细说明。
附录D含有API-INTERROGATE-MSG介绍。
附录E为一篇题为“可扩展的代理任务语言”的论文。
附录F含有HP公司的内部文件,题为“在NewWave上实施以计算机为基础的培训的工具和策略”。
附录G含有一篇刊登在HP公司杂志上的文章,题为“以计算机为基础的培训设施(“Cousteau”)”。

Claims (10)

1、一种计算系统,它包括:
一个监视器,
一个在监视器上显示信息的第一应用目标,它对用户采取的语法动作作出响应,第一应用目标包括:
第一动作处理器,用于接收表示用户采取的语法动作的信息和按语法动作产生语义命令;
第一命令处理器,用于从第一动作处理器接收语义命令并执行该语义命令;
一个对用户采取的语法动作作出响应的INSTRUCTION目标,它在监视器上显示有关第一应用运行的信息;
一个代理器,它与第一应用目标和INSTRUCTION目标相连接,用于向INSTRUCTION目标发送语义命令以便向该INSTRUCTION目标说明在监视器上显示哪个信息,以及截听从第一动作处理器向第一命令处理器发送的语义命令。
2、一种按照权利要求1的计算系统,其中INSTRUCTION目标包括:
INSTRUCTION动作处理器,用于接收表明由用户采取的语法命令的信息并按语法动作产生语义命令;
INSTRUCTION命令处理器,用于从INSTRUCTION动作处理器和代理器接收语义命令并该执行语义命令。
3、在一种具有一个监视器、一个应用目标、一个INSTRUCTION目标和一个代理器的计算系统中,一种向用户提供以计算机为基础的培训方法,该方法由以下步骤组成:
(a)运行应用目标;
(b)把语义命令自代理器发送至INSTRUCTION目标,此命令控制INSTRUCTION目标以显示有关该计算机应用的信息;
(c)利用INSTRUCTION目标,显示有关此应用目标的信息;以及,
(d)在应用目标执行语义命令之前,利用代理器截听由应用目标产生的语义命令。
4、按照权利要求3的方法还包括下述步骤:
(e)将由应用目标执行的语义命令从代理器发送至应用目标。
5、按照权利要求3的步骤还包括下述步骤:
(f)在INSTRUCTION目标执行语义命令之前,用代理器截听由INSTRUCTION目标产生的语义命令。
6、在一种有一个监视器和一个代理器的计算机系统中,一种提供演示的方法,它包括操纵在一个第一目标的窗口内所显示的一个个图形接口单元,这种方法包括下述步骤:
(a)从代理器发送一个询问信息至第一目标,要求第一向代理器发送有关图形接口单元的信息;
(b)从第一目标向代理器发送此信息;以及,
(c)进行演示。
7、按照权利要求6的一种方法,其中,询问信息包括图形接口单元的同一性,以及此信息包括图形接口单元在窗口的位置。
8、按照权利要求6的一种方法,其中,询问信息包括图形接口单元的同一性,以及此信息包括由图形接口单元所表示的第二目标的状态信息。
9、按照权利要求6的一种方法,其中,询问信息包括图形接口单元的位置,以及此信息包括图形接口单元的同一性。
10、按照权利要求6的一种方法,其中,步骤(c)包括如下子步骤:
(c1)从代理器向INSTRUCTION目标发送信息,命令INSTRUCTION目标显示对话数据;以及,
(c2)由INSTRUCTION目标在监视器上显示对话数据。
CN89102124A 1988-07-27 1989-04-10 一种向用户提供培训的用于多种计算机应用的软件代理 Expired CN1018207B (zh)

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
CN1039912A CN1039912A (zh) 1990-02-21
CN1018207B true CN1018207B (zh) 1992-09-09

Family

ID=22843592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN89102124A Expired CN1018207B (zh) 1988-07-27 1989-04-10 一种向用户提供培训的用于多种计算机应用的软件代理

Country Status (6)

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

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
AU695912B2 (en) 1994-06-07 1998-08-27 Skillsoft Ireland Limited A 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
CN1039912A (zh) 1990-02-21
JPH0273392A (ja) 1990-03-13
JP3361803B2 (ja) 2003-01-07
AU3825989A (en) 1990-02-01
EP0352908A3 (en) 1991-01-30
KR900002161A (ko) 1990-02-28
EP0352908A2 (en) 1990-01-31
CA1323702C (en) 1993-10-26
AU631128B2 (en) 1992-11-19

Similar Documents

Publication Publication Date Title
CN1423194A (zh) 语法创建系统
US5317688A (en) Software agent used to provide instruction to a user for a plurality of computer applications
US6434629B1 (en) Computing system which implements recording and playback of semantic commands
KR101076867B1 (ko) 콘텐츠를 생성하기 위한 자동 이미지 캡처
CN1150488A (zh) 可训练的用户接口翻译器
CN1530817A (zh) 有效内容的向导:任务和结构内容的执行
CN1749960A (zh) 具有改进的醒目性的活动内容向导执行
CN1310819A (zh) 为选定的应用数据生成并显示描述性注释的方法和工具
CN1595398A (zh) 选择改良多个候补译文所生成的最优译文的机器翻译系统
CN1821956A (zh) 用现有内容生成用于执行任务的活动内容向导可执行文件
CN1661598A (zh) 协作服务器,协作系统,及协作服务器和系统用方法和程序
CN1592886A (zh) 通过虚拟线程执行计算机多任务的方法及装置
CN1369834A (zh) 语音转换设备、语音转换方法、程序以及媒介
CN101048728A (zh) 文档管理系统及其方法
CN1773508A (zh) 把源文档转换成目标网页文件的方法
JPH0628080A (ja) コンピュータシステム及びそれを動作させる方法
CN1949187A (zh) 一种程序调测系统及方法
CN101038550A (zh) 信息处理装置和方法
CN100345105C (zh) 办公应用程序中用于提供内容相关帮助信息的方法和系统
CN1841328A (zh) 脚本语言的自动机方法
CN1991765A (zh) 手持终端应用程序的开发装置和方法
KR970007760B1 (ko) 클래스 독립 파서 및 다수의 클래스 종속 파서를 갖고 있는 모듈러 컴파일러
CN1519753A (zh) 程序、字符输入编辑方法、装置及记录媒体
CN1026629C (zh) 由单一屏面定义文件生成多版屏面
CN1018207B (zh) 一种向用户提供培训的用于多种计算机应用的软件代理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C13 Decision
GR02 Examined patent application
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee