|
Claims  |
|
|
We claim:
1. An interactive online tutorial system product operable in conjunction with a digital processing apparatus for providing instruction in the use of a software product operating on said
digital processing apparatus, the data processing apparatus including a CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video
display, and a multitasking operating system, said tutorial system comprising:
a data storage medium operable in conjunction with said digital processing apparatus;
a tutorial control module encoded on said medium having a window control interface;
a lesson control file encoded on said medium providing input to said tutorial control module;
an information presentation module encoded on said medium and adapted for communication with said tutorial control module via said window control interface;
a lesson display file encoded on said medium providing input to said information presentation module;
first display control means provided by said tutorial control module, said window control interface and said information presentation module for generating a tutorial window in a first portion of the video display;
second display control means provided by said tutorial control module for generating a product window in a second portion of the video display concurrently with said tutorial window;
application execution means provided by said tutorial control module for commencing execution of said software product in said product window;
tutorial presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of tutorial text panels,
said tutorial text panels including one or more lesson panels and one or more step panels corresponding to each lesson panel, said lesson panels and step panels displaying instructional text illustrating a predetermined sequence of operations to be
performed on said software product;
lesson control means provided by said tutorial control module for dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial text panels;
tutorial panel linking means provided by said information presentation module and said lesson control file for linking said lesson panels through a series of sequential links and for linking said lesson panels and their corresponding step panels
through a series of hierarchical links; and
tutorial panel selection means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for selectively activating from a lesson or step panel a link to another
lesson or step panel in order to display the panel so linked.
2. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing pointers to previous and subsequent lesson panels that are linked sequentially to the lesson panels.
3. The tutorial system of claim 2 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons.
4. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing a list of corresponding step panels that are linked hierarchically to the lesson panels.
5. The tutorial system of claim 4 wherein the hierarchical links between lesson panels and associated step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.
6. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing a list of corresponding step panels that are linked hierarchically to the lesson panels and pointers to subsequent
and previous lessons that are linked sequentially to the lesson panels.
7. The tutorial system of claim 6 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons and wherein the hierarchical links between lesson
panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of associated step panels.
8. The tutorial system of claim 1 wherein said tutorial presentation means further include means for generating in said product window a plurality of concept panels, wherein said panel linking means include means for generating a series of
parallel links between said concept windows and corresponding lesson panels, and wherein said panel activation means include means for selectively activating from a lesson panel a link to one of said concept panels in order to display the linked panel.
9. The tutorial system of claim 8 wherein said tutorial presentation means include means for generating lesson panels containing descriptive information concerning the panel.
10. The tutorial system of claim 9 wherein the links between the lesson panels and concept panels are hypertext links which are activated by selecting hypertext words contained in the lesson panel descriptive information.
11. The tutorial system of claim 1 wherein links between panels include hypergraphic and hypertext links which are activated using icons and keywords contained in said panels.
12. The tutorial system of claim 1 further including means for selectively displaying help information in said product window.
13. An interactive tutorial method for providing instruction in the use of a software product operating concurrently in a data processing device, the data processing device including an instruction processing unit or CPU, a data storage
resource, an input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video display, said tutorial method comprising the steps of:
providing a tutorial control module having a window control interface;
providing a lesson control file providing input to said tutorial control module;
providing an information presentation module in communication with said tutorial control module via said window control interface;
providing a lesson display file providing input to said information presentation module;
generating a tutorial window in a first portion of the video display using said tutorial control module, said window control interface and said information presentation module;
generating a product window in a second portion of the video display concurrently with said tutorial window using said tutorial control module;
commencing execution of said software product in said product window using said tutorial control module;
generating a series of tutorial display panels including lesson panels and corresponding step panels using said tutorial control module, said window control interface, said information presentation module and said lesson display file, said lesson
panels and step panels displaying instructional text illustrating a predetermined sequence of operations to be performed on said software product;
dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial display panels using said tutorial control module;
generating a series of hierarchical links between lesson panels and corresponding step panels and a series of sequential links between sequential lesson panels using said information presentation module and said lesson display file;
displaying a first tutorial panel in said tutorial window using said information presentation module and said lesson display file; and
in response to selective activation of a link from said first tutorial panel to another panel linked thereto, displaying the panel so linked in said tutorial panel using said tutorial control module, said window control interface, said
information presentation module and said lesson display file.
14. The tutorial method of claim 13 wherein said lesson panels are provided with pointers to previous and subsequent lesson panels that are linked sequentially thereto.
15. The tutorial method of claim 14 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons.
16. The tutorial method of claim 13 wherein said lesson panels are provided with a list of corresponding step panels that are linked hierarchically thereto.
17. The tutorial method of claim 16 wherein the hierarchical links between lesson panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.
18. The tutorial method of claim 13 wherein said lesson panels are provided with a list of corresponding step panels that are linked hierarchically thereto, and wherein said lesson panels are further provided with pointers to subsequent and
previous lessons that are linked sequentially thereto.
19. The tutorial method of claim 18 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons and wherein the hierarchical links between lesson
panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.
20. The tutorial method of claim 13 wherein the links between panels include hypergraphic and hypertext links which are activated using icons and keywords contained in said panels.
21. The tutorial method of claim 13 further including the steps of providing a plurality of concept panels, providing a series of parallel links between the concept windows and corresponding lesson panels, and, in response to the selective
activation of a parallel link between one of said lesson panels and an corresponding concept panel, displaying the linked panel in said product window.
22. The tutorial method of claim 21 wherein said lesson panels are provided with descriptive information concerning the panels.
23. The tutorial method of claim 22 wherein the links provided between the lesson panels and concept panels are hypertext links which are activated by selecting hypertext words contained in the lesson panel descriptive information.
24. The tutorial method of claim 13 further including the step of selectively displaying help information in said product window.
25. An interactive online tutorial system for providing instruction in the use of a software product operating on a data processing device, the data processing device including an instruction processing unit or CPU, a data storage resource, an
input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video display, said tutorial system comprising:
a tutorial control module having a window control interface;
a lesson control file providing input to said tutorial control module;
an information presentation module in communication with said tutorial control module via said window control interface;
a lesson display file providing input to said information presentation module;
first display control means provided by said tutorial control module, said window control interface and said information presentation module for generating a tutorial window in a first portion of the video display;
second display control means provided by said tutorial control module for generating a product window in a second portion of the video display concurrently with said tutorial window;
application execution means provided by said tutorial control module for commencing execution of said software product in said product window;
lesson panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of lesson panels, said
lesson panels including a descriptive summary in a listing of steps to be taken during the lesson, said lesson panels displaying instructional text representing a predetermined sequence of operations to be performed on said software product;
step panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of step panels
representing steps listed in corresponding lesson panels, said step panels including a listing of actions to be taken during the step, said step panels displaying instructional text representing a predetermined sequence of operations to be performed on
said software product;
concept panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said product window a plurality of concept panels
representing conceptual information pertaining to corresponding lesson panels;
lesson control adjustment means provided by said tutorial control module for dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial text panels;
first panel linking means provided by said information presentation module and said lesson display file for linking sequential lesson panels through a series of sequential links;
second panel linking means provided by said information presentation module and said lesson display file for linking corresponding lesson panels and step panels through a series of hierarchical links;
third panel linking means provided by said information presentation module and said lesson display for linking sequential step panels through a series of sequential links;
fourth panel linking means provided by said information presentation module and said lesson display file for linking corresponding lesson panels and concept panels through a series of parallel links; and
tutorial panel selection means provided by said tutorial control module, said window control interface, said information presentation facility and said lesson display file for selectively activating from a lesson or step panel a link to another
lesson panel or step panel or concept panel in order to display the panel so linked. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates generally to tutorial systems for providing instruction in the operation of software products. More particularly, the invention pertains to online tutorial systems wherein software product training is provided
interactively by guiding the user through one or more examples of product operation. Still more particularly, the invention involves a computer implemented, interactive tutorial system providing online instruction, monitoring and assistance in
conjunction with a contemporaneously operating software product.
As software developers strive to provide ever more versatile and powerful products, the task of becoming proficient in the use and implementation of such products becomes increasingly difficult. Even for those users who consider themselves
computer "literate", days and sometimes weeks of instruction may be required before the user is able to take full advantage of functional capabilities offered by many software products. In such cases, the quality of the instructional materials
accompanying the software may be nearly as important as the product in ensuring ultimate user satisfaction.
Software instructional materials for prior art products fall into two general types. On one hand are product documentation materials, such as printed manuals and online product description files. These materials provide textual descriptions of
operational features of the product. They may also include examples of product operations. Although documentation of this nature may be adequate for reference purposes, such materials are not particularly suitable for providing initial instruction in
the use of a product. Most users would rather use the product directly than spend hours reading ancillary instructional materials. Accordingly, a number of products follow a learn-by-doing approach using interactive tutorial materials, which represent
a second category of instructional materials.
Unlike product documentation materials, tutorials provide instruction in a manner which gives the user an opportunity to gain practical experience in the context of solving actual problems. Both online and workbook-based tutorials have been
proposed wherein the user is guided through a presentation of one or more examples or problems in a sequence of lessons. In workbook-based systems the student performs specified actions on the product in accordance with a lesson plan set forth in a
printed workbook. Online systems work in a similar fashion except that the tutorial lessons are displayed sequentially on-screen. In addition, online tutorials typically include the capability of monitoring student actions and advising when a mistake
has been made. Moreover, if the user requires assistance, a preprogrammed demonstration can be requested to perform the correct action(s) to be taken. For these reasons, online tutorials represent the most promising avenue for providing instruction in
the operation of software products.
Most prior art online tutorial systems allow users to interact with a simulation of the software product of interest. This approach to tutorial instruction is both inefficient and costly. The software designer must not only code and debug the
application product itself but also the duplicative simulation code for the tutorial. The simulation code must be periodically updated and maintained as the product changes, all at additional time and cost. The effectiveness of simulation tutorials as
a teaching vehicle is also open to question. Simulation tutorials provide only limited product interaction because the simulations can only emulate the user interface of the product and do not have full capabilities in processing user actions. The user
is not afforded direct experience with the product and thus may be deprived of a full and accurate understanding of product characteristics. Because only a partial view of the product is provided, users are unable to explore other portions of the
product or learn on their own beyond what the tutorial covers.
As a solution to the inefficiencies of simulation tutorials, several systems have been proposed wherein online tutorial instruction proceeds in conjunction with the operation of the product to be taught. The prior art includes interactive
tutorials implemented in single task operating systems in which special hardware or software subsystems are required to control the environment and provide tutorial information. This special hardware and software includes such things as interrupts
between the user and operating system, processing outside the operating system, and external information presentation hardware. As a result, the flexibility and efficiency of these tutorial products is relatively limited. For example, the information
presentation function in many prior art tutorial systems is provided in a strict top down sequence which must be followed in the order set forth. No provision is made for selectively controlling the level of tutorial information detail presented as the
student works through the lesson. In other cases, the input monitoring function of prior art tutorial systems is unduly restrictive insofar as literal input response from the student is required. No provision is made for allowing the student to provide
input to the computer for performing tasks which are non critical to the product. Finally, in other prior art tutorial systems wherein a demonstration mode is provided, no provision is made for selectively controlling the duration of the automated
control sequence. Typically, the demonstration sequence encompasses a predetermined number of input steps.
The foregoing disadvantages of prior art tutorial systems stem in part from limitations inherent in single task operating systems and in user interface software that provides only limited control functionality. Recent advances in software
technology offer opportunities to create tutorial products with better user interfaces and more sophisticated program control without undue product complexity. The OS/2.TM. operating system from IBM Corporation provides a multi-tasking environment
wherein multiple products can be run concurrently within the operating system. The OS/2.TM. operating system includes a set of programming resources referred to as the application program interface (API). The API in turn provides a subset of support
routines collectively referred to as the Presentation Manager.TM. API, which allows applications to run in rectangular subdivisions of the display called windows. Each windowed application can share the screen with other windowed applications. Each
includes a graphics-based user interface to present visual controls for managing, via mouse and keyboard input, the application and files installed and running under OS/2. Each window further includes a display area for outputting application generated
text and graphics. The OS/2.TM. operating system also provides a message exchange network which permits applications to communicate with each other via message passing protocols.
Accordingly, there exists in an improved computing environment a need to provide an online tutorial system that is operable in conjunction with a software product of interest. This need offers a unique opportunity to improve upon prior art
tutorial systems by offering characteristics and features not provided by the tutorial systems noted above. The challenge for software developers is how to use these facilities to present information effectively.
SUMMARY OF THE INVENTION
The present invention is directed to a computer implemented tutorial system that supports direct user interaction with a software product concurrently executing with the tutorial. The tutorial system controls the resources of a data processing
device to present tutorial lesson information, monitor user input and provide input assistance upon request. In a preferred implementation of the invention, the data processing device includes an instruction processing unit or CPU, a data storage
resource, an input system for receiving input from a user via a mouse or keyboard, and an output system having a video display.
The tutorial system includes a display initialization system for generating a tutorial display window in a first portion of the video display and product display window in a second portion of the display. The tutorial system further includes a
tutorial presentation system for controlling the presentation of tutorial information in the tutorial display window in response to user input requests. Tutorial information is presented by the presentation system through a series of linked information
display panels including lesson panels, step panels and concept panels. Each lesson panel contains overview information and a menu of step selections. The lesson panels are linked sequentially to other lesson panels. They are also linked
hierarchically to step panels listed in the lesson panel menu such that the step panels may be selectively activated from within an associated lesson panel. Each step panel sequentially lists and describes one or more user input actions for controlling
the product to be learned. Each step panel is also linked sequentially to other step panels, which may be selectively activated from within an active step panel. A third category of information display is provided by a plurality of concept panels which
are linked to associated lesson panels and have a parallel relationship therewith. The information presentation system includes a control system responsive to mouse and keyboard inputs for selectively displaying lesson, step and concept panels.
In a further aspect of the invention, the tutorial system includes an input monitoring system for preventing erroneous input from reaching the concurrently executing software product. The monitoring system utilizes a lesson control file
containing input actions corresponding to actions described in the step panels of the information presentation system. These actions are arranged hierarchically and identified by a lesson, step and action numbers. The monitoring system compares user
inputs with expected input actions defined in the lesson control file. Upon a match, a message containing the appropriate input is allowed to reach the product. If a mismatch occurs, an error message is generated. The monitoring system may also
include one or more lookup tables containing input actions which the user could take that are not critical to the product. Such actions would include controlling the information presentation system or performing noncritical actions within the product
itself, such as window sizing and scrolling, or looking at pull down menus and other product features. These functions should not be inhibited by the tutorial monitoring system.
In a still further aspect of the invention, the tutorial system includes a user assistance system for selectively driving the product to perform the actions of a lesson. The user assistance system utilizes the lesson control file to send
messages to the product corresponding to input actions defined by the lesson control file. Because the lesson control file is structured hierarchically, the user can selectively drive the product to perform one or more actions, one or more steps or an
entire lesson. These actions can be requested from the display panels of the information presentation system, which include appropriate command icons that may be activated by mouse or keyboard input.
BRIEF DESCRIPTION OF THE DRAWING
The foregoing and other features, objects and advantages of the invention will be apparent from the following detailed description when considered in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram showing an interactive tutorial system constructed in accordance with the present invention;
FIG. 2 is a diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;
FIG. 3 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;
FIG. 4 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;
FIG. 5 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;
FIG. 6 is a block diagram showing the control of lesson information presentation in the tutorial system of FIG. 1;
FIG. 7 is a table showing selected command types and associated parameters from a lesson control file utilized by the tutorial system of FIG. 1;
FIG. 8 is a block diagram showing a lesson control table data structure utilized by the tutorial system of FIG. 1;
FIG. 9 is a block diagram showing message flow during the user input monitoring function performed by the tutorial system of FIG. 1;
FIG. 10a is a first portion of a diagram showing logic flow during the user input monitoring function performed by the tutorial system of FIG. 1;
FIG. 10b is a second portion of a diagram showing logic flow during the user input monitoring function performed by the tutorial system of FIG. 1;
FIG. 11 is a diagram showing message flow during the user assistance function performed by the tutorial system of FIG. 1;
FIG. 12a is a first portion of a diagram showing logic flow during the user assistance function performed by the tutorial system of FIG. 1; and
FIG. 12b is a second portion of a diagram showing logic flow during the user assistance function performed by the tutorial system of FIG. 1.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
OVERVIEW
The invention will now be described in detail in relation to a preferred embodiment and implementation thereof which are exemplary in nature and descriptively specific as disclosed. As is customary, it will be understood that no limitation of
the scope of the invention is thereby intended, and that the invention encompasses such alterations and further modifications in the illustrated device, and such further applications of the principles of the invention illustrated herein, as would
normally occur to persons skilled in the art to which the invention relates.
Thus, with reference now to FIG. 1 there is illustrated diagrammatically a data processing system 10 which may be conventionally embodied as one of the IBM family of personal computers, including the IBM Personal System/2.TM. and the Personal
Computer AT.TM., among others. The data processing system 10 includes an instruction processing unit ("Processor") or CPU 12, a data storage resource 14, an input system for receiving input from a user via a keyboard 16 or mouse input device 18, and an
output system for generating output images on a video display 20. Stored within the data storage resource 14 are a series of machine readable instruction sets for providing an interactive online tutorial system. The tutorial system includes a tutorial
control module 30 which utilizes a lesson control file 32, a lesson display file 34 and an information presentation system 35 to provide tutorial instructions in the use of one or more products 36, 38 and 40. The tutorial control module 30 also permits
the user to perform additional tasks 42, 44 and 46 which are unrelated to the products 36, 38 and 40. The products 36, 38 and 40 represent interactive software applications which are concurrently executing with the interactive online tutorial system.
Such products could include software tools intended for concurrent use in order to perform some higher task. In that case, the tutorial would provide instruction in the concurrent use of the products. The tasks 42, 44 and 46 represent other products
concurrently running under the operating system which are not being taught by the tutorial.
The tutorial system performs three major functions: information presentation, monitoring and demonstration assistance or "show-me". In the preferred embodiment, the tutorial system operates in the environment of a multi-tasking operating system
running on the data processing device 10. The OS/2.TM. operating system from IBM is preferred. It provides a multi-tasking, graphical and windowing environment which allows the tutorial system to operate concurrently with one or more products to be
learned. In this multi-tasking environment, lesson information can be presented in one portion of the display 20 while the products can be displayed in another portion of the display. These display portions are conventionally known as windows. To
provide this windowed environment, a set of OS/2 programming resources referred as the application program interface (API) may be advantageously utilized. In particular, a subset of API support routines collectively referred as the Presentation
Manager.TM. API is invoked. The OS/2.TM. operating system and its various API resources, including the Presentation Manager.TM. API, have been extensively documented (see, e.g., IBM Programming Guide, Operating System/2 Programming Tools and
Information, Version 1.2 (September 1989)).
Persons skilled in the art will appreciate that the OS/2.TM. operating system and its Presentation Manager.TM. API provide a multi-tasking environment wherein one or more applications can operate concurrently within their own windows. A
multi-tasking operating system such as the OS/2.TM. operating system is to be distinguished from a single-task operating system. In single-task operating systems, programs cannot be executed concurrently in a protected mode wherein data integrity is
maintained between programs. In single-task systems, processes sharing computer resources must be operated as co-routines. A co-route is subroutine which, when called again after an execution, resumes at the return point of its previous execution. In
contrast, multi-tasking provides a mode of operation that employs concurrent or interleaved execution of two or more tasks by a single processor such that processes take place within common processor resources.
In the OS/2.TM. operating system, there are three levels of multi-tasking: sessions, processes and threads. A session is the top-level object in the multi-tasking hierarchy. A session usually consists of a process, a logical display screen,
and a logical input device. The OS/2.TM. operating system can run several sessions concurrently and users can switch between them. The session with which the user interacts is called the foreground session. All other sessions continue to run but
receive no input from the user. A process is an executing application plus the resources it uses. A thread is an executable unit contained in a process. Processes and threads can both run concurrently. Thus, at all levels of multi-tasking, concurrent
program execution is provided and there is no requirement for co-routining as in single-task operating systems.
In the present invention, a tutorial program and one or more application programs to be learned are run concurrently in separate Presentation Manager.TM. processes. Advantageously, the Presentation Manager.TM. API supplies several window
classes that have a standard appearance. In addition, developers can register their own window classes. In either case, Presentation Manager.TM. resources are provided for generating display windows automatically so that the application developer is
freed from the task of writing window display code. These resources also include a subset library of routines, collectively referred to as the Information Presentation Facility (IPF) for generating application-related help information windows.
As is well known, a Presentation Manager.TM. application can create several windows of any class, each with its own data, and arrange the windows on the screen like papers on a desk top. Several Presentation Manager.TM. applications can be run
concurrently with the windows of each application sharing the screen with the windows of other applications. These windows can overlap, with overlying windows obscuring parts of underlying, overlapped windows. Users direct input to visible active
windows from a mouse or keyboard input device. Each window thus includes visual controls and data entry areas to facilitate the input function.
User input is directed to applications associated with input windows by the OS/2.TM. operating system in the form of messages, which are a fundamental part of the OS/2.TM. operating system. Presentation Manager.TM. applications use messages
to communicate with each other and with the operating system. These messages are passed through a system message queue. Each application also has an input message queue, and the application message queue is identified by a window "handle". Sources of
events that cause a message to be sent to an application are several. As indicated, the OS/2.TM. operating system directs messages to an application in response to a mouse or keyboard input to the application window. In other cases, the OS/2.TM.
operating system itself, in managing the application windows on the screen, sends messages to the windows. Events can also occur in an application to which another part of the same application should respond. For example, an application can send itself
a message to repaint the contents of a window which has been changed as a result of user input. Finally, applications communicate with each other via messages.
In order to support message-based processing, each Presentation Manager.TM. application is structured to utilize a main procedure and a window procedure. The main procedure initializes operating system resources, creates an application message
queue, registers and creates the window(s) of the application, creates a message-processing loop to get messages from the input queue and send them to the window procedure to be processed, and upon program termination, terminates operating system
resources used by the application. The window procedure processes every message in which the application is interested and takes appropriate action. If necessary, the window procedure also calls system-provided default window procedures to deal with
messages in the which the application is not interested. These messages are returned to the system message queue, or may be directed to another application's input queue or window procedure.
The foregoing features of the OS/2.TM. operating system and Presentation Manager.TM. API are exploited to significant advantage in the preferred embodiment of the present invention. In accordance therewith, a tutorial system has been developed
for providing instruction in the use of a software product known as AD/Cycle--The Integrated Reasoning Shell.TM., or TIRs. The TIRS.TM. product is an expert system program which creates knowledge applications for a variety of uses such as banking,
finance, etc. The tutorial system developed for TIRS gives novice users hands-on experience in developing knowledge applications using TIRS. The tutorial conforms with IBM's Systems Application Architecture.TM. Common User Access or CUA standard for
the presentation of display information and user input. The tutorial was written as a Presentation Manager.TM. application. It utilizes the above-referenced multi-tasking, graphical and windowing environment of OS/2 in presenting lesson information to
users. Tutorial lessons are displayed in the tutorial's own task window tiled with the TIRS product window(s). Users can view step-by-step instructions in the tutorial lessons and at the same time interact with TIRS to try out these instructions.
The tutorial uses the OS/2.TM. Information Presentation Facility for the authoring and presentation of lesson information, although no limitation in scope of the invention is intended thereby. Other commercial information presentation
facilities could also be used. Alternatively, customized information displays could be created. In addition, other tools such as multimedia presentation formats providing audio and video instruction could be utilized as would all be apparent to persons
skilled in the art in light of the teachings herein. The OS/2.TM. Information Presentation Facility provides a programming tool for the implementation of a help interface. Using IPF, an interface window can be readily developed that provides not only
general help for application windows, but also contextual help for fields within windows. The Information Presentation Facility allows software developers to author their own help panels using an IPF tag language. The IPF tag language includes text to
be displayed in a help panel together with commands that define relationships between different portions of the help information text. Help panels can be written by the developer in the IPF tag language source code and compiled by an IPF compiler. IPF
provides standard window graphics objects for displaying the help text and allowing users to control the presentation of information.
Each help panel represents a separate text unit having its own panel identifier. Advantageously, the IPF tag language allows developers to insert hypertext or hypergraphic links between help panels, or between a help panel and a smaller footnote
panel. Moreover, hypertext objects can be defined which cause messages to be generated when selected. These features are all utilized to advantage by the tutorial system described herein. Each of the lesson display files 34 shown in FIG. 1 represents
an IPF help panel created using the IPF tag language. The IPF lesson display files 34 contain lesson information. The tutorial system inputs the lesson display files and adapts and controls the Information Presentation Facility to present lesson
information according to the tutorial's specifications.
The tutorial is integrated with the product insofar as the two applications communicate with each other through a message passing scheme. As indicated, OS/2 conveys information between concurrently running applications in the form of messages.
Relatedly, the tutorial passes messages directly to the product's main window. In an alternative embodiment, messages are passed through dynamic data exchange (DDE), a standard OS/2.TM. interprocess communications protocol. Through DDE communications,
the tutorial sends messages requesting the product to perform certain actions.
The tutorial monitors what users are doing in the product by intercepting messages to the product in the | | |