Through The Looking Glass: Add Some Intelligence to Your Palmtop!

Ed examines several artificial intelligence programs and expert systems that work as DOS applications on the HP Palmtop.
By Ed Keefe
The field of artificial intelligence (AI) has been around almost as long as have computers. The dream of AI experts has been to turn a pile of wires and switches into something that mimics human intelligence.

In the 1960's and '70's, AI was pretty much the domain of computer scientists. People like John McCarthy and Marvin Minsky at the Massachusetts Institute of Technology (MIT) refined the concepts of AI and developed Lisp, the premiere, programming language of AI. They even built computers that were optimized to use the language.

In the mid-1980's, PC programmers tried adding small amounts of AI to already existing programs.

Word processors, with AI, were supposed to eliminate the need for typists. Decision support and expert systems were touted as replacements for middle managers in factories and offices. Doctors could use AI programs to help them diagnose diseases. Financial managers and stockbrokers could feed their ticker tapes into AI-enhanced programs and then head for their favorite golf course.

Software marketing people started to use the catch phrase "artificial intelligence" in their advertisements. According to the ads, AI was supposed to revolutionize the computer industry. However, in 1987, the US stock market suffered a spectacular crash, later called "Black Friday." The media blamed the crash on "computerized trading" which they linked with AI trading programs. From that point on the phrase "artificial intelligence" fell into disfavor.

However the field of AI is still alive and doing quite well. You interact with AI every time you stomp your ABS-brakes. However you won't hear Ford, GM or Daimler/Chrysler claim that their cars possess "artificial intelligence." To do so might imply that their cars were headed for a crash.

You can also see traces of AI in Fourth Generation programming languages (4GLs) such as Borland's C++ Builder, MS Access, Excel and Lotus 1-2-3. Much of the "intelligence" hides in the background. You tell the program what you want to do. The "intelligent" code-builder tells your computer how to write the program you want. In application programs, some artificial intelligence may come to the foreground in the form of Wizards and context sensitive help screens. After you've looked at a couple dozen Wizards, you'll probably agree that this so-called "intelligence" is somewhere between the intelligence of a slugworm and a housefly. It's still pretty primitive.

What is needed for the full realization of AI is a Fifth Generation computer. Such a computer would accept the natural language statement of a problem and figure out both WHAT to do and HOW to do it. Given such a computer, the first problem I'd pose would be "tell me how to acquire all the wealth in the world," which, on second thought, makes me wonder if a leading software company doesn't already have such a 5GL computer in operation.

We'll see more artificial intelligence in future Palmtops. Pattern recognition, a branch of AI, will eventually give us speech and handwriting recognition that actually works. You probably won't need a password since your Palmtop will only respond to your voice and your face. Instead of using a spreadsheet and a database to analyze a new car purchase, you'll just tell your Palmtop to look at your driving and spending patterns for the past two years and list three automobile choices that will work best for you. If the information isn't available in your Palmtop an AI, software agent will know enough to connect to the Internet and find what it needs.

 For today's Palmtop, artificial intelligence is limited to what can be done on a DOS-based machine. It's not a whole lot, but there's still enough to keep an experimenter busy for several months if not years.

The remainder of this article describes several programs that will let you explore AI on your Palmtop. Once you see what the programs can do, you may be able to figure out how to modify the programs to suit your problem domain. For example, if you're a programmer or a network engineer you could develop a trouble-shooting program that will save you time and frustration down the road. If you're an investor you could try something like the IMPshell program to see if it will help you make better investments. If you're an insurance salesperson, you could put your expertise in your Palmtop and have it handy for those really tough selling tasks. Most of the programs to be mentioned will be included in this issue of The HP Palmtop Paper ON DISK. They will also be available on the S.U.P.E.R site with the keyword "intelligence" in the description of the file. That will make it easy to get all the programs in one pass. Just connect your computer to www.PalmtopPaper.com and click on the "Downloads" icon. In the download screen, type the word "intelligence" (without quotes) in the search field and click Fetch! This will bring up a list of the relevant files on the S.U.P.E.R. site and you can proceed to download them from there.

 For Those New to AI

 If you know little or nothing about the topic of artificial intelligence, the place to start is with a few, short articles. The AI-Tutor file contains four text files: FUTURE.TXT, NATURAL.TXT, NEURAL.TXT and EXPERT. TXT. These files present what was known about expert systems, neural networks, robotics and natural query languages in 1991. It's not the most current information but it's still a good introduction to the topic. The archive also contains a file viewer program that will run on the Palmtop. However, the four text files are all you need. You can either print them out or read them on the Palmtop using Filer or Memo. The other two text files in the AI-Tutor archive give some information on how to use a new PC and how to get in contact with Thinking Software. See the sidebar for more information about this company and its founder, Joseph Weintraub.

 Expert Systems

 To get a hands-on feel for one area of AI, I recommend taking a look at the files that deal with Expert Systems (ES). To get an idea of what an expert system is, think of it as a database, but use the terminology "knowledge base".

Most databases have a search engine that will let you look up information based on keywords or phrases. The search engine for a knowledge base is called an "inference engine" that lets you find information based on your answers to a series of questions. The simplest questions are those that expect a Yes/No response or questions that ask you to pick from a multiple-choice list. The more sophisticated inference engines are those that will let you type a question in "natural language." The engine will parse your question or problem and try to answer or solve it with the information in its knowledge base. Users of the Q&A database program will already be familiar with this technology.

The files that are available include:

 The Amateur Reasoner: an early attempt at creating an expert system using the Pascal language. One sample knowledge base tries to predict how long you'll live and the other sample figures out an animal you may be thinking about. The file is called AMATEUR.ZIP.

 Automotive Diagnosis: over 200 windows full of technical information for those who want to see how an expert system can help with their automotive problems. The information may be out of date and the online updates may no longer work. However the program will give you an idea of what's involved in creating a knowledge base Filename: AUTOS.ZIP.

 ES Shells

 An Expert System Shell is simply the brain and the input/output tools for an expert system that you will build. The only thing missing is the knowledge base and the set of rules that will guide the search for information. Most of these ES shells come with a built-in editor and information viewer. Here is where the challenge begins.

Suppose you wanted to create an Expert System that would solve most of the problems that users have with their Palmtops. You would begin by collecting all the knowledge of Palmtop experts over the past six years. The next step would be to categorize all the problems that users have posed. Once you had that information you could begin to build both the knowledge base and the set of rules that would link the questions to the answers.

If you decide to accept this challenge, you'll soon discover that the task is too much for one person to handle. You'll also begin to appreciate why "knowledge-based" programmers were earning hundreds of thousands of dollars for their work even in the 1980's. To create a medical or financial expert system demanded that the "knowledge worker" have the equivalent of a Ph.D. degree in the subject, be an expert at researching answers and be a whiz at logic. It also helped if the person knew how to program a computer. You may also understand why companies that marketed such expert systems had to carry liability insurance. Such programs could not be offered "as is" with all the responsibility for their use resting with the user. If the expert system produced inaccurate or misleading results it would be a field day for lawyers who would probably use their own expert system to assess damages and develop strategies to use in the courtroom.

The files that contain ES shell programs are:

 ESIE stands for Expert System Inference Engine. With ESIE you can put some "smarts" into your personal computer. You can build custom "knowledge bases" that help make decisions or to make our computers "more human."

 The Expert System Toolkit presents, for the first time, a simple menu driven approach to generating your own rule-based backward chaining expert system. When it is complete, your Expert System will ask you (or the user of your system) a series of questions (QUERIES) to be answered on a scale of 0(No) to 10(Yes). At the conclusion of the consultation the Expert will draw a graph of the User's responses, and finally display the correct solution (GOAL).

 IMP Shell is a Expert System development environment. It contains all the utilities needed to develop and test new Expert Systems, and run them when they are finalized. All functions are menu driven and appear in Windows. IMP Expert Systems are rule based, backwards chaining systems. They are very fast and not limited by an artificially small number of rules.

 XXXPERT is an Expert System development facility that includes an editor, file manager and Expert Systems inference engine packaged together in one integrated environment. You can use XXXPERT to develop Expert Systems that use rules you write in an English language syntax. You can develop Expert Systems that will aid you and others in doing things that you would not be able to do consistently as well without XXXPERT. XXXPERT allows you to define expert knowledge just once then apply it repeatedly time after time.

Beyond Shells

 If someone else's ES shell program doesn't do what you'd like then it's time to create your own. Many of the early ES shells were written in C so you'd need to have a working knowledge of the C programming language and a fairly good idea of how an inference engine works.

Some of the later ES shells were written using the Prolog programming language. The advantage to using Prolog is that the language is designed to process logical commands. The disadvantage is that it's a high level language and, invariably, it won't do exactly what you want it to do. The result is that you'll wind up creating add-ins, usually written in C.

 There have been various Prolog development kits that have come to market and just as quickly have faded away. For example, Borland's Prolog was a commercial program that worked on the Palmtop. For a while it was my favorite. However, once I began to use it, I realized that it was only a subset of the full Prolog programming language. The full language programs were very costly. Now, however, there's a free version of standard Prolog on the CD InfoBase from Thaddeus Computing in the ONDISK directory for Mar/Apr, 1996. It's a very good 16 bit implementation of Prolog that will work on the HP 200LX.

Other AI Avenues to Explore

 The field of artificial intelligence doesn't end with Expert Systems. In the past decade the scope of AI has widened and now includes such topics as "neural networks" and "fuzzy logic" among other things.

Neural networks (NNs) are a fledgling attempt to get a pile of wires and transistors to emulate the human brain. NNs are good at examining and comparing patterns and "learning" from their mistakes. This technology may be the answer to speech and handwriting recognition in future computers. The downside is that such technology takes more processing power than can be supplied in the current HP Palmtop.

Fuzzy-logic isn't something practiced by a cuddly version of Star Trek's Mr. Spock. It's a refined version of the logic you studied in school. Household appliance manufacturers have already adopted the technology to make their washers and dryers more efficient and easier to use. Microsoft has applied fuzzy-logic in its context-sensitive help screens in programs such as Excel and Word. If you're stumped with how to do something in Excel, you're supposed to be able to click on the Office Assistant icon and get a choice of help screens that deal with your problem. That's the theory anyway.

Here are some files that will let you explore this technology on the Palmtop.

 The Brain is an advanced neural network simulator that is simple enough to be used by non-technical people, yet sophisticated enough for serious research work. Based upon the back propagation learning NLQ algorithm, The Brain allows you to train the computer to learn what you want it to learn. The Brain gives you a glimpse into the future (Filename: Brain12).

 The Neuron Expert disk from MindMedia is a commercial package that will let you develop Expert Systems using neural network technology. The package sold originally for $195 but has been discounted to $15 which is less than the cost of most shareware. The package comes with StockNet, a neural network that helps you pick winners in the stock market. Just answer 33 questions about a stock and Neuron Expert IV will give you a buy or sell signal proven more accurate than any other method of stock market prediction. This might be an interesting program to play with, if you understand the jargon of the stock traders.

 FuzzyOne provides an excellent way to gain a complete understanding of fuzzy logic. You can specify inputs and outputs, add and modify shapes, formulate rules, then test the system through simulation. If the output is not what is expected, only a few keystrokes are required to change the input conditions. The new data can immediately be simulated. To aid in the design of the system, a learn mode can be activated. The program sends data it is working with to a file for your review. Once the design is proven, an application can be created containing everything needed to implement your system.

Sources for AI Software

Commercial Products

Shareware/Freeware