Expert Systems CSCI 222: What I Learned
Dr. Keuneke,
This message is in response to your request that we think about what we
learned this semester. I will do my best to organize my thoughts so that
they are useful to you and others in the class.
Before I Took The Class
I remember the weeks before I took my first programming class ever. It was
29 years ago, I was 15, and the class was going to be in BASIC programming.
Computers were not common-place; one had to go into a "computer room" and
work at a terminal. I had never been into such a room, and I just didn't
know what to expect. I had visions of StarTrek-like offices, mosly dark,
flashing red lights about, lots of that dry-ice mist floating around, and
"programmers" kneeling in front of terminals. I wondered if I would be
asked to genuflect before approaching one of them. My Catholic upbringing
is showing here, isn't it...
Well... that first class demystified computers for me. That's what this
class has done to "Expert Systems". ES and AI were the two remaining
'mysterious' fields of computer science left for me. Now there is only one,
and it isn't Expert Systems.
The Importance Of History
Never before have we focused so much on history in a CS class. But, in
order to appreciate the field and to demystify lots of the terminology, it's
very important to study this history. Actually, "history" helps one
understand just about any aspect of CS, but this is the first class that
actually addressed it directly. The entire mystical shroud surrounding
expert systems is revealed through a study of the early claims, the early
successes and the early disappointments.
Getting Down To Earth
I hope I don't blow my whole grade here, but my impression of Expert Systems
is that they are a "framework for a certain kind of computing problem", and
that problem is primarily the "storing and retrieving of less-than-exact
knowledge about a given domain." I use this term 'framework' because I have
found it to be very important in other work I've done. For a while, I
believed Borland Delphi was going to rule the world, but later I understood
it was a "framework for forms-centric client/server database software".
Frameworks are extrememly powerful, when applied to the problems for which
they were designed; in contrast, when applied to the wrong problem, they
become massive, useless overhead, causing more problems than they solve.
One should quickly realize this applies to Expert Systems too. Don't use
them for accounting... don't use them for state-machine design... but use
them for what they were designed, set your expectations realistically, and
maybe you'll get a great solution in much less time than you would by
starting from scratch.
"Knowing" is so much simpler than "Learning"
This was clear with just about every system. The greatest 'control scheme'
or 'knowledge structure' in the world buys you little if there is little or
no useful knowledge stored. This problem is so bad, that perhaps the best
advances in Expert Systems are to be made in "knowledge acquisition" rather
than inventing new schemes to process it.
Disappointment... Or A Great Future?
After expert systems were 'demystified' for me, my first response was that
they are... well... junk. They just don't seem to work very well at all. I
guess they've lost a lot of the attention they used to get. However, there
is another way to look at this - they are only in their infancy, they are
way ahead of their time. We have yet to get our hands on the computing
power, storage capacity, programming tools and connectivity needed to make a
useful system. If anyone thought that PC's are as powerful as they'll ever
need to be, that person just isn't dreaming big enough. There's more to
life than memo's and spread-sheets.
It's The Internet, Stupid...
As I have mentioned in my presentation on PIP, I think that when some of
these early ES concepts are applied to the new world of HTML, XML, massive
interconnectivity, agents, and so forth, we will see the early claims of
Expert Systems starting to be met. Interestingly enough, I suspect that
they will not be called "expert systems" and the early researchers will
never get credit for their pioneering efforts. We'll just call it "Yahoo
that really works" or "Excite.com that really works" or something like that.
I hope this helps,
I have added his "goodness of program" comments here
There is none. This is the worst project I've ever done, as far as results
are concerned. The only good thing I got out of it was some experience
with these 'generic task' tools, and an appreciation for how difficult
even the simplest 'expert system' task can be, once you try to do more
than just talk about it.
My comments to the Class:
- Imagine really having the time to learn the tool well.
- Imagine the ES that could be created if you were really
an expert in the field.
- Imagine doing the design, having months to work on it,
and thus doing redesign of your hierachies, etc. ... so that
it all makes perfect clear sense for anyone who looks at it
This is what a commercial Expert System would entail.
Don't forget: The structure of the knowledge
should fit the task
If your system seems convoluted, perhaps redesign is necessary
In the end, the "magic" should be gone because your Expert
System now has a clear explicit layout of the knowledge available.
To an outsider running the program, it will look pretty cool. But
to you, the designer, implementer, there are no surprises.
People often say that Expert Systems are not AI (Artificial Intelligence).
There are no mysteries or excitements or unknowns anymore.
BUT what is an Expert System?
Remember: Expert Systems compared to Rule-Based Systems
An Expert System should mean that an expertise has been
captured. What expertise is captured and how can clearly be
topics that have not been "solved".