Aion Developmemi Sysfem Katharina Walker Ray, United Parcel Service

Technical editors: W.F. Punch III, Michigan State University Vendor contact’ Dale Strok, /EEEExperf,10662 Los Vaqueros Circle, PO Box 3014, Los Alamit...
Author: Kerrie Cook
1 downloads 0 Views 1MB Size
Technical editors: W.F. Punch III, Michigan State University Vendor contact’ Dale Strok, /EEEExperf,10662 Los Vaqueros Circle, PO Box 3014, Los Alamitos, CA 90720-1264

Aion

Developmemi

Sysfem

Katharina Walker Ray, United Parcel Service tions can also be invoked from the comAionDS differs from most other expert mand line. Command keywords and obsystem shells. It was designed to be used in industry by developers with Cobol ject types can be abbreviated, object backgrounds, in an IBM environment. names and scopes can include wildcards AionDS was originally an expert system (*), and contexts can be specified. Funcshell with a backward-chaining inference tion keys provide quick access to freengine. Since introduction, the product’s quently used functions, including a “hot” capabilities have been greatly expanded, key that invokes the editor for the object and it is now marketed as a complete deunder the cursor. velopment environment for traditional Various interface options can help business process automation applicamake navigation through the knowledge tions. It is available on platforms ranging base intuitive. While experienced develfrom Microsoft Windows to MVS, and opers often prefer the command line, can be used to develop stand-alone PC new developers prefer the easy-to-use applications, mainframe applications, menu interface. The command line can compiled modules called by existing trainvoke an editor or facility immediately, ditional applications, and client/server where multiple menus would otherwise applications. be needed. Function keys (especially the I started using the Aion Development ~ hot key) further increase the speed of System just over two years ago, a few navigation through the knowledge base. months after I switched from an academThe interface is similar on all platforms; ic career to one in industry. I started with the only difference is that the function an academic’s point of view, primarily keys are standardized to the current enviconcerned with a checklist of characterronment. For example, on an IBM mainistics that an expert system shell had to frame MVS system, you use PF7 to page possess if I was to consider it acceptable.’ up; on a PC, you use the Page Up key. AionDS had most of the necessary items from the checklist, but so did a lot of Editors. AionDS editors are characterother shells. My perspective on what is based and follow a standard window arimportant has changed since then. Now rangement. Windows are used to define that we have a few applications in prothe characteristics of objects, and there duction, the most critical issue is whether are customized editors for each object or not an application will crash. This is a type (I’ll get back to objects later). The very important question for me, since I editors use a common set of windows to really don’t want to carry a beeper. Hapdefine properties common to all objects. pily, I don’t have to. Windows can be display-only, they can require the developer to enter information, or they can display system-generatDevelopment interface ed information that the developer can select or edit. Windows display lists of the The development system has menu, objects that use and that are used by the command, and function key interfaces, current object, thus providing an on-line which can be used separately or in comcross-reference capability. Basic textbination. Pop-up menus list all options editing capabilities include mark, cut, available in the current context. Funcand paste. 82

. .

When an object is saved, context checking verifies items such as syntax, the definition of other objects referenced, and the consistency of data types. When an error is detected, the save process is suspended, the cursor is placed on the object causing the error, and an error message displays at the bottom of the screen. The system flags the object as invalid, and any object referencing it will display the name of the invalid object in a window. Error messages encountered when trying to save an object are helpful in determining the cause of a problem. Error checking catches many problems where the syntax is correct but object definitions are inconsistent. Monitors. AionDS also has characterbased monitors that display information and provide control. When you first invoke AionDS, you see the Main monitor, where you can view, edit, or run a knowledge base, browse through files, access the operating system or profiles, and use various tools and utilities. For example, the export facility converts a saved knowledge base into a single text file that can be read by AionDS in any environment, and the import facility converts the exported file into the current environment’s format. The security facility allows passwords to be set at the knowledge base level. The change management option tracks changes to working copies of the knowledge base, and checks them against the master knowledge base. The developer can then test these changes and decide whether to apply them to the master knowledge base. The Profile monitor has several environment controls that allow you to customize software settings and set up customized profiles for developers and knowledge bases. The rerun facility lets IEEEEXPERT

II

_

/ Class I Name

12-Aug-93

Editor Student

10:16am

~6.00.04

Parent

1 =Methods

, FAccess None

( ~ -Enroll

Method-1

Display Student-display / FInvalid , -Student-ID -Student-Name -Year -Major =Instances-1

lil/classespi

Objects-1

ruses Used By ru Check-eligibility-345

Figure 1. Class editor.

you rerun the knowledge base from saved input, facilitating consistent repetitive testing. Several monitors are available at edit time. The outliner displays the structure of the knowledge base and notes any context containing an object with an error. This makes it possible to check the syntactical validity of the whole knowledge base at a glance. The Access Method monitor defines automatic data interfaces between classes and external files or databases. Other facilities available at edit time include search and replace, print, and context-sensitive. on-line help. The help facility is useful, but it is not a substitute for the manuals. The explanation facility uses a set of monitors to show the developer how AionDS arrives at a particular conclusion. The How monitor shows how objects received their values; the Other Sources monitor shows the other sources that the system could have used to obtain a value for the object; the What monitor shows which objects use the current object; and the Why monitor shows why the object is being sourced. The explanation facility can be used during development and at runtime. You can test and debug your application without leaving the development system. With the debug monitor, you can observe a trace of the interpreted knowledge base as it executes. When the trace OCTOBER1993

facility is active, the development system similar on all platforms. The system genwrites a one-line description for every erates default displays, but customized versions can be built with the screen action taken by the inference engine. You can view the text of a trace while painter, which has a function-key interthe knowledge base is executing, or face. A single screen design can be used browse through it later. A log file showfor all character-based environments. It ing the system resources used can also be is possible to specify different screen degenerated at runtime, and browsed later. signs for different platforms in the same Error messages generated at runtime are 1 knowledge base source; the appropriate listed in the trace and the log, and prodisplay will be selected according to the vide excellent assistance in debugging platform at runtime. applications. These messages are conI Release 6.2 for Windows and OS12 cise; detailed explanations are provided PM provides a Common User Access in the manual. The rich set of debugging (CUA) compliant graphical interface in tools, and the flexibility with which they addition to the character-based interface. can be used, make debugging Aion appli- j AionDS provides a standard class library cations relatively easy. for GUI display objects, including icons, Multiple editors and monitors can be menus, windows, buttons, and bitmapped graphics. Control of the interface is easier active simultaneously. with the GUI than with the characterbased Consultation monitor. GUI knowlUser interface edge bases are portable between Win) dows and PM, but knowledge bases with The user interface is provided by the GUI capabilities are not compatible with Consultation monitor, a runtime componon-GUI platforms. Also, some of the nent that displays information to the user debugging aids are not available when and accepts user input. A character-based using the GUI. interface is available for all AionDS platforms, while a graphical user interface is Functionalities available only for Windows and OS/2 PM. If an application requires an interface external to AionDS, the ConsultaAionDS has four major areas of function monitor can be bypassed completely tionality: rule processing, object processor replaced with an external interface. 1 ing, procedural processing, and extended The character-based user interface is 1 data processing. a3

Slot

Editor

Name

Major

12-Aug-93 Parent

~6.00.04

Student Il Value Can Change true/ask

Base Type string cwhen

10:16am

Sourced

FFaCtS

is

from

('engineering',

'business',

'economics')

I Figure 2. Slot editor.

Rule processing. In AionDS, a knowledge base represents knowledge about an individual application. It consists of objects, including states, rules, classes, and procedures. Every AionDS knowledge base contains at least one state, called the main state, which is the starting point for execution. However, a knowledge base can have many states. Each state has an agenda, whose procedural statements control execution. States can be arranged in multiple, independent hierarchies that represent independent sets of rules. When a state is being executed, the rules from the current state and its parent states are considered the current scope; rules in other states cannot execute. When multiple rules are ready to be fired, a priority value specified for each rule determines their order. The greatest strength of AionDS is its representation of business rules. Rulebased programming is a highly productive way to build and maintain business rules in an application. AionDS rules are represented in an easily understood format: If library-fines > 0 Then msg = ‘Student must pay outstanding fines before registration’ Elseif GPA< 2.0 Then msg = Student must see advisor before registration’ Else msg = ‘Student may proceed with registration’ End a4

.

AionDS also supports pattern-matching rules, which forward-chain to patternmatch on class instances. Actions specified in a rule’s conclusion are performed on instances that match the criteria specified in its premise. The order in which the matched instances will be processed can be specified. Pattern-matching rules begin with the keyword IfMatch: IfMatch schedule_requestwith course = ‘MGT345’ student wrth year = ‘junior’and major = ‘business’ Orderby studemyear Then send freaister to class(schedule)with schedulelrequest.course, studentstudentname, studentstudent-ID) End The contents of a rule’s action have no restrictions; anything that can be done in the procedural-language component of AionDS (described later) can be done in a rule’s action. The inference engine can forwardchain, backward-chain, or combine the two actions. It has four components. The control module executes the procedural statements in the current state’s agenda and manages state processing. The backward chainer finds values for parameters and slots, while the forward chainer monitors assignments and maintains a list of candidate rules for execution. The execute module executes statements and

rules, and assigns values. Options for rule processing include l l

l

l

l

l

l l

backward: used in backward chaining bidirectional: can be used in forward or backward chaining forward, immediate: execute immediately when premise is known forward, onrequest: execute only when forward chaining is invoked pursueactions: forward chainer may backward-chain to obtain values donotpursue: forward chainer may not backward-chain to obtain values singlefire: execute the rule once multifire: execute the rule each time its premise is modified

Rule and object characteristics determine how the inference engine will switch between forward and backward chaining. When you create a rule, the system assigns defaults that determine how the inference engine will handle it, but you can specify many characteristics, providing a great deal of control over the inference engine. For instance, you can specify the order of sources considered in obtaining values for an object. Object processing. Every knowledge base component is an object. Object types include class, slot, instance, method, parameter, type, display, group, mesIEEEEXPERT 1

If

sage, report, graph, vocabulary, state, rule, function, and process. AionDS has no object repository, so object definitions belong to individual knowledge bases. To reuse an object, the code containing the object definition must be copied from one knowledge base to another. Classes define data and procedures, and can be arranged in hierarchies. The system supports inheritance and specialization of class definitions, including for the slots and methods belonging to the classes. Figure 1 shows an editor for the class Student. The Methods window lists the method Enroll, which is owned by Student. The Slots window lists the slots Student-ID, Student-name, Year, and Major. Static instances of the class would be listed in the Instances window (dynamic instances exist only at runtime, and could not be listed at edit time). If this class had subclasses, they would be listed in the Subclasses window. The Access Method window shows the automatic data interface used to get data stored in an external database or file. The value “SQL” shows that the data is in a relational database and is obtained through the SQL interface. The Used By window shows that the rule Check-eligibility-345 directly references this class. Figure 2 shows the slot editor for the slot Major, which belongs to the Student class. The base type, constraints, and defaults are specified in their own windows. An object referenced in the When Sourced window will be invoked when the system tries to find a value for the slot. The Mapped To window shows the database field to which the slot is mapped in the class’s automatic data interface. Screen formats are defined in display objects. Displays are attached to classes, slots, parameters, or messages. An object’s display can be automatically invoked at execution time, when the inference engine wants the user to provide a value for an object. Displays can also be invoked explicitly with procedural statements. In Figure 1, the Display window shows the name of the attached display. Procedural processing. A high-level programming language provides procedural processing. The language is divided into three parts, which together proOCTOBER1993

L

Figure 3. Knowledge Definition Longuogestotement types.

vide the capability to do all the coding needed in most applications. The Knowledge Definition Language is used to define knowledge base objects such as rules, procedures, and agendas (including the rules listed earlier). Figure 3 lists statement types and examples. For applications where the knowledge base must be embedded in another program or where a specialized external program must be called from the knowledge base, AionDS provides a full set of Application Programming Interface (API) functions for accessing external programs and data. Any callable load module can be called from an AionDS knowledge base, and any program that can call a load module can call an AionDS knowledge base. Programs can pass object values and characteristics between the calling and the called programs synchronously or asynchronously. The Type Definition Language is used to define data types and data structures. AionDS suppo% Boolean, date, integer, real, string, time, instance-of-class. and pointer-to-class data types, and its structured data types include list, set, certainty set, record, and file. This language is also used to specify constraints. input formats, and input attributes. AionDS has automatic data interfaces to many databases, including Oracle and IBM Database Manager. Using these interfaces,

AionDS can import data definitions from external databases and use them to create internal data definitions; it can also export its data definitions and access other databases. The Text Substitution Language is used to format text for display in messages, reports, graphs, and so on. You can view the resulting formatted text using the preview facility. However, AionDS cannot incorporate graphics into text, or control fonts or point sizes. This language is cryptic, especially in comparison to the English-like syntax of the other two languages provided. It is hard to understand and use, even for the experienced Aion developer; for example, &tb + %Student-List < % * < %Student_lD:9 %Student-Name:-35 > &br > &tbis the Text Substitution Language defini tion for a report listing the IDS and names for the Student class.

Product support and documentation The abundant documentation contains complete descriptions and examples of all aspects of the software, but it is written for developers with some experience. While the volume of documentation can be overwhelming for a novice, it is well organized. All the manuals have a coma5

prehensive index, so you can quickly find the information you need. Training is conducted regularly at sites across the country. The basic curriculum consists of three classes. The first two classes, lasting five days in all, are needed before starting to code; they provide an excellent introduction. A four-day methodology class is practically oriented. The instruction materials used in the classes are very good: They include stepby-step tutorials, diskettes with sample knowledge bases, and indexes so that they can be easily referenced in the future. Before the merger that formed Trinzic, Aion product training was exceptional. Since then, training for Aion products has been adequate, but it is returning to its former standards The technical support staff is competent, patient, and extremely helpful to demanding customers (myself included) The staff resolve simple questions immediately, and usually provide a same-day response for more complicated problems. They can access on-line references to past problem resolutions or consult the software developers when needed. While 24-hour support is not generally offered, it can be negotiated. Consulting services are available from a specialized staff, and regional systems engineers provide pre-sales help. Both groups are knowledgeable and easy to work with. Trinzic national user group meetings are held annually. Customer presentations are excellent forums for learning about others’ application development efforts. Trinzic presentations include technical discussions for experienced developers, previews of future releases, and a variety of technical training sessions. Regional user group meetings are held periodically, and provide good opportunities for learning.

Evaluation AionDS is a high-productivity development tool for knowledge-based applications. The interactive nature of the developer’s environment makes it a useful prototypinp ._- and adaptive-development tool. Event-driven programming is a natural result of development with the GUI, resulting in systems that take advantage of object-oriented programming. Without the 86

.

GUI, many applications developed have tended to be rather procedural in nature. AionDS is not an elegant tool, and it has a difficult learning curve. Developing small, simple systems is possible after only a few days of training. The knowledge and skills needed to develop complex systems take much longer. Because AionDS has a complete procedural language in addition to its inference engine and object processing, similar functionalities can be coded in many ways, and the performance of the alternatives can vary greatly. Knowing which alternative will work best requires knowledge that can only be gained through experience with the application environment and the development tool. Knowledge base performance can often be improved 1 dramatically by reviewing and revising the code. As mentioned earlier, AionDS has no object repository, so object definition code must be copied from one knowledge base to another. This is the prod1 uct’s major shortcoming. 1 Normally, the AionDS knowledge bases are interpreted at runtime by the execution system. The performance of ~ these interpreted knowledge bases is comparable to those in other expert systern shells. However, knowledge bases can be optimized, compiled, and linked using the Aion High-Performance Option. Optimized knowledge bases execute , two to 10 times faster than interpreted 1 knowledge bases. Performance might be ’ an issue for very large volumes of data or large amounts of number crunching. An ~ alternative is to use the API to invoke a routine written in another language (such as Cobol), which would then access the data or crunch the numbers. The suite of products in the Aion family is comprehensive, providing for knowledge-based system development in traditional corporate environments. And at UPS, developed applications have 1 proven to be extremely reliable-reliable enough for mission-critical applications.

other platforms, a Pascal compiler is needed. Pricing depends on configuration. The Client/Server Cooperative Processing Option supports advanced peerto-peer communications (APPC), which allows any of the AionDS workstation products to access knowledge bases or data on a mainframe. CPO is included in AionDS/PM and AionDYWindows, and is available separately for mainframe systems. 1 The Case Integration Option takes data elements from the case repositories of Knowledgeware ‘s ADW s‘ystem or 1 Texas Instruments’ IEF system, and transforms them into AionDS objects. Pricing depends on configuration. The original developer, Aion Corp., merged with AICorp in 1992 to form Trinzic, 101 University Avenue, Palo Alto, CA 94301; (415) 328-9595. The prices here are list prices for single systerns; quantity discounts are available. Reader service number 20 Walker Ray works in Information Systems at United Parcel Service, where she is responsible for designing and implementing knowledge-based systems for the company’s airline. Prior to joining UPS, she taught at the College of Business and Economics at the University of Kentucky. She can be reached at United Parcel Service, 1400 N. Hurstbourne Parkway, Louisville, KY 40223. Katharine

Reference 1. C.W. HolsappleandA.B. Whinston,“Guidelines for Selecting an Expert System Development Tool,“BusinessExperrS~stems, Irwin, Homewood, Ill., 1987,pp. 261-299. ..~

1

Aion Development System v6.0for DOS, ~6.2 for Windows, ~6.1 for Sun systems. All PC versions of AionDS cost $9,000. The Sun version costs $10,000, and the MVS and VM mainframe development systems cost $100,000 to $150,000, depending on CPUs. The Aion Execution System, the runtime version of the software, provides the necessary runtime libraries for interpreted and compiled knowledge bases. The PC versions cost $900, the mainframe versions cost $40,000 to $60,000, and the Sun version costs $1,000. AionDS requires add-on database interfaces for some databases, including Oracle, SQL Server, DB2, SQWDS, and IBM Database Manager. The PC devel1 opment version costs $1,000, with no ~ charge for execution. The mainframe version costs $26,000 to $39,000, de, pending on CPUs.

IEEEEXPERT

CAD/Chem James K. McDowell, Michigan State University but still, I was a little surprised at the restrictiveness of the single-user license. To evaluate CADKhem, I used a Sparcstation 1 with a 20-MHz Spare processor. The workstation was equipped with 8 Mbytes of main memory (the minimum for CADIChem) and 24 Mbytes of swap space. The display was a 19-inch monochrome monitor with a simple

Formulation involves mapping from product ingredients and processing conditions to product properties, a problem faced by a wide range of companies. CADKhem is an intelligent software application for designing such formulations. Any problem that can be couched as one of formulation is a potential target for CADIChem, including plastics, metals, pharmaceuticals, industrial chemicals, and food goods. The traditional approach to formulation involves experimental trials followed by statistical analysis; the resulting model is used to optimize a set of ingredients. This product development process can require an enormous amount of experimental work and difficult statistical analysis, both of which can be costly. CADKhem tries to ease this burden by applying intelligent technology, primarily neural networks, in a window-based software environment to the modeling and optimization of product formulations.

CAD/Chem applies intelligent technology, primarily neural networks, in a window-hased software environment to the modeling and optimization of product formulations. frame buffer video card. The workstation was running Sun-OS 4.1.2, and Sun’s Open Windows version 3 windowing system. CADKhem also runs on several other workstation platforms, including Hewlett-Packard, IBM, and DEC.

Installation Although we had some problems, installation of the software was relatively seamless. Some of the problems we had were due to security restrictions placed on CADKhem by its developers. The software came on the appropriate media (in this case, a l+inch cartridge tape). First, we transferred files to a target machine in our distributed, networked environment, and then executed installation utilities. However, the software under a single-user license can only be run on the workstation that it is authorized for, and must reside on the local disk. That meant we had to find a stand-alone workstation with enough disk space and a connected tape drive. Furthermore, the software cannot be run on the local workstation and displayed on another workstation’s display using the standard X and Open Windows methods. In all, we had to call the company twice regarding the software authorization key. and go through two installation procedures, CADKhem is available under multiuser licensing, OCTOBER1993

Operation modes 1

) 1 i

i

CADKhem runs in three modes: a consult mode for manipulating the product model, a data-processing mode for loading and repairing data and resolving data conflicts, and a training mode for creating the model. The package comes with two examples that can be used to exp 1ore t h ese modes, To prepare this review, I used both the bread formulation example (which is the basis of the tutorial) and th e polymer additive example. Consult mode. CADKhem is most often used for consulting; model formulation is usually done only once (unless new data is available). You begin in the consult mode with the Open Task window, which displays a list of task names; you point to the desired task and open it. This mode also offers the Home window,

which is the base of operations in a11 modes and is always active, and a Message window for error and operation completion notices. Much of the CAD/ Chem interface is point-and-click and, for the most part, well designed, with command buttons, menu buttons, and scrolling lists. (Later I’ll discuss the few interface problems I encountered.) Once you’ve opened a task by clicking on its name and the Apply button, the Consult Task window appears. This becomes the base of operations for all consult mode activities: using the formulation model to find matches to the current ingredient or property trials (Best Match), determining the impact of ingredient changes (Estimate), and optimizing ingredients for specific goals (Optimize). The task displayed by the Consult Task window has already been trained (the training mode will be discussed later). The Consult Task window is dominated by two scrolling lists, one for ingredients on the left and the other for properties on the right. Each list contains columns for the name and units, as well as Given and Found columns. The Given column lets you type in values (one of the few times it is necessary to use the keyboard), and the Found column displays values based on some operation (for example, Estimate). In the case of the bread task, there are 10 ingredients, including flour, water, and bake time, and 13 properties, including moistness, weight, and sweetness. Processing conditions such as bake time are considered ingredients. Above and below these two scroll lists are various command and menu buttons for consult mode operations. CAD/Chem’s use of Open Windows’ push-pin feature lets users continuously display and access the most commonly used menus. In window environments where the pushpin feature is not available, the interface is more cumbersome. I tried both menu access approaches (with and without the push-pin feature); for sessions where access to the Ingredients and Properties menus dominated, the push-pin feature was almost indispensable. In most sessions involving the consult mode, these a7

are the most accessed menus. The documentation suggests pinning these menus so they are immediately accessible. The Best Match option allows the recall of experimental trials (ingredient or property lists) based on complete or partial information. Matching is based on a least mean square closeness measure. After you type the match information into the appropriate display and choose either the Best Ingredient Match or Best Property Match command button, the system finds the matched values and displays them in the Found column. This operation ignores blank entries in the Given column, but tries to match zero entries. The Best Match option is a good starting point for exploring how changes in ingredient amounts affect properties. The recall processing of Best Match is nearly instantaneous. The Estimate option is used to explore the effect of ingredient changes on product properties. A trained task contains a model of the relationships between ingredients and properties. By supplying a complete set of ingredients, the formulation model can estimate the values of the properties of the new formulation. In this way, the user can perform “what-if’ scenarios exploring the effect of changes in the ingredients. In the bread task, you can increase the amount of salt or decrease the amount of water, and then view the impact on the bread’s properties, such as crust thickness, tenderness, and texture. You type in the ingredients (or edit an existing list) and then click on the Estimate Properties command button. Like the Best Match operation, Estimate is very fast. The property values for the new formulation are displayed in the Found column of the Properties display list. just as they are for the Best Match operation. An option in both the Ingredients and Properties menus is to move the values in the Found column to the Given column. This is a useful way to store property values before performing the Estimate operation and provides a sideby-side comparison of the effect of ingredient changes. Using Optimize, you can determine the set of ingredients needed for a particular set of properties. Unlike the relatively unstructured process of using the Estimate operation in successive “what-if’ scenarios. the Optimize operation 88

involves a systematic search using the formulation model to determine the appropriate ingredients. Optimize is CAD/ Chem’s most powerful feature and requires the most care in use. There are a host of parameters that you can set to guide the optimization process toward a satisfactory answer. These include ingredient costs, ingredient constraints, property weights, and property desirability functions. The window interface displays for setting these parameters are accessible through the Ingredient and Properties menus in the Consult Task window.

Optimize is CAD/Chem’s most powerful feature and requires the most care in use. There are a host of parameters you can set to guide the optimization process toward a satisfactory answer. Once the parameter values are acceptable, you click on the Optimize Ingredient command button, and the Optimization window appears. This is the base of command for the Optimize option: From this window, you start the optimization process, view its progress as ingredient, property, and property desirability values change, and track the overall process in terms of total cost, total desirability, and a utility index. The Optimization window also gives you access to optimization tuning parameters. To begin optimization, you click the Optimize command button. Unlike the Best Match and Estimate operations, which are performed in seconds, Optimize takes several minutes. This operation should not be applied ca~ sually; you must first define the problem 1 carefully in terms of ingredient costs and constraints, property weights, and desirability functions. Another feature of the consult mode is its graphing capabilities, which are quite good. CADKhem produces 3D plots of the formulation model. Two ingredients ~ (the independent variables) are plotted ~ on the x and y axes, and the selected property or desirability function (the dependent variable) is plotted on the z axis.

The interface for graphing is simple: You click on the Graph command button in the Consult Task window. The Graph window appears, allowing you to set the X, y, z, quantities, the x and y minimum and maximum, as well as the number of tick marks. You then click on the Plot command button, and a Grid window appears displaying the 3D plot. Generating the Grid window took a little more than 20 seconds. Once the Grid window is displayed, the 3D plot can be manipulated in near real-time using the Rotate and Tilt slider controls. CADKhem allows multiple plot displays; in my testing, four Grid windows were displayed at once on the workstation display, with no degradation in generation time or manipulatability. It is tempting to spin the plotted surface in all possible directions, but it can be difficult to return to a specific view if you forget to note the original tilt and rotation. In orthogonal views of the surface, the min/max labels can appear on top of each other, making them difficult to read. The 3D surface itself can be viewed as a wire frame, a solid, or a color solid with shading. For this review, I explored only the wire frame and solid features. The solid and color options appeared identical on my monochrome display. CadKhem can generate reports for documenting the values used in the consult mode, such as the cost of ingredients, ingredient constraints, and property desirability functions. I had a few problems with the consult mode. There was a discrepancy between the documentation and the working of CADKhem’s Ingredient Costs window, which lets you type in values for each ingredient’s cost. In the documentation, the value of eggs is 125.25, and the value of bake-temperature is 355.00, but the interface rejected these values when I entered them. The error message reported that the values had to be between 0 and 100. This presents an interesting conflict for users, since the formulation might include small amounts of very expensive ingredients. If users are expected somehow to normalize all costs to a scale of 0 to 100, this means a lot of extra work and can present difficulties as ingredient prices change. Additionally, only the relative costs of ingredients would be displayed, not their actual costs. IEEEEXPERT

w

The Ingredient Constraints window interface could be improved in three ways. The system uses the symbols il, i2, and so forth to represent the ingredients in the equations. Thus, to interpret an equation you must remember, for example, that i5 is Milk. This information is available as a scroll list in the display, but if there are a lot of ingredients, you might have to refer often to this list. The software knows the ingredients’ names, so why not use them to construct and display the constraint equations? The equation Flour > 0 is superior to i 1 > 0; for the user, the same input effort would be required if the ingredient names were available using point and click. The Ingredient Constraints window uses a calculator keypad for inputting the relational operators (‘, and so on) and the numeric constants that the ingredients are compared to. This is nice if you don’t like to type, but the display should give skilled typists the complete use of the keyboard to enter equations. The calculator keypad has a nice look, but its speed of entry is not superior to a keyboard. Lastly, the software should identify conflicting constraints and alert the user. Currently, the user must make sure that the constraint equations are consistent. Data-processing mode. To move beyond consulting and build your own formulation model, you use the product’s loading, analysis, and training modes. CADlChem accepts formulation data in simple ASCII format, which can be followed easily using a standard word processor or created from a spreadsheet or database. To load a data file, you work from the Home window and choose Load Data from the Mode menu. The Load Data window appears, and looks very similar to the Open Task window. However, you must supply a file filter (*.dat) when changing from one directory to another with the CD command button. You click on the data file to be loaded, for example bread.dat, and then on the Apply command button. A second Load Data window appears; you use this to select which elements in the data are ingredients and which are properties, and enter the units for these items. The Load Data window is also the base of operations for renaming tasks and for editing, repairing, and filtering data. You can repair incomOCTOBER1993

plete data sets easily using either the repair function or the data point clustering feature (based on unsupervised learning). The software also examines the data set for conflicting patterns and lets you remove or edit these patterns. Conflicting patterns (when two or more data sets are identical or nearly identical) should be removed before training begins. Training mode. CADKhem’s training mode is quite extensive and allows you to be involved in the training process as much as you want. If you are very

CAD/Chem’s training mode Is quite extensive and allows you to be involved in the training process as much as you want. For the examples provided, the training was fairly fast and very easy to accomplish. “hands-off’ about constructing the neural-network model, the autotrain feature is handy; for more involved users, the interactive train feature lets you manipulate the training process extensively. I tested autotrain, described in the documentation tutorial. From the Home window, you select the Open button from the Mode menu. The Open Task window appears, and you click on the task to be opened; if the task has not been trained, the Train Task window automatically appears, and you click on the Train command button. This window is the base of training operations. It displays a number of statistics, including the learning rate, momentum, and sigmoidal slope, as well as the number of iterations and status of the training process. For the examples provided, the training was fairly fast and very easy to accomplish. Once trained, a task can be used in the consult mode and operations such as Optimize can be performed. In the interactive-train feature (not tested for this review), the documentation reports a host of features, including user-determined correlation coefficients, variation of training parameters and network structure, and step-by-step interaction with the training task.

~ Promotihal material AI Ware offers an l&page technical document on CADlChem as well as an article preprint from Scient$c Computing and Automation that describes the use of CADKhem in formulation work. The technical document discusses only the consult mode in detail; it provides just a couple of pages on loading data and the possible data analysis options. There are no hard details on developing a formulation model using the various neural-net training options. AI Ware also has an advertising video that demonstrates CAD/ Chem’s consult mode but does not discuss training, loading. or analyzing data. AI Ware can provide a list of customers and contacts in both industry and research, who span a variety of fields, including chemicals, materials, and processing. All in all, CADKhem is an interesting product and one you might consider if faced with formulation problems. Test the software using representative example data from your target application to ensure that it can meet the needs and scale of your application. This is the best way to determine if CADlChem can meet the challenges of your own formulation tasks. Reader service number 21 CADKhemfrom AI Ware, 11000 Cedur Avenue, Cleveland, Ohio 44106; (216) 421-2380. Available for IBM RY6000, Hewlett-Packard, Sun, and DEC VMS and Alpha workstations. Prices are based on the number of concurrent users, and range from $9,000 for a single-seat license to $30,00Ofor afu/lv networked, single-site system. The package comes with u,ser documentation, installation instructions, and 90.day free maintenance. Extended maintenance contracts are availablefor hotline phone support and all documentation and softMare updates. Additional user training and custom enhancements are available. The company plans to release a PC version in November. K. McDowell is a research associateat the Intelligent Systems Lab and the Composite

James

Materials and Structures Center at Michigan State University. He is exploring the application of knowledge-based systems to composites design and manufacturing. He can be reached at the Composite Materials and Structures Center, Research Complex-Engineering, Michigan State University, East Lansing, MI 48824.1326; e-mail, mcdowelj @pleiades.cps.msu.edu a9