Newsgroups: comp.ai
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!cs.utexas.edu!uunet!timbuk.cray.com!driftwood.cray.com!chuckm
From: chuckm@willow129.cray.com (Charles E. Matthews)
Subject: Re: Q: Expert System vs. Other Software System
Message-ID: <1994Dec19.140750.18033@driftwood.cray.com>
Originator: chuckm@willow129
Lines: 80
Sender: chuckm@willow129 (Charles E. Matthews)
Nntp-Posting-Host: willow129
Organization: Cray Research, Inc.
References: <3c5mb1$b1o@syko.cosmic.com>
Date: 19 Dec 94 14:07:49 CST


This posting has been around for a while without any responses. So, here is
my $.02 worth...  Just to set the stage, I've been building expert systems
applications since 1985 in ART-IM, KEE, and C++. 

In article <3c5mb1$b1o@syko.cosmic.com>, tiger@syko.cosmic.com (tigerman) writes:
> Hi folks,
> 
> I'm a newbie in Expert System field. I have some questions regarding general
> concepts of expert systems vs. other regular software system.  I would 
> appreciate it if you could clarify my confusion.  So here they are...
> 
> 1. I'm currently reading Expert Systems by Giarratano and Riley.  In chapter of
>    "Design of Expert Systems" I saw waterfall model, spiral model, etc, which
>    are pretty much like the old guys I met in regular (non-expert) software
>    system development.  So my question is, how different the development of
>    an expert system is, compared with that of other software system?  In 
>    another word, if you are developing a commercial or serious research 
>    expert system, what do you usually put in the project document, especially 
>    those things which are unlikely found in other software development project?
>    (I haven't ever seen a commercial/research expert system document, so it's 
>    hard for me to have the general idea...)
> 
Your first issue here is the discrepancy between the waterfall model and
ES development models (as proposed by the "experts"). From an historical 
perspective, there was a lot of talk back in the mid-80's about how different
ES development was from traditional program development, i.e., ES doesn't 
follow the waterfall model, etc. Generally, that is true but not because of 
anything unique to ES development. The reason it is true is because the 
Waterfall model of program development is a bad model to begin with. Whereas
it worked successfully for many organizations into the late '80s, the Waterfall
model works well ONLY in an environment which has a stable and well-defined
set of functional requirements. Most ES applications do not have this luxury. 
Also, many ES applications are developed using a "Rapid Prototyping" paradigm.
The nature of prototyping and creating ES applications in a "try it and see
what happens" manner pretty well ensures that you don't have a stable and 
well-defined functional specification for the app. 

The other characteristic of ES development which supports the rapid prototyping
approach is that ES development seems to be characterized by problem domains
where the knowledge of how the ES should solve the problem is fuzzily understood. 
The nature of Knowledge Acquisition implies that you are developing the program
in a discovery mode. You are developing the ES while learning how humans 
do the task. I've seen a number of cases where an expert system was developed
using an AI platform and then re-written in a procedural language for production
release. This could occur because the AI platform provided an acceptable 
environment for the discovery period. 

The development model which seems to be much more appropriate to both ES 
development and traditional program development in today's world is the 
iterative development model.

> 2. If I go to an extreme and say, expert systems are merely procedural programs
>    with plenty if-then-else structures, how do you criticize?  I know this 
>    statement sounds pretty biased (stupid? :-), but I want to hear your 
>    argument.  Again, I'm not at a high level, so I just don't see much of the
>    big picture...could any knowledgeable people enlighten me some on these
>    issues?
> 
The off-top-of-the-head answer here is that the performance of expert systems
using procedural if-then-else structures was the constraint which kept ES
applications from being feasible in a practical sense. Until the invention
of the rete network, expert system performance was so bad that they were 
impractical. A more detailed answer would need to explore the relationship of 
meta-knowledge to the rule structures. 

You could argue that the use of event-driven programming languages such as
C++ and Smalltalk could effectively implement some applications which used
to be traditional expert system applications, and you would be correct. 

So, those are my views. Critique at will.


Regards,
Chuck Matthews
-- 
Chuck Matthews
chuckm@sdiv.cray.com                          Cray Research, Inc. 
                                              655F Lone Oak Drive
(612)683-5385                                 Eagan, MN  55121
