Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Expert system Basics

I need do write an expert systems that should aid user in picking up best mobile phone operator. It should be very simple and not based on languages/libaries such as CLISP or JESS. So I need to write it all from the ground up.

Do you know some books or online tutorials that explains how this can be done? What I really need to get to know is how to represent knowledge and facts.

Any help would be much appreciated.

like image 799
mgamer Avatar asked Oct 26 '25 03:10

mgamer


2 Answers

If you get any of the good texts on AI, there will be a section on expert systems; you can, if forced, work it out from there and implement your own.

The basic idea is really fairly simple: you have a collection of rules in "if-then" form that represent inferences, or4 implications. Like, for example:

IF blood temperature > 41°C 
THEN patient.has-fever := TRUE

IF patient has wet-sounding breathing
THEN patient.has-pneumonia

IF patient.has-fever AND patient.has-pneumonia
THEN CONCLUDE bacterial pneumonia. ACTION prescribe Augmentin

In other words, you have a bunch of rules, and you evaluate the rules until you get to a conclusion. There's a lot more to is (forward or backward chaing and that kind of thing) which you can read about in thed pretty decent Wikipedia article.

I'm puzzled why you can't use an existing rule engine though -- there are a number of them, for most languages, usually under pretty liberal licenses. That's really an easier route unless this is a homework problem or something.

like image 55
Charlie Martin Avatar answered Oct 28 '25 22:10

Charlie Martin


Prolog is well suited to writing rule-based systems (a pretty standard approach to expert systems development). P# compiles to C#, which may meet your needs - and it's free.

More information on P#.

like image 20
dommer Avatar answered Oct 28 '25 23:10

dommer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!