ntm1169@dsacg1.UUCP (Mott Given) (03/11/88)
I would like to when it is more appropriate to use LISP to develop an expert system application than an expert system shell such as M.1 from Teknowledge? Also, when is it better to use an expert system shell instead of LISP to develop an application? -- Mott Given @ Defense Logistics Agency ,DSAC-TMP, P.O. Box 1605, Systems Automation Center, Columbus, OH 43216-5002 UUCP: {cbosgd,gould,cbatt!osu-cis}!dsacg1!mgiven Phone: 614-238-9431
gautier@ai.cs.wisc.edu (Jorge Gautier) (03/13/88)
In article <383@dsacg1.UUCP> ntm1169@dsacg1.UUCP (Mott Given) writes: > I would like to when it is more appropriate to use LISP to develop an > expert system application than an expert system shell such as M.1 from > Teknowledge? Also, when is it better to use an expert system shell instead > of LISP to develop an application? I am not familiar with the more expensive shells such as M.1, but from my students' and my own experiences I can tell you that it may be better to use LISP when you need to do meta-level inferencing. For example, explaining the system's reasoning, giving a best guess, influencing rule applications, handling user initiative in a questioning process, minimizing the number of questions asked by the program: in these situations you might want to "step back" and examine the rules themselves to decide on the best course of action. The problem with some shells and languages (e.g., OPS5) is that rules are opaque to the program, they are not objects in the language and therefore can't be examined. Using LISP gives you more flexibility because your rules can be LISP objects or lists and can be examined by the main inference engine as well as by other subroutines. Of course, there's the extra effort to design and build an inference engine, but it is not very difficult to do (unless your rule language is very powerful) and it is a one-time task. Some shells may actually allow these kinds of things, but my experience (with a few cheap ones) is that most of them have their own idea of the kinds of inferencing that you want to perform and are not very flexible for implementing other kinds of inferencing. [Any opinions expressed are my own, but if you want them, you can buy them for ten cents a word. :-] --- Jorge Gautier @ Wisconsin, gautier@cs.wisc.edu "The fact that my internal arrangement differs from yours, doctor, pleases me without end."
ntm1169@dsacg1.UUCP (Mott Given) (03/15/88)
in article <5388@spool.cs.wisc.edu>, gautier@ai.cs.wisc.edu (Jorge Gautier) says: > I am not familiar with the more expensive shells such as M.1, but from > my students' and my own experiences I can tell you that it may be better to > use LISP when you need to do meta-level inferencing. For example, > explaining the system's reasoning, giving a best guess, influencing > rule applications, handling user initiative in a questioning process, > minimizing the number of questions asked by the program: > in these situations you might want to "step back" and examine the rules Thank you for the reply. M.1 has many metaprositions such as nocache, nochec(Expression), presupposition(Expression), whencached(Expression), whenfound(Expression = Value cf CF), noautomaticquestion(Expression), etc. Given that M.1 has many constructs for meta-level control of inferencing, when would LISP be more advantageous? -- Mott Given @ Defense Logistics Agency ,DSAC-TMP, P.O. Box 1605, Systems Automation Center, Columbus, OH 43216-5002 UUCP: {cbosgd,gould,cbatt!osu-cis}!dsacg1!mgiven Phone: 614-238-9431