For Programmers: Free Programming Magazines  


Home > Archive > Prolog > February 2007 > Prolog, expert system shells and inference engines









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Prolog, expert system shells and inference engines
Kobayashi

2007-02-19, 8:02 am

Hi,

I want to develop expert systems (ES) for medical diagnosis. I have
actually made one by using RealBasic. But as a newbie I still have
some confusions:

1. Do I have to use an "inference engine"? Can not I simply put
IF...THENs? I have built my abovementioned ES in this way. Well, I
must say that it was not easy. But if I used an ES shell would it be
easier?

2. What is the difference between an ES shell and Prolog? Oh, yes, one
is a "shell" and the other is a "programming language". What I try to
mean is which one is better to build an ES?

3. The main question: As far as I know, Prolog has an inference
engine. Right? So it is comparable with ES shells. But today I have
seen a web site in which an ES shell was built by using Prolog:

http://www.cee.hw.ac.uk/~alison/ai3...ction2_5_4.html

If Prolog has already an inference engine why is it necessary to build
a shell by using it?

Thanks in advance.

A.L.

2007-02-19, 8:02 am

On 19 Feb 2007 03:07:24 -0800, "Kobayashi" <kubilayisik@gmail.com>
wrote:

>Hi,
>
>I want to develop expert systems (ES) for medical diagnosis. I have
>actually made one by using RealBasic. But as a newbie I still have
>some confusions:
>
>1. Do I have to use an "inference engine"? Can not I simply put
>IF...THENs? I have built my abovementioned ES in this way. Well, I
>must say that it was not easy. But if I used an ES shell would it be
>easier?
>
>2. What is the difference between an ES shell and Prolog? Oh, yes, one
>is a "shell" and the other is a "programming language". What I try to
>mean is which one is better to build an ES?
>
>3. The main question: As far as I know, Prolog has an inference
>engine. Right? So it is comparable with ES shells. But today I have
>seen a web site in which an ES shell was built by using Prolog:
>
>http://www.cee.hw.ac.uk/~alison/ai3...ction2_5_4.html
>
>If Prolog has already an inference engine why is it necessary to build
>a shell by using it?
>
>Thanks in advance.


Start from reading books. See here

http://www.amzi.com/ExpertSystemsInProlog/index.htm

Building Expert Systems in Prolog -- Shows how to build a number of
prototype expert system shells and their underlying inference engines
including: EMYCIN-like backward chaining with uncertainty, OPS-like
forward chaining, explanations, frames, hybrid systems, and
performance enhancements (modified Rete-network). Describes the
technical issues and design decisions involved in each. Sample expert
systems are implemented using each of the shells. Full source code for
the shells is available in the book and here on Internet. By Dennis
Merritt, ISBN 0-387-97016-9. Published by Springer-Verlag.

A.L.


girish

2007-02-20, 4:03 am

On Feb 19, 6:07 am, "Kobayashi" <kubilayi...@gmail.com> wrote:
> Hi,
>
> I want to develop expert systems (ES) for medical diagnosis. I have
> actually made one by using RealBasic. But as a newbie I still have
> some confusions:
>
> 1. Do I have to use an "inference engine"? Can not I simply put
> IF...THENs? I have built my abovementioned ES in this way. Well, I
> must say that it was not easy. But if I used an ES shell would it be
> easier?
>
> 2. What is the difference between an ES shell and Prolog? Oh, yes, one
> is a "shell" and the other is a "programming language". What I try to
> mean is which one is better to build an ES?
>
> 3. The main question: As far as I know, Prolog has an inference
> engine. Right? So it is comparable with ES shells. But today I have
> seen a web site in which an ES shell was built by using Prolog:
>
> http://www.cee.hw.ac.uk/~alison/ai3...ction2_5_4.html
>
> If Prolog has already an inference engine why is it necessary to build
> a shell by using it?
>
> Thanks in advance.



There are some characteristics of Prolog's inference engine that
makes one want more control.
The rules are executed top-down and by default it is backward-chained.
This might be alright for some domains but not for others. I am also
experimenting with Prolog after spending some years in Java.
My experiments have started with writing simple facts and rules in
Prolog and checking if the answers match my intuitions. Sometimes the
rules require reordering. You can infer from that you will need finer
control over the inference engine. Naive ordering using a numbering
system is possible. For some people and domains forward-chaining is
more intuitive. That requires writing meta-predicates. Anyway remember
to have fun.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com