[comp.ai.digest] seeking imbeddable inference system

KARNICKY@KL.SRI.COM (Joe Karnicky) (02/01/88)

	A friend of mine creates programs and devices to enable severely 
handicapped individuals to interact with computers (IBM PC
compatibles because of financial considerations).   He and I have
spent time discussing possible ways that knowledge based programming
(my own area of practice) can be usefully incorporated into 
these programs.  
	For example, he has a program that repeatedly
scans an array of icons.  At a signal from the user, an icon is
selected and a corresponding message is output - possibly through
a speech synthesizer.   One possibility is to have the icon selection
generate a fact or goal into an inference system.   The final output
from this system would then be "customized", i.e. modified by the
context of the interaction. (for example, the time of day, the
mood or condition of the user, the current activity etc.)
	Now, to implement this economically what we would like to
have is a simple, cheap ($100), IMBEDDABLE inference system.   Something on the
level of turboprolog would be adequate, except I'm told that it pretty
much insists on being boss.
	Any suggestions would be appreciated.

Thanks,
Joe Karnicky <KARNICKY@STRIPE.SRI.COM>

-------

werner@aucsv.AUkuni.ac.nz (02/28/88)

In article <12371202150.13.KARNICKY@KL.SRI.COM>, KARNICKY@KL.SRI.COM
(Joe Karnicky) writes:
> 
> 	A friend of mine creates programs and devices to enable severely 
> handicapped individuals to interact with computers ...
>       Now, to implement this economically what we would like to
> have is a simple, cheap ($100), IMBEDDABLE inference system.
		     
What you would like to have is RuleC. RuleC is a new language developed
at the Technical University Vienna. It adds a forward-chaining production
system to standard C. The system is totally flexible - you can write your
own conflict resolution strategies, modify the interpreter cycle itself,
have structured facts in the database which may contain components of
arbitrary C data types (pointers(!), arrays, structs, ints, ...).
The execution of a RuleC program starts procedurally with invocation
of the main function. At any point you may start the production system
by calling the function 'run'. This function returns when no more rules
are applicable, procedural processing resumes.
The condition part of rules allows complex patterns including calls
to userwritten comparison functions, the action part looks like an
ordinary C block - you can define local variables and have arbitrary
C statements here! For addition,deletion, and modification of working
memory elements three new statements are provided.

The compiler works as a preprocessor, like yacc. The production system
is based on the RETE-match.

If you want any further info or the software write to:

Herbert Groiss,
Institut fuer Praktische Informatik
Technische Universitaet Wien

Resselgasse 3/180D
A-1040 Vienna
AUSTRIA

The only e-mail address I have from him is a PSI one:
	PSI%02322622107040:HERBERT

--------------------------------------------------------------------------
I Werner Staringer                     I University of Auckland          I
I                                      I Department of Computer Science  I
I werner@aucsv.aukuni.ac.nz            I Private Bag                     I
I ..uunet!vuwcomp!cscvaxa!aucsv!werner I Auckland                        I
I PSI%0530197000073::CSC_STAR          I New Zealand                     I
--------------------------------------------------------------------------