Results 1 to 9 of 9

Thread: Expert System: VB 2008

  1. #1

    Thread Starter
    Registered User
    Join Date
    Dec 2012
    Posts
    4

    Expert System: VB 2008

    Hello. I'm trying to develop an Expert System for PC Troubleshooting.
    I've read some fundamentals in creating the system like 'rules' and inference methods.
    I just want to ask if can anyone provide some tips and examples on how to create the system/code itself.
    Is there a need for database, rule engine, shells or other requirements on this?
    Thank you.

  2. #2
    PowerPoster Nightwalker83's Avatar
    Join Date
    Dec 2001
    Location
    Adelaide, Australia
    Posts
    13,344

    Re: Expert System: VB 2008

    What do you mean by "An Expert System for PC Troubleshooting"?
    when you quote a post could you please do it via the "Reply With Quote" button or if it multiple post click the "''+" button then "Reply With Quote" button.
    If this thread is finished with please mark it "Resolved" by selecting "Mark thread resolved" from the "Thread tools" drop-down menu.
    https://get.cryptobrowser.site/30/4111672

  3. #3

    Thread Starter
    Registered User
    Join Date
    Dec 2012
    Posts
    4

    Re: Expert System: VB 2008

    Quote Originally Posted by Nightwalker83 View Post
    What do you mean by "An Expert System for PC Troubleshooting"?
    Expert System "system that emulates the decision-making ability of a human expert" in this case, I want to develop a system that troubleshoots computer hardware. (I don't know if that explanation is clear enough? *suck at explaining*)

  4. #4
    Super Moderator FunkyDexter's Avatar
    Join Date
    Apr 2005
    Location
    An obscure body in the SK system. The inhabitants call it Earth
    Posts
    7,902

    Re: Expert System: VB 2008

    There are alot of ways to skin this particular cat depending on how you want to go about it. A system to diagnose PC issues could be as simple as a bunch of IF statements, but you'd need ALOT of them. I think most people would expect an "expert system" to contain elements of AI, particular deep data mining and pattern recognition. For example, the systems banks use to evaluate potential investments are commonly called expert systems, they look at historical data to try and spot patterns that they can apply to the future. I'm not sure that would be much use in PC trouble shooting, though.

    You probably want a rules based engine but, as your problem space grows, the number of rules grows with it and will quickly become unmanageable. You could have a look at "heuristic searches" to help with that. Other than that I don't have much to offer. It's an area I sudied academically 20 years ago but I've never worked on it in anger and I imagine the field has moved on since then.
    The best argument against democracy is a five minute conversation with the average voter - Winston Churchill

    Hadoop actually sounds more like the way they greet each other in Yorkshire - Inferrd

  5. #5

    Thread Starter
    Registered User
    Join Date
    Dec 2012
    Posts
    4

    Re: Expert System: VB 2008

    Could you please give me a sample syntax and how could I incorporate rules? *getting more confused*

  6. #6
    Super Moderator FunkyDexter's Avatar
    Join Date
    Apr 2005
    Location
    An obscure body in the SK system. The inhabitants call it Earth
    Posts
    7,902

    Re: Expert System: VB 2008

    If rule = true then
    Outcome1()
    Else
    Outcome(2)
    EndIF

    In essence that's it. You just need ALOT of statements that look a bit like that.

    But I think you're completely missing the point of an "expert system". Really, just think about the number of possible permutations you're going to have to program to diagnose every possible fault you could have on every possible PC configuration running every possible operating system with every driver installation with every possible combination of applications installed. If your aproach is simply to program alot of rules you can expect it to take you a very long time and you're going to need an awful lot of memory space to run it in. "Expert" systems are an attempt to use AI techniques to alleviate those problems.

    I gave you a few names of those techniques. Look them up, read about them, understand what they may or may not do for you, then try to implement a few of them for yourself. If you get stuck on the syntax at that point we'll be able to help but just asking "what's the syntax for an expert system" doesn't make sense as a question.
    The best argument against democracy is a five minute conversation with the average voter - Winston Churchill

    Hadoop actually sounds more like the way they greet each other in Yorkshire - Inferrd

  7. #7

    Thread Starter
    Registered User
    Join Date
    Dec 2012
    Posts
    4

    Re: Expert System: VB 2008

    ^ Thank you for that.

    I want to ask if someone knows how could I incorporate an inference engine in VB 2008. (like plug-ins or module)
    I'm trying to build it like, creating a knowledge based file outside VB and calling/fetching it through inference engine.

  8. #8
    PowerPoster Nightwalker83's Avatar
    Join Date
    Dec 2001
    Location
    Adelaide, Australia
    Posts
    13,344

    Re: Expert System: VB 2008

    Why not use a select case statement instead?
    when you quote a post could you please do it via the "Reply With Quote" button or if it multiple post click the "''+" button then "Reply With Quote" button.
    If this thread is finished with please mark it "Resolved" by selecting "Mark thread resolved" from the "Thread tools" drop-down menu.
    https://get.cryptobrowser.site/30/4111672

  9. #9
    Super Moderator FunkyDexter's Avatar
    Join Date
    Apr 2005
    Location
    An obscure body in the SK system. The inhabitants call it Earth
    Posts
    7,902

    Re: Expert System: VB 2008

    Ah, I'm starting to understand what you mean when you start talking about inference engines. OK, it's a loooong time since I studied this stuff and I've never done it in my working life so take anything I say with a pinch of salt. I dug out an old paper I did on my degree which reminded me of some of this stuff but I'm still rusty as all hell.

    First of all, Are you intending to write your own Inference Engine or are you going to incorporate a sommercially available one into your own product? I think you're intending to write your own but want to double check before I lead you too far up a garden path.

    Second, it's not really a question syntax, it's much higher level than that. First you need to understand the architecture your aiming for with a knowledge base, an inference engine and possibly a discussive user interface. Make sure your happy with the purpose that each of thiose elements is going to serve. Then you need to start thinking about who to implement those elements and I'd suggest that you start with the knowledge base rather than the inference engine because it's a dependency of the inference engine.

    To start on your knowledge base you need to think about some of the following:-
    Do you understand inference logic? Are you happy with the concepts of predicates and conclusions? Are you happy with the way predicates can comine to produce a conclusion. There are lots of these combinations and you need to understand them all because you need to cater for all of them (the only one I can remember is Modus Ponens but if you look that up you'll start to understand the sort of thing I'm talking about). Once you're happy with those things you'll be able to to understand what a "rule" can look like. Make sure you're fully versed with the theory of this before you go any further.

    Then, and only then, can you start to think about your implementation. And at that point the implementation will actually be pretty trivial and won't really be anything to do with "expert systems", it'll be to do with data storage. You need to design a data structure that can hold a rule. I think I'd suggest either xml or a database because their hierarchical nature will tend to suit the hierarchical nature or rules.

    Once you've got a basic implementation of your knowledge base you can start thinking about your inference engine and, again, the syntax for this isn't really anything to with expert systems as such, it's just file handling (to access your knowledge base) and conditionals. The theory is the bit that's difficult. You need to look up forward and backward chaining techniques (that's where you either start with predicates and use your inference rules to generate possible conclusions of start with the possible conclusions and check your inference rules for possible predicate) and decide which is more apropriate to your problem space. You also need a strategy for tackling "unknowns". That will typically be a matter of identifying the unknown and asking a domain expert to fill it.

    And finally you need a discussive UI for the user to interrogate all this. It needs to recieve the information they can provide, draw some possible conclusions, explain why it drew those conclusions (and didn't draw others) and ask for further information to refine those conclusions further.

    I hope all that helps. I know I haven't given you any syntax but that's because I don't believe syntax is your problem. Your problem is the understanding of how to go about solving the problem and that's all high level theory. The syntax itself is all just common or garden VB.
    The best argument against democracy is a five minute conversation with the average voter - Winston Churchill

    Hadoop actually sounds more like the way they greet each other in Yorkshire - Inferrd

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width