Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!pasteur!ucbvax!NRL-CSS.ARPA!jacob From: jacob@NRL-CSS.ARPA (Rob Jacob) Newsgroups: comp.ai.digest Subject: Re: Software Development and Expert Systems Message-ID: <8801270004.AA12634@nrl-rjkj.arpa> Date: 27 Jan 88 00:04:24 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 76 Approved: ailist@kl.sri.com To: sross@cs.ucl.ac.uk Saw your message about software engineering techniques for expert systems on the AIList. This may not be quite what you had in mind, but, here at the Naval Research Laboratory Judy Froscher and I have been working on developing a software engineering method for expert systems. We are interested in how rule-based systems can be built so that they will be easier to change. Our basic solution is to divide the set of rules up into pieces and limit the connectivity of the pieces. I'm going to attach a short abstract about our work to the end of this message and some references. Hope it's of use to you. Good luck, Rob Jacob ARPA: jacob@nrl-css.arpa UUCP: ...!decvax!nrl-css!jacob SNAIL: Code 5530, Naval Research Lab, Washington, D.C. 20375 Developing a Software Engineering Methodology for Rule-based Systems Robert J.K. Jacob Judith N. Froscher Naval Research Laboratory Washington, D.C. Current expert systems are typically difficult to change once they are built. The objective of this research is to develop a design methodology that will make a knowledge-based system easier to change, particularly by people other than its original developer. The basic approach for solving this problem is to divide the information in a knowledge base and attempt to reduce the amount of information that each single programmer must understand before he can make a change to the expert system. We thus divide the domain knowledge in an expert system into groups and then attempt to limit carefully and specify formally the flow of information between these groups, in order to localize the effects of typical changes within the groups. By studying the connectivity of rules and facts in several typical rule-based expert systems, we found that they seem to have a latent structure, which can be used to support this approach. We have developed a methodology based on dividing the rules into groups and concentrating attention on those facts that carry information between rules in different groups. We have also developed algorithms for grouping the rules automatically and measures for coupling and cohesion of alternate rule groupings in a knowledge base. In contrast to the homogeneous way in which the facts of a rule-based system are usually viewed, the new method distinguishes certain facts as more important than others with regard to future modifications of the rules. REFERENCES R.J.K. Jacob and J.N. Froscher, "Facilitating Change in Rule-based Systems," pp. 251-286 in Expert Systems: The User Interface, ed. J.A. Hendler, Ablex Publishing Co., Norwood, N.J. (1988). R.J.K. Jacob and J.N. Froscher, "Software Engineering for Rule-based Systems," Proc. Fall Joint Computer Conference pp. 185-189, Dallas, Tex. (1986). J.N. Froscher and R.J.K. Jacob, "Designing Expert Systems for Ease of Change," Proc. IEEE Symposium on Expert Systems in Government pp. 246-251, Washington, D.C. (1985). R.J.K. Jacob and J.N. Froscher, "Developing a Software Engineering Methodology for Rule-based Systems," Proc. 1985 Conference on Intelligent Systems and Machines pp. 179-183, Oakland University (1985). R.J.K. Jacob and J.N. Froscher, "Developing a Software Engineering Methodology for Knowledge-based Systems," NRL Report 9019, Naval Research Laboratory, Washington, D.C. (1987).