Knowledge-Based Configuration of Computer Systems Using Hierarchical Partial Choice

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

YZOC.

OX me iyyi MBE
Int. Cod. on Tools for AI
San Jose, CA-NOV.1991

Knowledge-based Configuration of Computer Systems Using


Hierarchical Partial Choice

B V M.~ .Gamer*
Department of Computer Science
University of Toronto
Toronto, Ontario, M5S 1A4
hamer@ai.toronto.edu

Abstract ing computer configuration systems. XKEWB provides an


effective representation of configuration knowledge and
As the complexity of computer systems grows, configu- efficient generation of correct configurations. XKEWB
ration expert systems become increasingly important as also provides a unique end user interface that is well suited
tools to ensure that delivered systems are workable. This to configuration systems.
paper introduces a novel inference scheme called hierar- The configuration problem solved by X K E W is a gen-
chical partial choice that efjiciently generates configura- eralization of the problem described in [7].Given a set of
tions from a knowledge base of structured descriptions of descriptions of components and constraints on the ways
computer components. This approach combines the acqui- instances of these descriptions can be connected, a valid
sition and maintenance advantages (over rule-based sys- configuration is a set of instames of the descriptions and a
tems) of a declarative system with an inference scheme that description of their connections that satisfies the pre-
efjiciently generates solutiom, ofen with little backtrack- defined constraints and some set of input constraints. Two
ing. restrictions on the general problem are described: thefunc-
The inference scheme 1s presented in the context of tional architecture restriction which states that descrip-
XKEWB, a shell for building computer configuration tions of components are decomposed along functional
expert system. The system contains several improvements lines, and the key component restriction which states that
over its predecessor Cossack. For example, the system is there is some key component implementing each function.
designed to allow configurators to configure multiple com- Under these restrictions, one describes a computer system
puters in a network setting, the end user interface is partic- as a component having a display function, a computing
ularly suited to the task of specifying computer systems. function etc. and that the key component for the display
function is a screen. The advantages of this approach are
that there is a top down organization on how components
are selected: to build a workstation configuration one pro-
1.0 Introduction vides the display function, the computing function etc. and
that the key components identify subproblems that can be
As computer systems grow in complexity, automated solved somewhat independently. These restrictions are
configuration systems become increasingly important. implicit in the knowledge representation described in this
Questions one might have to ask while configuring a sys- paper.
tem include: is the accounting software compatible with Interest in configuration systems dates back to the R1/
the word processing software, and, does the file server have XCON project [5]. Configuration systems are typically
enough disk space for the application? Clearly a great deal rule-based or hybrid rule and frame-based systems. The
of knowledge is required to correctly configure a system, problems with rules have been well documented (for
and, given the large variety of hardware and software, the example, [2]). Maintenance and verification of knowledge
potential search space is very large. Although several expressed as rules can be very difficult because related
approaches to the problem have been described, the prob- knowledge is usually spread over several rules and
lems of knowledge acquisition and maintenance of config- changes to rules have to be checked for interactions with
uration knowledge and efficiently generating complex most other rules. On the other hand, rule-based systems
configuration do not appear to have been adequately have the property that heuristic knowledge for finding
addressed. This paper describes XKEWB, a shell for build- solutions efficiently is encoded in the rules. XKEWB uses
a frame-based representation to handle the maintenance
* problem, and has an inference engine that generates solu-
: This work was done while the author was with Xerox Canada Inc.

368
0-8186-2300-4/91$01.000 1991 IEEE
tions efficiently enough that procedural guidance is not straint that is attached to the failed goal. Undoing the
necessary. choice at the posting goal has the effect of removing a con-
The results described here are the result of a reimple- straint from the failed goal potentially allowing a choice to
mentation and extension of the Cossack configurator be made there.
described in [4]. The reimplementation contains novel Cossack makes use of a version of partial choice 161.
solutions to several weaknesses in the Cossack inference When there are several components that might satisfy a
scheme, knowledge representation, and user interface. In goal, Cossack attempts to find a constraint that these com-
the course of this reimplementation, several new capabili- ponents have in common. If there is such a constraint, the
ties were introduced, particularly the ability to configure constraint is posted and the goal is suspended. When a
multiple computers in a network situation. component is selected for that constraint, the system can
The paper is organized as follows: Iirst, a brief review of make a choice for the suspended goal using the knowledge
Cossack is presented. Next, there is an overview of derived by making a choice for the constraint. This is a
XKEWB followed by several sections describing details of variant of least commitment in that a choice is made at ran-
the system. Finally, the concluding section contrasts dom only when necessary.
XKEWB with other configuration systems and summarizes
the contributions.
3.0 XKEWB
2.0 The Cossack System Cossack had several weaknesses. The most important is
that the backtracking mechanism ftequently pruned the
In Cossack, components are represented as LOOPS part of the search space containing the correct solution.
objects and classes of components as LOOPS classes. Second, the partial choice mechanism was rarely invoked
Interrelationships between components or component because of difficulty of determining that a constraint was
classes are represented by slots with associated constraints. common to a set of components. Third, it was difficult to
A constraint specifies which objects might fill the slot by express extra conditions on constraints using the associ-
either enumerating the possibilities or specifying a class ated lisp expression, and more importantly, the informa-
whose instances might fill the slot. In addition, a constraint tion contained therein was not available to the inference
might have an associated LISP expression that would eval- engine. Finally, the representation lacked the ability to
uate to true or false given a particular candidate value for describe components that partially used other components
the slot. Thus, a class describing a high end computer (such as disk space) and to distinguish components
might have a slot calledprinter with a constraint specifying belonging to different computers in a multi-computer set-
that the value must belong to the class Printer and a lisp ting.
expression that evaluates to true when the value of thepag- The XKEWB system was developed in order to address
esperminute slot of a chosen printer is greater than 10. these weaknesses. At a high level, the system bears a
The inference takes as input some constraints specified strong resemblance to Cossack. Components are described
by the user. The state of the inference is represented by a in a frame-based language, and inference consists of a
set of goals describing components to be selected and the loop in which constraints are attached to goals and then a
set of posted Constraints which are constraints that have goal is executed, possibly generating new constraints.
not yet been processed. For each posted constraint, the sys- When a goal cannot be successfully executed, backtrack-
tem first attempts to attach the constraint to an existing ing is necessary. For example, the input constraints might
goal. Thus, if there is already a goal to find a printer and a specify a computer and a word processing package, hence
second constraint requiring a printer is encountered, the goals to find a computer and to find a word processing
system will try to satisfy both constraints with the same package would be created. Executing the word processing
goal. If there is no component matching the constraint, a goal might result in a choice, Microsofi-Word’ which has
new goal is created. When there are no unprocessed con- a constraint that the computer have a VGA monitor. This
straints, some goal is executed. Executing a goal involves constraint would then be attached to the computer goal.
selecting a component that satisfies the constraints. When Executing the computer goal would result in a choice
the choice is made, new constraints are posted, and the which would post constraints requiring disk drives, moni-
cycle continues. tors, etc.
If no component satisfies the constraints attached to a XKEWB’s representation language is more declarative
goal, a contradiction is implied. Cossack then backtracks and expressive than that used in Cossack. Components are
by undoing the choice at some goal that has posted a con-
1. Microsoft Word is a trademark of Microsoft Corporation

369
represented using a frame representation' with multiple be described independently of other components that
and strict inheritance. Frames representing components are might require the same resources, and yet results in config-
called classes and are organized in an IS-A (specialization) urations where one component is chosen to satisfy multi-
hierarchy. The slots of a frame have several facets, and the ple requirements. For example, the descriptions for several
combination of slot and facets is called a Constraint and software packages might specify that a printer is required,
corresponds to a Cossack constraint. and the attaching step will attempt to find one printer to
Below are two partial descriptions which illustrate the satisfy all of the packages. Notice that each request for a
component representation printer could add additional conditions to a goal. Thus a
Workstation (abstract) IS-A Computer word processing package could request a letter quality
subcomponents printer and a legal package would add the condition that
display: WorkstationDisplay the printer must be able to handle legal size paper.
number: [l , 21 While it is frequently desirable to satisfy several con-
keyboard: WorkstationKeyboard straints with a single component, it is often impossible to
disk: WorkStationDisk do so. The following paragraphs describe properties of a
memory: Memory
requires constraint that are used to refine the description of what
networkconnection: components can satisfy the constraint, and how these
NetworkConnection properties are used in matching constraints and goals.
First, constraints fall into one of three categories: sub-
Ventura-Publisher2 (individual) IS-A component constraints, requires constraints, and proper-
PublishingPackage ties. Subcomponent constraints describe components that
requires are in some sense supplied by the containing component
printer: LaserPrintingResource and would not be supplied by a second component. For
constraint: example, a Workstation supplies a display therefore choos-
printer.postscript-capability ing a second workstation would result in a second display.
=true Thus the inference engine will attach only one subcompo-
disk: ExtStorResource
level: 657 nent constraint to a goal. Requires constraints, on the other
consumes: bytesconsumed hand, describe components that are needed but might be
memory: MemoryResource shared. Thirdly, properties are descriptions for which no
constraint : inference is required to find the intended instance. For
memory.supplied-by = example, no further inference is required to find the price
workstation of Ventura-Publisher. Properties generally describe
workstation: Workstation objects such as numbers, booleans, or strings that are not
properties components.
price: 2000 Another important facet of a slot is the constraint
Here, the class Workstation has a constraint described expression. The constraint expression of a constraint C
by the display slots that specifies that a workstation is con- constrains the slot values of objects that can satisfy C.
nected to one or two instances of the class WorkstationDis- Thus, the printer constraint in VenturuPublisher can only
play. The following sections describe the major steps of the be satisfied by printers that have the value true for the
inference algorithm. The discussion will make use of the property postscript-capubilify. The constraint expression
above examples, and the meaning of the various parts of may involve other slot values as in the case of the memory
component description will be clarified. slot in Ventura-Publisher. Here the value of the supplied-
by slot of the memory must equal the value of the worksta-
tion slot of the publishing package. This constraint
4.0 Attaching Constraints expresses the fact that the memory requirement is on the
computer on which the publishing package is to run; not
The first step of the inference algorithm is to attach on some other computer in the configuration. Before
newly posted constraints to goals either by finding an exist- attaching a constraint, the inference engine makes a simple
ing goal that is compatible or by creating a new goal. The analysis of the constraint expression in which it checks for
attaching step is important because it allows components to equalities that might contradict slot values already bound
in the goal.
1. for example, FRL [8]which introduced the terms frame, slot, and facet A constraint expression is a boolean expression using
2. Ventura Publisher is a trademark of Ventura Software Inc., prices and the logical connectives not, and and or, comparison opera-
storage levels are fictitious

370
tors such as > and =, predicates such as instance-of, and The specializations of ExtStorResource describe two
expressions using an assortment of arithmetic and other different implementations of the resource, each con-
operators. strained to supply at least as much disk space as is con-
For the display slot, an interval is specified for the num- sumed. This allows XKEWB to configure the external
ber facet that specifies that a workstation has from one to storage as either one or two disk drives. In addition, the
two displays. This is in effect two constraints. XKEWB level slot of a resource can have a maximum facet which
assumes that the values in a multiple-valued slot are resaicts the sum of the levels used by the constraints shar-
intended to be different will never attach the corresponding ing that resource.
constraints to the same goal. The use facet of a slot is also used to control when a
The disk constraint is an example of a resource con- constraint is attached to a goal. If the use of a constraint
sumption constraint. The value of the consumes facet iden- attached to a goal has the value exclusive, no other
tifies a slot in the type, ExtStorResource,and the facet level requires constraint may be attached to that goal. An exam-
specifies a value. The meaning of this constraint is that the ple is a printer cable that makes exclusive use of the ports
value of the slot bytesConsumed in an instance of ExtStor- to which it will be attached.
Resource is equal to the sum of the levels consumed by all The final attachment mechanism is a context mecha-
resource constraints that have that instance as a value. The nism which restricts sharing of components. Every con-
following is a possible definition of the resource: straint is in a context that is generally inherited from the
object containing that constraint. However, by specifying
ExtStorResource (abstract) IS-A Resource a container facet for a constraint, one can indicate a larger
levels context for a constraint. For example, the software
bytesconsumed:Number selected for a particular workstation would have con-
straints that could share components in the context estab-
ExtSto rResource1 (individual) IS-A lished by that workstation. One might, however, want to
ExtStorResource specify the network as the context for the printing require-
requires
diskDrive: DiskDrive ment so that the printer is not constrained to be a subcom-
constraint: diskDrive.capacity> ponent of the workstation. The complement to the
bytesconsumed container facet is the setContuiner facet which indicates
that the selected component is to establish a context of a
ExtStorResource2 (individual) IS-A ExtStorRe- certain type.
source
requires
diskDrive1: DiskDrive 5.0 Executing a Goal
diskDrive2: DiskDrive
constraint: diskDrive2.capacity> The properties of a goal are its attached constraints, its
(bytesconsumed- current choice, and its posted constraints. The current
diskDrive1.capacity)
choice is a class in the knowledge base that satisfies all of

WorkStationCIassl

Workstation
4 WorkstationClass2 A - - Worktation 1

WorkstationClass3

3DGraphics-Capability WorkstationClass4

I Figure 1: Multiple Inheritance in the IS-A Hierarchy

37 1
the attached and posted constraints. Classes in the knowl- hierarchy to determinecommon constraints.Whereas Cos-
edge base are labelled either abstract or individual. When sack searched for common constraints from among all
the choice for a goal is an individual, that goal is satisfied. individual candidates for the goal, XKEWB is able to sim-
For example, a choice of WorkStation is abstract and ply pick them from the current choice. For example, the
requires further refinement, while a choice such as COM- class GraphicsSoftware might have subclasses HighEnd-
PAQ-DESKPR0_386N1, if it is an individual, would mean Graphics and LowEndGraphics where HighEndGraphics
that the goal is satisfied. might have a constraint that requires a high resolution dis-
In order to deal with multiple inheritance, executing a play. Rather than trying each high end graphic package
goal involves choosing a description from the most general only to fail on the display requirement, XKEWB first spe-
common specializations of the current choice and the types cializes GraphicsSoftware to HighEdGraphics and posts
of all attached constraints. The most general common spe- the requirement. If the constraint cannot be satisfied, back-
cializations of a set of classes C to be a set S of classes tracking will result in trying LowEndGraphics. This tech-
such that each element of S is a specialization (IS-A nique, which will be called hierarchical partial choice can
descendant) of every class in C, and no element of S is a result in a great deal of pruning of the search space.
specialization of any other element of S. For an example of As well as the early detection of contradictions, hierar-
the use of multiple IS-A parents, consider a class Worksta- chical partial choice can limit the search space by provid-
tion that is specialized into WorkstationClassl, Worksta- ing information that restricts the choices at a goal. For
tionClass2, etc. Suppose also that some of these example, the goal to select a workstation might post a
workstations have a 3-D graphics capability which is requirement for a CPU chip. The goal selection heuristics
described by several constraints. Rather than duplicate the (discussed below) would favour specializing the CPU chip
definition of these constraints in each workstation which goal before the workstation goal, hence when it becomes
has it, one can define a class 3DGraphcs-Capability and time to select a workstation, the CPU chip will be more
make those workstations that have the capability IS-A tightly constrained, say to 80386’. Thus only specializa-
descendants of this class. This is illustrated in figure 1 tions of Workstation that are compatible with this choice
where WorkstationClass2 and WorkstationClass4 are the need be considered. This is very important since the
most general common specializations of Workstation and choice of CPU chip might have been constrained by the
3DGraphcs-Capability, while Workstation1 is not since user either directly through an input constraint, or indi-
another common specializationsubsumes it. rectly through a constraint on some other aspect of the sys-
From the most general common specializations, a class tem such as a software package.
is a valid choice if it satisfies the constraint expressions of Once a choice has been made, any new constraints are
all attached and posted constraints. For example, the goal posted. The new constraints are all constraints defined in
for printer would be satisfied by Laserprinter if an the choice and all of its IS-A ancestors that are not already
attached constraint specified print-quality = letter. Posted posted constraints of the goal. The new constraints are put
constraints are often relevant as well. For example, for the into the list NewConstraints, and the algorithm returns to
choice Printer, the goal might have posted a constraint for the constraint processing step.
an attached computer which has been specialized to an
individual computer, say ModelX. This constraint might
have the expression port-type = computer.port-type which 6.0 Backtracking, Goal Selection, and
specifies that the computer’s port type must be compatible Preferences
with the printer’s. Clearly, a the printer class with port type
Centronics cannot be chosen if the computer’s type is Should there be no valid choice, it is necessary to back-
serial. Note, that when the choices are not individuals, track. For the purposes of backtracking, the configuration
there will be slots that are not bound, so evaluation of the process is a sequence made up of the operations “attach a
constraint expression will result in unknown. In this case, constraint to a goal” and “make a choice for a goal”. If the
the class is allowed as a choice. previous step was “attach a constraint to a goal”, back-
Making a choice from the most general common spe- tracking involves attempting to make a new attachment.
cializations of the current choice and attached constraints Note that creating a goal counts as an attachment and can
has the effect that constraints common to a group of com- only be tried once for a constraint. If a new attachment is
ponents are tested before each of those components is tried. not possible, backtracking is again necessary. Similarly, if
That is, the algorithm uses the structure of the component the previous operation was “make a choice for a goal”, a
1. COMPAQ and DESKPRO are registered trademarks of Compaq Com-
puter Corporation 2.8086.80286,80386 are trademarks of Intel Corporation

372
new choice is attempted. Again, if this fails, further back- fast enough that the user could quickly generate several
tracking is necessary. and choose the most appropriate.
Several heuristics are used to minimize backtracking. The preference heuristics are used only for ordering
First, a choice is made for any new goals. Secondly, goals choices. No pruning is done by the algorithm, which there-
farthest (measured by the number of constraints in the fore will run in exponential time in the number of compo-
shortest path) from the primary system goals are preferred. nents in the worst case.
This has the result that choices for the innermost goals are
tightly constrained (as described above.) Thirdly, the goals
with the fewest posted constraints are specialized 6rst. This 7.0 User Interface
is important because in general making an incorrect choice
for a complicated component such as a workstation would The user interface to XKEWB makes it particularly
result in much more retracting of constraints than would easy to enter the constraints on the system to be config-
specializing the goal for a mouse. ured. The interface makes use of a bitmapped display and
The nature of the configuration problem is such that no a mouse, and under most conditions no typing is necessary
two users will agree on an objective function which the to generate configurations. An approximation to the actual
system should optimize. For example, one user will want to screen is displayed in figure 2. The boxes are mouse
minimize cost while another will want to minimize the selectable and change colour when selected. Where the
component count. Instead of a global objective function, options are mutually exclusive, selecting an option will
therefore, in XKEWB there is preference facet that con- turn off the one already selected. Clicking on a selected
straints may have that specifies an ordering of the possible word deselects it. Since screen real estate is limited, the
choices for the attached goal. For example, a constraint options are spread over several logical pages; one for hard-
might specify that the choice with the smallest price should ware and several for software options. Furthermore, there
be tried first. This is a heuristic only, especially in the con- is a set of pages for each workstation being configured.
text of hierarchical partial choice where the value of the Flipping between this pages can be done rapidly by click-
property may not be available until near the end of the ing on buttons in a control panel.
inference. For example, when specializing Printer and As mentioned above, input to the algorithm is a set of
choosing between Laserprinter and InkJetPrinter the constraints exactly the same as those used within a compo-
prices would not be available. As well as encoding prefer- nent description. Thus the input to a configuration problem
ences in individual constraints, a global default preference might be
can be specified. computer1: Workstation
While not providing “optimal” solutions, the local pref- constraint:CPU = 80286 &
erence technique provides good solutions. Dhar and Ran- softwarePackage[l]= dBASE IV1&
ganathan [3] have observed that this technique is less softwarePackage[2] = Microsoft Excel2
brittle than a global optimization approach and also pro-
vides more satisfying solutions. Also, another design goal 1. dBASE IV is a trademark of Ashton Tate
behind XKEWB was to make generating configurations 2. Microsoft Excel is a trademark of Microsoft Corporation

CPU:
---
III II I
80386 80286 8086

I
Software: Microsoft Excel I IVentura Publisher]
~~~~ ~

Figure 2: The XKEWB User Interface

373
\ MotorolaI’
SoftwarePackagel SoftwarePackage2
CPU: HighMIPS

Figure 3: A Partial XKEWB Hierarchy

which asks for two work stations, specifying the CPU GBus specializes t0 ATBus. NOW,Gcpu, the Only open
type and the desired software. The idea behind the inter- goal, has types HighMIPS and Intel.The most general
face is that each conjunct in the above constraints can be common specialization of these two classes is HighIn-
selected by pressing buttons in the interface. The first con- tel and becomes the choice for the goal. On the next iter-
figuration is generated by pressing the Configure button ation, 8 0 3 8 6 sx is chosen because it is the only choice
and subsequent solutions can be generated using the Next consistent with the fact that the bus constraint is bound to
Configuration button. a 16 bit bus.
Although it is very simple, this example illustrates how
XKEWB is able to focus on the correct CPU chip with no
8.0 Example search through the space of configurations. Even in this
example, the space could be quite large if the bottom of
Suppose the system is simply configuring a CPU chip the CPU hierarchy were to be filled in with descriptions of
and two software packages using the partial hierarchy more chips.
describing CPU chips, software and a bus shown in figure

For simplicity, assume that the system is attempting to 9.0 Conclusions


configure two software packages, a CPU chip, and a bus
from the input constraints c: CPU, sl : Software- XKEWB contains several areas of improvement over
Packagel, s2 : SoftwarePackage2, and b:AT- its predecessor, the Cossack system. These include 1) the
Bus. Initial processing of these constraints results in four introduction of resource constraints, 2) the context mecha-
gods, respectively GCPU, Gsl, GS2, and GBus. Execut- nism which allows the configuration of multiple comput-
ing Gcpu results in an initial choice of the object CPU. ers sharing resources, 3) an improved inference algorithm
Next the constraint bus is posted, then, in the attach step, introducing hierarchical partial choice, and 4) an improved
it is attached to GBus. In the next execute step, one of the user interface. Points 1 and 2 result in the ability to cover a
unexecuted goals is preferred over Gcpu. The system much broader and more interesting range of configuration
might pick Gsl, specializing it to SoftwarePackagel problems. Point 3 results in a system that is more complete
and posting the CPU constraint. This constraint is then since exhaustive search is used, and in a system that is
attached to Gcpu. Similarly Gs2 would be executed much faster. This is due, in part, to the introduction of
choosing SoftwarePackage2 and posting a CPU con- hierarchical partial choice. Tracing the execution of
straint which is subsequently attached to Gcpu. Next XKEWB shows that the backtracking that occurs is local-

374
ized, that is, that for the examples that were chosen, no References
major jumps occurred. Point 4 results in a system that is
particularly convenient to use. [ll Bowen, James, “Automated Configuration Using a
Unlike rule-based systems such as XCON or hybrid sys- Functional Reasoning,” in Artecial Intelligence and its
tems as described in [lo] and [9] XKEWB is purely declar- Applications, ed. Cohn, A. G. & Thomas, J. R., pp. 79-
ative: there is no need for rules describing how to put a 106, John Wiley & Sons, New York, 1986.
system together. The declarative representation is impor- [21 Davis, Randall, “Meta-Rules: Reasoning About Con-
tant for making the knowledge acquisition and mainte- trol,” Artijicial Intelligence, vol. 15, no. 3, pp. 179-222,
nance tasks manageable. Unlike the system described in 1980.
[ 11, XKEWB has a hierarchical representation which [3] Dhar, Vasant and Ranganathan, Nicky, “Integer Pro-
enables the use of the hierarchical partial choice inference gramming vs. Expert Systems: An Experimental Com-
scheme for efficiently generating solutions. The hiearchical parison,” Communications of the ACM, vol. 33, no. 3,
representation is important also for efficiency in acquiring pp. 323-336,March 1990.
know ledge. [4] Frayman, Felix and Mitral, Sanjay, “Cossack: A Con-
An potential weakness of the technique is that in the straints-based Expert System for Configuration Tasks,”
worst case a great deal of backtracking could occur. One in Knowledge-based Expert Systems in Engineering:
approach to this problem would be to introduce some sort Planning and Design, ed. Sriram, D. & Adey, R. A.,
of dependency directed backtracking. A second approach Sept. 1987.
might be to break a configuration problem into a set of [5] Goldstein, Ira P. and Roberts, R. B., “Nudge: a knowl-
loosely connected subproblems. In practice, however, the edge-Based Scheduling Program,” in Proceedings of
hierarchical partial choice technique in itself has been suf- the Fifth International Joint Conference on Artijicial
ficient for generating solutions without major backtrack- Intelligence, pp. 257-263, Cambridge, MA, 1977.
ing. [6]McDermott, J., “Rl: A Rule-Based Configurer of
A working version of XKEWB was implemented on a Computer Systems,’’ Artifrcial Intelligence, vol. 19, no.
Xerox 1186 workstation in the Interlisp-D environment. 1, 1982.
Knowledge bases for the Xerox PC and for the Xerox Doc- [7]Mittal, Sanjay and Frayman, Felix, “Making Partial
umenter’ workstation were demonstrated. The PC knowl- Choices in Constraint Reasoning Problems,” in Pro-
edge base contained about 150 abstract classes and 75 ceedings of the Sixth National Conference on Artifrcial
individual classes, while the Documenter knowledge base Intelligence, pp. 631-636, Seattle, 1987.
consisted of about 120 abstract and 100 individual classes. [81Mittal, Sanjay and Frayman, Felix, “Towards A
A configuration involving several Documenter worksta- Generic Model of Configuration Tasks,” in Proceed-
tions sharing a laser printer takes on the order of two min- ings of the Eleventh Joint Conference on Artijicial
utes to generate. In comparison, configuring a Xerox PC in Intelligence, pp. 1395-1401,Detroit, 1989.
an earlier version of Cossack took 10 to 20 minutes. The [9] Pierick, J., “A Knowledge Representation Technique
newer Documenter knowledge base made use of the more for Systems Dealing with Hardware Configuration,” in
expressive XKEWB features such as resources for allocat- Proceedings of the Fifth National Conference on Artiji-
ing the appropriate disk drive based on the expected num- cia1 Intelligence, pp. 991-995, Philadelphia, 1986.
ber of users and the number of software packages selected, [lo] Wu, H., Chun, H. W., and Mimo, A., “ISCS A Tool
and containers for configuring shared laser printers. Kit for Constructing Knowledge-Based System Con-
figuratom,” in Proceedings of the Fifth National Con-
Acknowledgments ference on Artificial Intelligence, pp. 1015-1021,
Philadelphia, 1986.
Sanjay Mittal and Felix Frayman provided a valuable
introduction to the Cossack system and discussion of par-
tial choice and many of the issues raised in this paper.

1. 1186. Interlisp-D,LOOPS and Documenter are trademarks of Xerox


corporation

375

You might also like