[comp.ai] An Expert System Development Question

george@rex.cs.tulane.edu (05/24/91)

Hello Netters,

I have to develop an Expert System for an application that
requires ~45 sets of very similar rules(200 per set).  One of the
features of the system is that the rules will need periodic
updating(between 4-6 times a year).  My questions to people who
have done development of this nature are-

1. What do you think would be a more suitable language for
   writing this application- Prolog, C or C++.  We are looking
   for the maximum amount of machine independance possible

2. How easy would it be in C, to have a system that did the
   inferencing after reading in the rules from a datafile. i.e.
   it might be more advantageous to maintain the rules as data files
   since they would have to be modified periodically and have the
   backbone program to do the inferencing based on the data(rules) within
   the data files.

3. Are there good references to Expert System development in C?

4. Would it be more advantageous to use an Expert System shell for
   this problem rather than start from scratch?

I would appreciate any thoughts on these and any related matters.
Thanks in advance,
George Roy

email:george@rex.cs.tulane.edu
-- 
*****************************************************************************
  INTERNET : george@rex.cs.tulane.edu | USENET :{{ames, bionet}!}rex!george

*****************************************************************************

dclark@b11.ingr.com (Dave Clark) (05/25/91)

george@rex.cs.tulane.edu writes:

>Hello Netters,

>I have to develop an Expert System for an application that
>requires ~45 sets of very similar rules(200 per set).  One of the
>features of the system is that the rules will need periodic
>updating(between 4-6 times a year).  My questions to people who
>have done development of this nature are-

>1. What do you think would be a more suitable language for
>   writing this application- Prolog, C or C++.  We are looking
>   for the maximum amount of machine independance possible

C is certainly the most portable of the three.  Who will be updating
the knowledge base?  Has anyone at your site done any serious Prolog
(or LISP for that matter) development?  Have you considered training
costs and start-up time?

The real question is "Do I really want to build (and support) my own inference
engine?"  If the type of rules and search strategy are simple (and static), C
would probably be a better choice.  

>2. How easy would it be in C, to have a system that did the
>   inferencing after reading in the rules from a datafile. i.e.
>   it might be more advantageous to maintain the rules as data files
>   since they would have to be modified periodically and have the
>   backbone program to do the inferencing based on the data(rules) within
>   the data files.

That still doesn't preclude compilation.  I have used many (and written a few)
expert system development environments which compile rules into C code, tables,
etc., then compile and execute the C program.  I'd need to know more about
the nature of the problem.

>3. Are there good references to Expert System development in C?

Osborn/McGraw-Hill publishes one (_Artificial Intelligence in C_, I believe),
but I haven't read it.

>4. Would it be more advantageous to use an Expert System shell for
>   this problem rather than start from scratch?

Again, depends on the type of rules.  How about some examples?  If you want a
high degree of portability, however, it's probably best to stick with C.
It's quite possible that you could spend so much time learning a new language
(or shell or whatever) that you could have completed your own inference engine
in a familiar language.

>I would appreciate any thoughts on these and any related matters.
>Thanks in advance,
>George Roy

>email:george@rex.cs.tulane.edu
>-- 
>*****************************************************************************
>  INTERNET : george@rex.cs.tulane.edu | USENET :{{ames, bionet}!}rex!george

>*****************************************************************************

----------------------------------------------------------------------------
   Dave Clark                     |  Where cities / hang / and in the noose
   System Development             |  of cloud / the towers' crooked spires
   Intergraph Corp., CR1102       |  congeal -- I go / alone to weep / that
   Huntsville, AL 35894-0001      |  crossroads / crucify / policemen.
   UUCP: uunet!ingr!b11!dclark    |  
   Internet: dclark@b11.ingr.com  |       -- Vladimir Mayakovsky (Ya, 1913)
----------------------------------------------------------------------------