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 --------------------------------------------------------------------------