Troubleshooters.Com Presents

July 1999 Troubleshooting Professional Magazine: Troubleshooting CGI

Copyright (C) 1999 by Steve Litt. All rights reserved. Materials from guest authors copyrighted by them and licensed for perpetual use to Troubleshooting Professional Magazine. All rights reserved to the copyright holder, except for items specifically marked otherwise (certain free software source code, GNU/GPL, etc.). All material herein provided "As-Is". User assumes all risk and responsibility for any outcome.

<--Using Semantic Nets to Model Troubleshooting's Knowledge, part 1   |  Contents   |   Linux Log: We're the Fortunate Ones-->

My Challenge to Marc-Henri Poget

By Steve Litt
Marc's article has the potential to be major contribution to the practice of effective troubleshooting. Like all new concepts (at least new as applied to troubleshooting), it leaves several vital concepts unexplained or under explained. To help Marc bring this information up to its potential, I will point out some of those insufficiencies.

It's important to understand that this article is in no way a criticism of Marc's work. Indeed, if Marc's work were not so absolutely vital for progress, I'd simply leave it as-is and let the reader figure it out (or not). But given Semantic Nets' potential to yield real time improvement to Mental Models, and its potential for yielding quicker, cheaper and better Era 4 Troubleshooting Tools, we dare not let Marc rest. He must refine this material until Joe Average can use it in day to day troubleshooting.

Those who can teach teach -- those who can't teach do

I was a cracker-jack troubleshooter in 1979, with double the production than the average audio tech. I believed my success was entirely due to my use of a tool I called "Divide and Conquer". But I couldn't explain my methods in any way that would allow others to attain my results. That's because I was using three other tools and a ten step processes without being aware of the fact. So my explanation of my methods was the tip of the iceberg. It took me another year to discover I was using the Mental Model tool, ten years to discover I was using The Attitude and Fix the Right Problem. It wasn't until 1992 that I really understood that I was using a process, and that the process was vital. That last discovery allowed me to transfer my "abilities" to others.
 
Doing is much easier than teaching!

Likewise, I have no doubt that Marc can use Semantic Nets to create and refine Mental Models. I'll bet he can author great content for Era 4 tools using Semantic Nets. And I find it likely that Marc will produce an Era 4 tool in the near future. But Marc's explanation of Semantic Net construction and use is the tip of the iceberg -- nowhere near sufficient for most of us to reproduce his results.

The hope of the remainder of this article to spur Marc to become aware what he's really doing, thereby allowing him to document it. And hopefully in less than the 13 years it took me to adequately document my Troubleshooting methodology_;-). So I'll be pointing out some missing content -- missing from the article but definitely present in Marc's head.

Give me a process to create a Semantic Net

Marc described creation of a Semantic Net as listing all the components, then forming relationships between them, then iterating that process all over again. I think this requires quite a bit of elaboration.

I tried making a few Semantic Nets for myself. The first thing I noticed is that the way *I* think, I find it much easier to start with the main topic (web application), then list all the verbs, then other components as objects of the sentence. Components I find in this way are then analysed verbs first. For instance:
 
  • Web Application
    • accessed through
      • the Web browser.
        • communicates using
          • HTTP
          • TCP / IP.
        • needs
          • Dynamic link libraries
            • Rely on
              • Correct versioning
              • Correct placement
              • Non-duplication
    • runs on
      • Web server.
        • communicates using
          • HTTP
          • TCP / IP.
            • gets host names using
              • Domain Name Server.
        • configured by 
          • Configuration files.
            • /etc/conf/httpd/httpd.conf
            • /etc/conf/httpd/access.conf
            • /etc/conf/httpd/srm.conf
            • /etc/mime.types
        • Launches
          • the CGI program.
            • Written in Perl (or python or C or C++ or shellscript or other).
            • gets results from
              • the database.
                • is configured
                  • by Configuration files.
                • formats the results
              • in HTML.

Probably others find it easier to list components first like Marc does. Some might find it easier to go broad (all headings at each level first), while others might find it easier to go deep (Web Application->accessed through->the Web browser->communicates using->HTTP *before* Web Application->runs on). Some might prefer combinations of the preceding two sentences. The process for creating a Semantic Net should be a cookbook -- probably 100 pages would do it. Once that's done the common man can create Semantic Nets. Given what they can do, it's important enough to make the cookbook.

Tell me how to use Semantic Net Derived Mental Models in Troubleshooting

Marc created a very nice Web App Mental Model using a Semantic Net. However, he describes the use of that Mental Model by example only. Troubleshooting Tests should be triaged or prioritized by the following quadruple tradeoff:
  1. Even divisions
  2. Likelihood
  3. Ease
  4. Safety
That's easy -- I just did it. But what about explaining a process by which that tradeoff can be evaluated? Whoops -- I haven't even done that yet and it's really my job, not Marc's. But I've been pretty busy writing Linux content lately, so Marc may have that particular greatness thrust upon him :-).
 

Tell me how to use Semantic Nets to quickly and economically author content for Era 4 tools

Era 4 tool authors are scarcer than programmers. They need thorough Era 3 Troubleshooting Process knowledge, expertise on the system being troubleshot (you author for one target machine at a time), and an understanding of Era 4 priorities and goals.

Marc needs to explain how to translate his Semantic Net derived knowledge into a high quality Era 4 tool script, given Era 4's exploitation of General Maintenance and probabilities. I can give him some help there, and can put him in touch with people who have built and deployed Era 4 tools.


Conclusion

I believe that Marc-Henri Poget's article is the most important Troubleshooting Professional Magazine content in 1999, because it represents the first breakthrough in Troubleshooting Thought in a couple years. The last true breakthrough I'm aware of was the creation of the first Era 4 tool, by the intercorporational group led by Jim Roach, in 1997.

Don't get me wrong -- there have been plenty of incrimental improvements and improvements to documentation, but as far as I know this is a new train of thought in the Troubleshooting World.

As is most new thought, Marc's article is incomplete. It has not yet fulfilled its potential to make Semantic Net usage available to the rank and file Troubleshooter. It has not yet fulfilled its potential to decrease the burdonsome cost of expert system and Era 4 authoring with the use of Semantic Nets. Fulfillment of these potentials will bring a whole new productivity to Troubleshooting.

It's for that reason that I challenge Marc to make himself aware of his Semantic Net actions, and document them in a process or cookbook fashion understood by the masses. And readers, I challenge you to help him.

Steve Litt can be reached at Steve Litt's email address.