Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.ai    |    Awaiting the gospel from Sarah Connor    |    1,954 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 6 of 1,954    |
|    JXStern to baylor    |
|    Re: How to write an expert system :)    |
|    10 Jul 03 10:21:14    |
      From: JXSternChangeX2R@gte.net              On 7 Jul 2003 10:02:15 +1000, baylor@ihatebaylor.com (baylor) wrote:       >This should be really obvious to me after a year of AI classes and 4       >years experience but for some reason i'd like some help              The first thing to learn about an expert system, is that the entire       paradigm is meant to emulate a human expert. If you have one, sit him       down, do a little knowledge engineering, and build accordingly. If       you don't, then you are not really building an expert system.              Expert systems were built around the idea of "surface knowledge" being       valuable and workable without an in-depth analysis and modelling of a       system's innards. If you want to try to build a rule-based engine for       a quantitative modelling situation, you're probably using the wrong       tool for the job. Maybe you'll get it done anyway, and maybe not.              >i have what i consider to be a pretty simple process to debug       >performance problems in our IT systems, something our company deals       >with a lot. First you divide your system into a couple of high level       >pieces that you can measure (time) (normally Web server, app server,       >database server and network). You specify the order they're in, what       >you consider normal timings to be and the actual times. The goal is to       >isolate the problem. So let's say your app has 4 pieces and one is       >significantly over threshhold. We've isolated the problem to that       >component (let's say it's the app server). You then dive down into it       >by repeating the process - break that piece into a handful of       >components, time them, compare times against benchmarks, pick the one       >bad piece (so far it's always been one piece) and continue until the       >user gives up or has found the problem. i'm not worried about solving       >the problem yet, just diagnosing it (walking them through the data       >gathering steps)              This sounds like a quantitative system. The traditional way to       approach stuff like this is either equally quantitative, or else       indirectly. Twenty-odd years ago IBM sponsored the development of the       YES/MVS system, an expert console log reader. There are tons of       performance monitoring packages out there already, your installation       probably has one or ten. It is a natural idea to build "expert"       log-readers. I played that game, back a few years ago, with some of       the very IBM players involved. Don't even ask how the effort turned       out, all I can say is some VC types wasted their money.              >So i guess these are the things swimming through my head:       >- i don't know the variables before hand. Each user specifies their pieces       >- i don't want to write a bunch of rules that require me to specify       > all antecedents since most of those values won't be known (each test       > is pretty expensive to run)       >- i'm planning to write this in Java (so i can have a Web-enabled applet       > where they can draw a diagram of there system,       > although i might use C# and just generate Web pages). But i don't know       > if that's the best option       >- While i'm not adverse to using a tool, i need to be able to control       > some of the code. Specifically, each decision on the screen will have       > links such as "how do i do this". Example - when i ask a user to measure       > Web server performance, a link next to it will take them to a page       > that shows them how to measure it       >- The process repeats itself. Do it once, gather your results then go       > back and do it again. Example - enter the machines, isolate the       > problem, answer "The problem is your Web server" and give them       > the option "Show me where the problem is in the Web server". Start       > over (maybe the pieces are now business logic, data access, UI,       > Web server overhead and state management) and maybe it will answer       > "The problem is your data access code". And so on and so on       >       >My original goal was to write this as a document but it seemed like it       >might be more useful if i wrote it as a wizard that stepped you       >through the process       >       >Not sure i described (or designed) this well but hopefully you get the       >idea. i can probably write this all by my lonesome but i'm worried i       >won't do it as well as if i had asked for feedback and ideas :)              Ahem. Do you have any estimate of how many person-months this project       is supposed to take? May I repeat the maxim that the "expert" part of       any expert/AI system is usually only a small part of the total system       effort?              Joshua Stern              [ comp.ai is moderated. To submit, just post and be patient, or if ]       [ that fails mail your article to |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca