throbber
RI Revisited:
`Four Years in the Trenches
`
`Judith Bachant
`Intelligent Systems Technology Group
`Digital Equipment Corporation
`Hudson, Massachusetts 01’749
`
`John McDermott
`Department of Computer Science
`Carnegze-Mellon University
`Pittsburgh, Pennsylvania 15213
`
`Abstract
`
`to use a rule-based
`began
`In 1980, Digital Equipment Corporation
`to configure VAX-
`system called Rl by some and XCON by others
`In the
`intervening
`years, Rl’s knowledge has
`11 computer
`systems
`increased substantially
`and its usefulness
`to Digital continues
`to grow.
`This article describes what
`is involved
`in extending Rl’s knowledge base
`and evaluates Rl’s performance during
`the four year period.
`
`198 1 ISSUE of the AI Magazine, an
`IN THE SUMMER
`the formative years” described how a
`article entitled
`“Rl:
`rule-based configurer of computer systems had been devel-
`oped and put to work (McDermott,
`1981). At the time that
`article was written, RI had been used for only a little over
`a year and no one had much perspective on its use or use-
`fulness. RI has now been configuring computer systems for
`over four years. This experience has provided some insight
`into the ease and difficulty of continuing
`to grow an expert
`system in a production environment and into the kind of per-
`formance expectations
`it might be reasonable to have about
`a current generation rule-based system.
`The approach Rl
`takes to the configuration
`
`task and the
`
`roles in Rl’s development.
`A large number of people have played critical
`Among
`those who deserve special mention are John Barnwell, Dick
`Caruso, Ken Gilbert, Keith Jensen, Allan Kent, Dave Kiernan, Arnold
`K&t,
`Dennis O’Connor,
`and Ed Orciuch. We want
`to thank Allen
`Newell, Dennis O’Connor,
`and Ed Orciuch
`for their helpful comments
`on earlier drafts of this article
`
`is represented have been described else-
`way its knowledge
`where (McDermott, 1980) and (McDermott,
`1982). Briefly,
`given a customer’s purchase order, Rl determines what,
`if
`any, substitutions and additions have to be made to the or-
`der to make it consistent, complete, and produce a num-
`ber of diagrams showing the spatial and logical relationships
`among the 50 to 150 components
`that typically constitute a
`system. The program has been used on a regular basis by
`Digital Equipment Corporation’s manufacturing
`organiza-
`tion since January, 1980. Rl has sufficient knowledge of the
`configuration domain and of the peculiarities of the various
`configuration constraints
`that at each step in a configuration
`task it is usually able to recognize just what
`to do; thus it
`ordinarily
`does not need to backtrack when configuring a
`computer system.
`At the beginning of Rl’s development, no clear expecta-
`tions existed about how long it would take to collect enough
`knowledge to make Rl an expert. We did expect that at some
`point
`the rate at which Rl would acquire new knowledge
`that
`if not stop. We even thought
`would at least slow,
`Rl would be done eventually
`(that
`is, Rl would enter a
`maintenance mode of well-defined and minor additions,
`in-
`terspersed with occasional bug fixes.)
`It
`is difficult now
`to believe Rl will ever be done; we expect
`it to continue
`to grow and evolve for as long as there is a configuration
`task.
`It may be that
`if Rl’s domain were less volatile,
`Rl would not require perpetual development.
`But
`it
`is
`
`THE AI MAGAZINE
`
`Fall 1984 21
`
`AI Magazine Volume 5 Number 3 (1984) (© AAAI)
`
`CONFIGIT 1024
`
`1
`
`

`

`NU MBER OF RULES
`3250 -
`
`3000 -
`
`2750 -
`2500 -
`
`2250 -
`
`2000 -
`
`1750 -
`
`1500 -
`
`1250 -
`
`VAX-11/780
`
`(10/79)
`
`VAX-11/725
`PDP-11/44
`PDP-11/24
`MICROVAX-1
`MICRO-PDPl
`
`(11/83
`(11/83:
`(11/83:
`(10/83:
`V/83:
`
`VAX-11/730
`
`(3/82)
`
`I
`l/1/80
`
`I
`l/1/81
`Rl’s Growth
`Figure 1.
`
`I
`l/1/82
`
`I
`l/1/83
`
`I
`1
`./l/84
`
`the
`
`if the domain were less volatile,
`probably also true that
`task would not require a knowledge-based system.
`The early expectations about Rl’s performance were
`likewise vague, except just as Rl was beginning
`to be used,
`a Digital employee responsible
`for the configuration process
`predicted
`that
`for Rl
`to be useful, 90% to 95% of its
`configurations would have to be perfectly correct. This per-
`formance goal is interesting, not so much because RI
`took
`three years to reach it, but because it turned out to be com-
`pletely wrong. Rl’s
`task is just one small part of a process
`designed to ensure that high quality computer systems are
`built. Significant
`redundancy exists in the process precisely
`because historically
`no individual
`has both known enough
`about configuration and been able to pay close enough at-
`tention
`to each order to be entrusted with
`the total respon-
`sibility. Rl was able to provide significant assistance even
`when it knew relatively
`little because the people who used Rl
`did not demand more of it than of its human predecessors.
`The one definite performance expectation almost everyone
`had about Rl
`in its early days was that
`it would always
`configure
`the same set of components
`in the same way.
`It
`is obvious now and should have been obvious then that this
`expectation could have been satisfied only if Rl had been
`discouraged from becoming more expert.
`These expectations about Rl’s developmental and per-
`
`In
`the two parts of the article.
`introduce
`formance histories
`the next section, the focus will be on the kind of involvement
`required
`to extend Rl’s knowledge base. The final section’s
`focus will be on the kinds of erroneous behavior Rl has ex-
`hibited.
`
`Rl’s Developmental History
`
`This section provides a somewhat anecdotal trip through
`Rl’s past. Although
`it mentions the first year, when most of
`the activity was at Carnegie-Mellon University
`the
`[CMU],
`primary
`focus is on the four following years, after Rl began
`to be used at Digital. When CMU handed over the initial
`version of Rl
`to Digital
`in January 1980, Digital scrambled
`to put an organization
`in place that could continue
`its de-
`velopment. This organization, currently known as the Intel-
`ligent Systems Technologies group, began with only five in-
`dividuals, none of whom had any background
`in AI. Over the
`past four years, the group has grown to 77 people responsible
`for eight different knowledge-based systems, one of which is
`Rl. As Rl was developed, an attempt was made to effect
`a division of labor between those people responsible for rep-
`resenting Rl’s knowledge and those responsible
`for collect-
`ing and validating
`that knowledge. Of the initial
`technical
`people, one was an engineer who played the roles of both
`
`22 THE AI MAGAZINE
`
`Fall 1984
`
`2
`
`

`

`to other domain ex-
`a domain expert and of an interface
`perts outside
`the group;
`the other
`three people
`took
`the
`knowledge collected by the engineer and formulated
`it so it
`was compatible with Rl’s other knowledge. When the or-
`ganization was a little over two years old the technical group
`had grown to eight people, five of whom were responsible for
`encoding the knowledge collected and validated by the other
`three. The size of the Rl
`technical group is still about eight.
`Now, however, less of a distinction exists between the people
`responsible for knowledge encoding and those responsible for
`knowledge collection.
`
`The Knowledge Rl Acquired
`
`Over the past four years, the amount of effort devoted
`to adding knowledge to RI has remained relatively constant
`at about
`four worker-years per year. And Rl’s knowledge
`has grown at a relatively constant rate, though the focus has
`shifted around. At times the task of eliminating
`inadequacies
`in Rl’s configuration knowledge has received the most atten-
`tion; at other times, the group’s energies have been directed
`primarily at broadening Rl’s abilities in various ways. Figure
`1 shows the rate at which Rl’s knowledge has grown;
`the
`points in time at which Rl became able to configure new sys-
`tem types are marked. Figure 1 does not show the amount
`of product
`information
`to which Rl has access. This infor-
`mation, which
`is stored
`in a data base, is a critical part
`of the body of information needed to configure a computer
`system correctly. Rl
`retrieves
`the description of each com-
`ponent ordered before it begins configuring a system; while
`configuring
`the system,
`if it determines some piece of re-
`quired functionality
`is missing, it searches the data base for
`components that will provide that functionality.
`Rl currently
`has access to almost 5500 component descriptions. We do
`not have good data on the rate at which the data base has
`grown, but what data we have suggest the growth
`rate is
`quite irregular.
`in number of
`is measured
`In this article, Rl’s growth
`rules. The following values hint at the amount of knowledge
`an Rl
`rule contains. The average conditional part of one
`of Rl’s
`rules has 6.1 elements (the minimum number
`is 1
`and the maximum 17). Each element is a pattern
`that can
`be instantiated by an object defined by as many as 150 at-
`tributes. On the average, a pattern will mention 4.7 of those
`attributes
`(the minimum
`is 1 and the maximum 11) and
`restrict
`the values which will satisfy
`the pattern
`in various
`ways. The tests are mostly simple binary
`functions
`that
`determine whether some value in the object has the specified
`relationship
`to some constant or to some other value in that
`or another object. The action part of an average rule has 2.9
`elements (the minimum
`is 1 and the maximum 10). Each
`element either creates a new object or modifies or deletes
`an existing object. A rule can be applied when all of its
`condition elements are instantiated.’
`
`rules as well as
`the nature of Rl’s
`about
`information
`‘For additional
`those of other systems written
`in 0ps5,
`see (Gupta, 1983)
`
`the first
`Work on RI began in December 1978. During
`four months, most of the effort was on developing an ini-
`tial set of central capabilities. The initial version of Rl was
`implemented
`in OP%, a general-purpose rule-based language
`(Forgy, 1979). By April, Rl had 250 rules. During
`the same
`period, a small amount of effort was devoted to generating
`descriptions of the most common components supported on
`the VAX-111780.
`After
`this demonstration version of Rl had
`been developed, most of the effort during the next six months
`was divided between refining
`those initial capabilities and
`adding component descriptions
`to the data base; in October
`1979, Rl had 750 rules and a data base consisting of 450 com-
`ponent descriptions. During
`the following six months,
`little
`development work was done on Rl either at Digital or CMU
`because the main focus was on defining a career path for Rl
`within Digital. But beginning
`in April 1980, three months
`were spent at CMU in rewriting
`the OPS4 version of RI in
`OPS5 (Forgy, 1981). Given that
`the knowledge was already
`laid out in the OPS4 version, a variety of generalizations
`emerged and the resulting system, though more capable, had
`only 500 rules.
`By the end of 1980, Rl had 850 rules, most of which
`were added by people at CMU to provide Rl with additional
`functionality;
`the primary
`focus at Digital during the second
`half of 1980 was on adding component descriptions
`to the
`data base and providing a group of people with
`the skills
`to take over the continued development of Rl. Most of the
`work on Rl since early in 1981 has been done by people at
`Digital. By March 1981, the group at Digital had extended
`RI so it could configure VAX-11/750
`systems. During
`the
`remainder of 1981, most of the group’s effort was focused
`on refining Rl’s knowledge of how to configure VAX-111780
`and VAX-11/750
`systems.
`In 1982, the focus changed to ex-
`tending Rl
`to cover more systems. While some effort was
`spent in improving Rl’s performance, substantial effort was
`spent in extending
`its scope. By March, a few months be-
`fore the VAX-111730 was announced, Rl was able to configure
`systems, and by July, Rl was able to configure
`VAX-11/730
`systems. At that point, Rl’s knowledge base
`PDP-11/23+
`consisted of about 2000 rules. The remainder of 1982 and the
`first few months of 1983 were devoted primarily
`to refining
`that knowledge. At that point, a concerted effort was made
`to extend Rl’s capabilities so it could configure all the sys-
`tems sold by Digital
`in significant volume. When that
`task
`was finished
`in November 1983, Rl had about 3300 rules
`and its data base contained about 5500 component descrip-
`tions. While a significant amount of time will continue to be
`devoted to extending Rl’s capabilities
`to cover new systems
`as they are announced, effort will also be spent in continuing
`to deepen Rl’s expertise in the configuration domain.
`As Digital has become more dependent on Rl, it has be-
`come increasingly
`important
`that Rl be highly reliable. Thus
`substantial attention has been paid to the question of how to
`combine the demands of reliability with
`those of continuous
`development. Early on, little attention was paid to formaliz-
`ing the developmental process; as problems were reported,
`
`THE AI MAGAZINE
`
`Fall 1984 23
`
`3
`
`

`

`NUMBER
`OF RULES
`
`AVERAGE
`RULES PER
`SUBTASK
`
`AVERAGE
`NUMBER
`OF PARTS
`ORDERED
`
`AVERAGE
`RULE
`FIRINGS
`
`PERCENT OF
`KNOWLEDGE
`FREQUENTLY
`USED
`
`NUMBER
`OF PARTS
`IN THE
`DATABASE
`
`Rl
`
`THE
`
`INITIAL
`
`Rl
`
`THE CURRENT
`VAX-111785
`VAX-11/780
`VAX-111750
`VAX-111730
`VAX-11/725
`MICROVAX-1
`MICRO-PDPll
`PDP-11/23+
`PDP-11/24
`PDP-11/44
`
`777
`
`3303
`2883
`2883
`2801
`2810
`2788
`1516
`1516
`1516
`2786
`2786
`
`76
`
`10 3
`9.8
`98
`97
`97
`97
`73
`73
`73
`9.7
`97
`
`88
`
`78
`163
`171
`111
`85
`34
`34
`44
`49
`43
`43
`
`1056
`
`1064
`2654
`1925
`1300
`1141
`622
`546
`546
`608
`567
`733
`
`44%
`
`47%
`24%
`31%
`29%
`29%
`8%
`18%
`18%
`20%
`13%
`15%
`
`420
`
`5481
`3398
`3398
`2915
`2489
`1981
`1490
`1828
`1894
`1763
`1764
`
`A comparison of the initial and current versions of Rl.
`
`Figure 2.
`
`individuals would collect the needed knowledge, add it to the
`system, and depending on the press of other problems, do
`more or less testing to determine
`that
`the overall capability
`of the system had not worsened. As time passed, the de-
`velopmental process acquired substantially more structure.
`Planned release dates are now preceded by extensive testing
`of the system.
`(McDer-
`the initial version of Rl
`The article describing
`mott, 1982) provides some insight
`into
`the nature of Rl’s
`knowledge by presenting a variety of measurements. Figure
`2 compares the measurements
`from the initial version of Rl
`with corresponding measurements
`from the current version.
`Since a significant amount of the knowledge
`in the current
`version is specific to just a subset of the system types it can
`configure, Figure 2 provides
`the measurements
`for system-
`specific configurers as well as for the union of those config-
`that
`urers. Until
`recently,
`instead of a single version of Rl
`could configure all system types, there was a version of Rl for
`each system type. Each of these versions consisted of a set of
`from 50 to 100 rules specific to a system type and two much
`larger sets of rules; it shared one of these rule sets with all of
`the other system types and the other with
`the system types
`having the same primary bus. About 300 of the shared rules
`were themselves specific to just one of the system types; each
`of these rules was included with
`the shared rules because it
`was relevant to a shared subtask.
`rules are grouped
`together on the basis of the
`Rl’s
`subtask
`to which
`they are relevant;
`the “number of rules”
`column displays
`the total number of rules available
`to Rl
`in performing
`the configuration
`task, and the “average num-
`ber of rules per subtask” column displays the mean number
`of rules in a group. The 3303 rules the current Rl has is
`the union of the rules of each system-specific configurer;
`the
`10.3 rules per subtask is the union of the groups of rules the
`system-specific configurers bring to bear on a particular
`task.
`The “average number of parts ordered” column displays the
`number of components Rl has to configure. This number
`
`24 THE AI MAGAZINE
`
`Fall 1984
`
`listed
`larger than the number of components
`is significantly
`on a purchase order since those line items actually
`refer to
`bundles of configurable components.
`The numbers in the “average rule firings” and “percent
`of knowledge
`frequently used” columns are based on small
`the numbers came from run-
`sets of runs. For the initial Rl,
`ning Rl on 20 typical orders. For the current Rl,
`the num-
`bers came from running each system-specific version of Rl
`on about 20 orders of comparable complexity. The “average
`rule firings” column shows that substantially more is done
`in configuring a VAX-111780 order now than was done ini-
`tially; almost twice as many rules are applied. Two factors
`contribute
`to this increase. The configuration
`task has been
`enlarged by definition
`(i.e.
`there is now more to do), and
`second, there has been an increase in the average number of
`components per order.2
`frequently used” column
`The
`“percent of knowledge
`shows what percentage of the rules are used at least once
`in at least one of the sample runs. Thus for the initial Rl,
`44% of the 777 rules were applied at least once over the 20
`sample runs, and for the current Rl, 47% of the 3303 rules
`were applied at least once over the approximately 200 sample
`runs. The fact that a substantial
`fraction of Rl’s knowledge
`is used only rarely
`is, of course, just what we would expect
`of a knowledge-based system. But
`the percentages for the
`system-specific versions are somewhat misleading. We would
`expect the percentage for each version to be lower than the
`overall percentage because each was run on only about 20
`orders. However, because each version has knowledge
`that
`is not relevant
`to its tasks, the percentages for the versions
`are lower than they otherwise would be. The percentages for
`the VAX-111780,
`the VAX-111750,
`and the VAX-111730 are
`the most accurate, but even they are too low by several per-
`centage points. Since the nature of the knowledge used by
`
`the average, 1.67 VAX-11/780
`20n
`configure an order.
`
`cpu minutes are required
`
`to
`
`4
`
`

`

`the percentage
`that
`it is likely
`each version is quite similar,
`of the knowledge frequently used by each is pretty much the
`same-somewhere
`between 35% and 40% .
`About 65% of the 2526 rules added to Rl since 1980
`extend Rl’s general configuration
`capabilities;
`only about
`35% of the rules are specific to a single system type. Of the
`65% at least 15% were added to correct or refine knowledge of
`how to perform some subtask. This lower bound is suggested
`by the fact that
`the “average number of rules per subtask”
`increased by 30% during
`the past four years (i.e., about 230
`rules were added to the groups of rules applicable
`to the
`subtasks the initial Rl knew how to perform); adding a rule
`to the group applicable
`to some subtask is almost invariably
`done to correct or refine the knowledge of how to perform
`that subtask.
`The 15% is a lower bound because as the
`knowledge required
`to perform some subtask grows, it may
`become evident
`that what was viewed as a single subtask
`can be viewed as two or more simpler subtasks; what we
`do not know is how much the average number of rules per
`subtask would have grown if this subtask splitting had never
`occurred.
`
`The Kinds of Changes Rl Has Undergone
`
`the task of developing Rl had just
`As it turned out,
`begun when it was first put
`into use.
`In this section, we
`attempt
`to give a flavor of the kinds of changes that have
`been made to Rl over the past four years by examining a few
`examples in some detail. Our primary purpose in examining
`the growth of Rl’s knowledge
`is to better understand what
`is involved
`in adding knowledge
`to such a system. We can
`identify
`four reasons why knowledge was added to Rl:
`
`(adding knowledge
`refinements
`l To make minor
`improve Rl’s performance on an existing subtask);
`l To make major
`refinements
`(adding
`the knowledge
`required
`for Rl
`to perform a new subtask);
`l To extend
`the definition of the configuration
`significant ways.
`
`task in
`
`to
`
`is
`Ordinarily when people talk about why knowledge
`added to an expert system, they seem to have the first reason
`in mind. As we have seen, of the more than 2500 rules
`added to Rl during
`the past four years, the data in Figure
`2 suggest that more than 10% have been added to make
`minor refinements,
`fewer than 40% have been added to make
`major refinements, at least 35% have been added to provide
`functionality
`needed to deal with new system
`types, and
`perhaps as many as 15% have been added to extend
`the
`definition of the task in significant ways.
`Minor Refinements. A knowledge addition of the first
`type is required when Rl cannot perform some subtask that
`it was thought
`to be able to perform. For example, over the
`years RI has made several errors
`involving
`the placement
`of backplanes
`in boxes. One instance of such an error has
`to do with a backplane’s
`In one variety
`location.
`of a 24
`slot box, because of power considerations, a backplane
`is
`
`if it covered
`that
`to cover slot 10. Rl knew
`not permitted
`slot 10 when placing
`a backplane,
`it needed
`to move
`that
`backplane toward the back of the box so the backplane’s front
`edge would be in slot 11. Rl’s knowledge was incomplete
`because it did not know it had to move any previously placed
`backplane
`from
`the front of the box toward
`the middle so
`that its back edge would be in slot 9. This backplane has to
`be moved toward
`the middle because leaving a larger space
`between the two backplanes would mean the standard cable
`used to connect backplanes could not be used (since it is not
`long enough). Fixing Rl was a straightforward
`task, but it
`required a certain amount of creativity
`(i.e., it was not just
`a matter of “adding some more domain knowledge.“) What
`lacked was any notion of “deliberately
`vacant space.”
`Rl
`In order to provide rules that could recognize situations
`in
`which blank space was inappropriately
`positioned, Rl had
`to have the concept of blank space and an understanding of
`how to make a note that a particular
`space had been left
`blank on purpose. Given this, it was straightforward
`to add
`a few rules that recognized when some piece of blank space
`was inappropriately
`located and swap it with a backplane.
`Major Refinements. A knowledge addition
`that results
`in a major refinement
`to Rl can be made in two kinds of
`situations: when Rl does not have any knowledge about how
`to perform some subtask, and when its knowledge of how to
`perform some subtask becomes so tangled
`that ways need
`to be found of representing
`the knowledge more generally.
`Brief examples of both situations are presented below; in the
`following section we provide a more lengthy analysis of one
`attempt
`to rewrite a set of rules, initiated almost purely
`to
`increase generality and understandability.
`Most of the modules Rl configures on a UNIBUS
`consist
`of one or more boards that plug into backplanes which go
`in boxes.
`If multiple boards are required,
`they are usually
`placed next to each other in the same backplane. A situation
`unfamiliar
`to Rl arose when a module was designed with
`boards on two buses.
`Its first board was to be configured
`in an SPC backplane while
`the three
`remaining
`boards were
`to be configured
`in a special backplane
`that had to be lo-
`cated in the same box as the first board, but not in the same
`backplane. One way of extending Rl
`to handle
`this new
`component would have been to use a look-ahead strategy;
`Rl would have checked for space, power, and cabling con-
`straints on the special backplane before configuring
`the first
`board. An alternative would have been a simple backtrack-
`ing strategy. The approach Rl actually
`took involved a com-
`bination of both
`look-ahead and backtracking.
`RI applies
`the same rules it uses for other modules
`to configure
`the
`first board; a few special rules then try
`to foresee abstract
`constraint violations
`involving
`the rest of the boards.
`If a
`problem
`is found, the first board is unconfigured.
`If no con-
`straints are violated, power and space are reserved for the
`remaining boards.
`Early in Rl’s history, only two types of panels needed to
`be considered. A few rules were sufficient
`to guard against
`the possibility of trying
`to configure two panels in the same
`
`THE AI MAGAZINE
`
`Fall 1984 25
`
`5
`
`

`

`space in a cabinet. Templates were used to describe panel
`placement possibilities;
`the rules recognized when some par-
`ticular space was already occupied and avoided that space.
`As Digital
`introduced new products
`the situation became
`increasingly complicated until
`five different
`types of panels
`as well as disk drives and boxes could potentially
`occupy
`the same space with differing degrees of overlap. Because
`the original approach
`required all possible conflicts
`to be
`enumerated,
`it became increasingly unwieldy as the prob-
`lem grew in complexity. The new solution
`involved redesign-
`ing the templates so the information
`they contained could
`be manipulated by a small number of more general rules
`and by making minor changes to the action parts of about
`60 already existing rules that dealt with cabinet space deci-
`sions. This strategy worked well for about a year until Digital
`redesigned its cabinets to comply with new FCC regulations.
`At that point, the templates became too unwieldy because of
`the sheer number of possible individual
`locations; since the
`redesign also eliminated most of the irregularities of the pre-
`vious problem,
`it became possible to simplify
`the templates
`and keep track of potential conflicts with a few very general
`rules.
`
`New System Types. Providing Rl with the functionality
`it needed to deal with new system types has constituted a
`significant portion of the development effort. Since major
`configuration differences exist among the various buses sup-
`ported by different CPU types,
`it was not clear
`initially
`how much configuration
`knowledge
`is common across sys-
`tem types. When a VAX-111750
`configurer was developed,
`the VAX-111780
`configurer was used as a model, but
`the
`knowledge bases were initially
`completely separate. Once
`the VAX-111750 configurer had enough knowledge to be use-
`ful, it was merged with
`the VAX-111780 configurer. On the
`other hand, the VAX-II/730
`configurer was integrated,
`from
`the beginning of its development, with the older Rl; the new
`version was developed by creating a small knowledge base
`(consisting of about 100 rules) specific to the VAX-11/730,
`adding some rules specific to the VAX-11/730 to the common
`knowledge base, and generalizing several of the rules in that
`common knowledge base. This approach worked well for the
`VAX-111730, but when we turned our attention
`to the PDP-
`11/23+, we reverted
`to the approach we had used for the
`Several factors were involved
`in this decision.
`VAX-11/750.
`Rl, up to this point, knew only of VAX-11 systems, which
`are UNIBUS and MASSBUS based, while the PDP-11/23+
`is
`based on the LSI22 bus. The rules for configuring
`these buses
`have little
`in common. Moreover,
`the PDP-11/23+ supports
`a variety of operating systems, requires a completely different
`paneling structure, and assumes different power and capacity
`characteristics
`for its boxes and backplanes. Since the PDP-
`11/23+ is quite dissimilar
`to the VAX-11 systems, a separate
`version of Rl was developed for this task. Each of the sub-
`sequent system configurers was integrated with either
`the
`VAX-11 or the PDP-11/23+
`system (depending on whether
`it had a UNIBUS or a LS122 bus). Recently, it was decided
`that in a production environment,
`it would be advantageous
`
`26 THE AI MAGAZINE
`
`Fall 1984
`
`to have one single system; by April 1984, all of the system
`configurers had been merged. Future system type additions
`will be part of this single version of Rl from the beginning
`of their development.
`Adding
`the knowledge required to deal with new system
`types is non-trivial even when the new type is quite similar to
`types Rl already knows how to configure. Part of the effort of
`extending Rl’s configuration capabilities
`to cover a new type
`is due simply
`to the added amount of knowledge. For each
`of the types, we have had to add a great deal of data to the
`data base as well as make extensive rule changes and addi-
`tions. Many of the decisions involve how to represent the new
`knowledge
`in the rules, but new data base representations
`are sometimes also required. The full extent of the effort
`varies, depending on the degree of similarity
`between the
`added system type and the types Rl can already configure.
`When there is a high degree of similarity,
`the form in which
`the existing knowledge
`is represented provides substantial
`guidance for how to represent the new knowledge. When the
`new system is quite dissimilar, substantial amounts of design
`are required.
`role in Digi-
`As Rl’s
`the Task Definition.
`Extending
`tal’s manufacturing process has evolved, knowledge has been
`added to Rl
`that extends
`the definition of its task. For
`example, Rl was extended
`in January of 1983 to handle
`“multiple-CPU”
`orders. Rl was originally designed to deal
`with orders containing a single CPU. But multiple-CPU or-
`ders have become increasingly common, especially with
`the
`advent of smaller system types where multiple
`identical sys-
`tems and/or several different systems on the same order are
`the norm. Part of the challenge of extending
`the definition
`of Rl’s
`task
`involves
`finding a way to realize some new
`capability
`that does not require extensive modifications
`to
`Rl.
`In this case, we avoided the temptation
`of trying
`to
`modify Rl
`to configure multiple,
`loosely coupled systems
`simultaneously.
`Instead, a few new rules (originally about
`10) were written
`to group the components
`into
`individual
`systems; each system was then configured
`in turn. Changes
`had to be made to 5 existing rules that determine what to
`configure and what order information
`to save; a few external
`initialization
`and output
`routines also had to be modified.
`The hard part was determining
`how Rl’s
`task definition
`could be extended most simply.
`it to
`A substantial change to RI in July of 1982 modified
`deal with a different categorization scheme for components.
`The component descriptions had been developed exclusively
`for Rl and were tailored
`to the configuration
`task. As Digital
`developed other knowledge-based systems for other purposes,
`it became desirable
`to have a common data base, where
`the components were categorized
`in a less ad hoc fashion.
`Before Rl could use the new descriptions, nearly all of its
`rules (about 2000 at the time) had to be changed, and for
`several hundred of these rules, the task of reformulation
`took
`considerable
`thought.
`While the difficulty of making changes of any of the four
`types we have just described is highly dependent on the na-
`
`6
`
`

`

`ture and scope of the knowledge that needs to be added, it
`also appears to be dependent on the amount of knowledge the
`system already has. In the early days, when’R1 was small,
`people who joined
`the project were able, reasonably quickly,
`to acquire enough of an understanding of the configuration
`task and of Rl’s approach to it to become competent devel-
`its sheer
`opers. But now that Rl has grown substantially,
`magnitude seems to serve as a barrier to the would-be devel-
`oper.
`It takes much longer now for someone who joins
`the
`group to gain an adequate understanding of how Rl does
`configuration.
`
`A Change over the Years
`
`To provide another view of Rl’s development, we have
`analyzed the changes in Rl’s knowledge
`for two closely re-
`lated tasks. One of the tasks involves deciding what back-
`plane should hold the next set of modules. The other is a
`subtask
`that may or may not be performed depending on
`what the backplane selection possibilities are. The decision
`of what backplane
`to configure next
`is constrained by the
`pinning
`type of the modules, the space and power available
`for them, the current
`length of the bus and its loading, and
`the number and mix of backplanes that have been ordered.
`A good backplane choice is one that minimizes
`the number
`of additional components
`that have to be added, while satis-
`fying all the constraints.
`The subtask
`is performed

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket