Simple-to-setup Expert System?
Mark Hood writes: "I've been asked to provide a simple trouble-shooting guide for new engineers to follow when presented with an unfamiliar fault or bug report. Mainly this can be done with static web pages and a series of 'yes/no' questions... (Is it plugged in? Is it switched on? etc) but a nice facility would be to allow engineers to update it with what they did to fix faults / gather information. The question is: does anything simple like this already exist? Web searches turn up loads of 'Expert System Shells' or 'Programming Systems', but I was hoping for something that wouldn't require months of dedicated time (this is not my job, I'm just helping out :). Anyone done this at their workplace? Any hints? Or should I knuckle down and write a few CGI scripts for adding data to a web page?"
I'd almost make a real simple, searchable solution. Install PHPWiki (or insert your favorite WikiWikiWeb implementation), and have some pages like:
--------
* [After blah happens, Does this happen when this happens?]
* [After blah happens, does this not happen?]
Insert description of what may be going on if it's neither of the links to the next pages.
---------
and have wiki links to other pages asking questions as similar links.
It's simple, braindead, no custom coding, and laughingly easy for any engineer to update. It's not the most elegant solution, but in a pinch, it'll work. In my current and previous workplaces, the IT departments (at least the UNIX folks) have used wiki's for documenting just bout everything.
Does anyone remember the old game "animal"? While not exactly what you're looking for, you might be able to repurpose it.
Here is a log of some output:
I think I'll try a guess now...
Is your animal a Elephant? no
I give up! You win! What was your animal? Dog
I need a yes-or-no question so I can later
tell the difference between a Elephant and a Dog.
Does it have a trunk?
what would be the answer be for a Dog? no
what would be the answer be for a Elephant? yes
I now know 3 animals!
Want to play again? yes
Think of an animal.
Press [Enter] or [Return] to continue...
Does it have a long neck? no
Does it have a trunk? no
I think I'll try a guess now...
Is your animal a Dog? no
I give up! You win! What was your animal? Monkey
I need a yes-or-no question so I can later
tell the difference between a Dog and a Monkey.
Is it a biped?
what would be the answer be for a Monkey? yes
what would be the answer be for a Dog? no
I now know 4 animals!
Want to play again?
$ apt-cache show animals
In general, I think you are going to find that even if you pick a general rule based package such as CLIPS or iLog Rules or go with some that has CBR capabilities such as A*E the project is going to be a lot more difficult than you think.
Diagnositic expert systems are not simple, and having a good tool is only the begining. If you want a usuable effective system plan to have 2-3 experts work at least a year to develop it.
Disclaimer: I develop expert system for a living, and have extensive experience developing diagnostic systems. Most clients I've worked with have no idea how difficult a problem this is. You really have restrict your problem domain or the task is impossible.
The Economics of Website Security