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:

  1. Imagine really having the time to learn the tool well.
  2. Imagine the ES that could be created if you were really an expert in the field.
  3. 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".