[net.lang] Expert Systems vs "Conventional" Programming

goodhart@noscvax.UUCP (Curtis L. Goodhart) (03/13/85)

-------
I have been involved, for two years, in a project to apply an existing
expert system development tool to a particular problem that we 
have to solve.  In this time, starting from scratch as far as AI and 
expert systems are considered, I have developed opinions about the advantages 
(and disadvantages) of expert systems, as opposed to traditional programming 
methods.  I would like to hear from people who feel they have qualified comments
regarding this issue.

In preface to a discussion I'd like to provide a few comments based on my  
observations and experience.  

Often people outside the field of AI see expert systems as some new kind 
of magic.  In fact it's not new magic or old magic but rather an area of
computer science that one might say provides styles or methods of programming
that prove useful in tackling certain types of problems.


The most valid two claims of advantages of expert systems that I see are:

  1) Expert systems provide cost efficient development for software develop-
     ments that will undergo an intensely iterative, or test/modify cycle
     (ie the exact procedure for problem solution, the algorithm, cannot
     be stated in detail and with confidence prior to initiating software
     development).
     
     The main basis of this is held to be a structured framework consisting
     of partitioned control, domain knowledge (procedural), and global data
     base (which includes domain factual or declarative knowledge).  It is
     the resulting uniformity and modularity that provide the foundation for
     an iterative development cycle.

  2) Expert systems, by way of recorded production rule firings, which are 
     often used, provide for explanation of the "reasoning process" used to 
     generate the solution.  This will be of value only if the end user will
     benefit from explanation, or if system development is speeded by expla-
     nation as opposed to the sole use of debug tools or methods that are
     used in non-expert-system developments.

Again, the degree of benefit would vary according to the characteristics of
the particular application, and the benefit increases for those problems that 
will require an intensive iterative type of development.  Note that point 1 
above points to expert systems as a development tool for the right kinds of 
prolbems.


Some of the other claimed benefits of expert systems seem less supported to 
me.  For example, I don't see that reasoning with uncertainty must be unique 
to an expert system approach.  Another point, if "symbolic computation" (as 
opposed to number crunching) is a valid claim it appears to me that its basis 
must be in the dynamic memory allocation and list processing capabilities of 
Lisp and not neccessarily in an expert system approach.


Finally, since the question of advantages of expert systems always comes up,
are there any good studies with hard numbers that can be referred to.  For
example, are there any papers that report on a case where conventional and 
expert systems approaches were both used on an actual problem and comparisons 
made in order to substantiate the advantages of (eg show that "rapid proto-
typing" saves development time)?  Are there any papers that provide a sound, 
and convincing basis for the virtues of expert systems, that could be given 
to non-AI persons?



To summarize the question, what advantages (or disadvantages) do expert 
systems provide over conventional software approaches. And note, I want to 
limit the discussion to expert systems and not address the whole field of AI.


Responses can go to the net, AILIST, and/or to myself.  


    Curt Goodhart   (goodhart@nosc -- on the ARPANET)

-------