Hi Rohan, Data structure comes down to a few factors If you want the system to get smarter based on user feed back you are looking at a neural network or expert system. If the questions branch on direction or funnel down to one solution then a tree might do you (think of it being upside down so that the answers are the roots). If the data is pretty non-linear and the next step only relies on the current answer then a linked list could be a good choice. At the end of the day you can go a long way just having a table with questions which has many potential_answers and a table of potential_answers which has one next question.
Best, Rob On Jan 21, 2012, at 14:46, Scott Olmsted <[email protected]> wrote: > Rohan, > > While Guyren is right in that you haven't given us much to go on, an > expert system may be overkill for producing a useful troubleshooting > site. Or it may not. It depends on how much information you want to > take into account when sending the user to the next question, which is > related to how "linear" the system is. Most of the (mostly inadequate, > but sometimes useful anyway) troubleshooting I've encountered is very > linear. Giving a certain answer seems to skip you over some questions, > but never starts a new line of inquiry, there is really only one line, > and so it need not take into account more than the answer to the > current question to select the next. > > An off-the-shelf expert system-based troubleshooter potentially > encapsulate a lot of expert knowledge, but it could be expensive to > get the expert knowledge into the system. Depends on the complexity of > what you're troubleshooting. > > Perhaps there is some middle ground out there that someone has come up > with. Or perhaps the linear approach is all you need. > > Scott > > > On Jan 21, 12:52 pm, Guyren Howe <[email protected]> wrote: >> >> I’m afraid that you haven’t given us enough to go on here, Rohan. >> >> The appropriate data structure depends on what you are trying to achieve. A >> tree suggests you want a definite sequence with an ending, either going from >> a leaf to the root or vice-versa. A more general graph structure suggests >> your users will be able to wander from question to question more loosely. >> >> It sounds like you’re trying to write an expert system. I would suggest you >> start by doing some reading in that area. > > -- > SD Ruby mailing list > [email protected] > http://groups.google.com/group/sdruby -- SD Ruby mailing list [email protected] http://groups.google.com/group/sdruby
