LAWS@SRI-AI.ARPA (08/10/85)
From: AIList Moderator Kenneth Laws <AIList-REQUEST@SRI-AI> AIList Digest Saturday, 10 Aug 1985 Volume 3 : Issue 106 Today's Topics: Journal - Machine Learning, Expert Systems - Knowledge-Based Spelling Corrector & Expert System Definition ---------------------------------------------------------------------- Date: Fri, 9 Aug 85 01:22:57 pdt From: gluck@SU-PSYCH (Mark Gluck) Subject: A new journal: MACHINE LEARNING Machine Learning will publish papers on the processes through which intelligent systems improve their performance over time, and will cover ares such as: concept acquisition, strategy learning, language development, reasoning by analogy, and scientific discovery. Machine Learning will be published four times a year. Individual Rate: $35.00, Institution Rate: $78.00. Executive Editor: Pat Langley Editors: Jaime Carbonell, Ryszard Michalski, Tom Mitchell Orders to: Kluwer Academic Publishers, 190 Old Derby Street, Hingham, MA 02043 or call 617-749-5262. First Issue: January, 1986 ------------------------------ Date: Wed 7 Aug 85 14:41:38-PDT From: Ken Laws <Laws@SRI-AI.ARPA> Subject: Knowledge-Based Spelling Corrector Those who objected to Bob Amsler's suggestion that all spelling correctors are "knowledge-based" may be happier with Dr. Dave Fawthrop's Expert Speller. There's a 2-page article on it in Vol. 1, No. 1, of Expert Systems User, April 1985. (The article is rather superficial and contains some editing blunders, so interested readers should probably track down the true story in "The Rules of Spelling Error" and "An Intelligent Spelling Error Corrector" by E.J. Yannakoudakis and D. Fawthrop, Int. J. of Information Processing and Management, 1983.) The spelling program uses a bit-vector hash table and two slower dictionary structures to detect misspelled words, then invokes a rule base of about 3,000 rules to predict the correct spelling. The system contains some knowledge of parts of speech, but bases most of its guesses on commonly- occurring transformations of letter patterns. I assume that suggested corrections are looked up in the dictionaries before being offered to the user (although I can imagine wanting to see all its hypotheses). New words can be provided (or confirmed) during a session, so that the program adapts itself to the specific document during the editing session and to the user across sessions -- AI learning in the best tradition. The probabilities of different transformations were adaptively adjusted (at a cost of 250,000 pounds in computer time) for the best correction performance, and Dr. Fawthrop makes the point that the system now knows more than he does about correction probabilities. (The system cannot "explain its reasoning", since no human is able to "understand" the true explanation.) The program is written in Fortran77, and runs mainly on Unix systems. The article didn't supply an address. -- Ken Laws ------------------------------ Date: 7 Aug 85 15:11 PDT From: Ghenis.pasa@Xerox.ARPA Subject: Re: Expert System definition I think it was Roger Schank that said "If it can't learn, it isn't AI". In a nutshell, I think the main thing that distinguishes a true ES from the hypothetical FORTRAN program mentioned earlier is that knowledge isn't hard-coded and can be added at run time, becoming immediately useful both for inferences and explanations. This highlights the difference in architectures: separation of inference engine and knowledge base (knowledge=rules+facts) should be considered an essential part of the definition of ES or KBS, so add "DYNAMIC KNOWLEDGE BASE" to "perform tasks requiring expertise" and "ability to explain". By the way, the ability to gracefully expose and resolve knowledge base inconsistencies is also highly desirable in any system with a dynamic KB, hopefully with a precedence mechanism and/or weighting and/or consulting a human being when all else fails. ------------------------------ Date: 7 Aug 85 15:12 PDT From: masinter.pa@Xerox.ARPA Subject: Expert System Definition I believe that the term "expert system" is best thought of as a process, rather than a thing; that is, it is a way of building programs rather than something that a program can be. In this light, most of the thorny issues that arise in trying to decide whether a program is or is not an "expert system" become much clearer. The "expert system" programming methodolgy has some simple characteristics: * An expert is involved in the construction of the program. * The knowledge of the expert is couched within a representation framework in which the objects of the domain and the relations between them are explicitly represented. * The expert is involved in refinement of the program after its initial construction. To answer the question "is this FORTRAN program an expert system", you have to know "how did it get built?" and "how would you add more knowledge to it?" The various AI languages and systems make writing expert systems much easier; that's their advantage. However, their use is not criterial: writing it in OPS-5 doesn't make it an expert system, and not all expert systems are written using "expert system tools." Rule-based programming is one mechanism for encoding knowledge, but its use isn't criterial either: there are rule-based programs that are trivial (the microprocessors that control traffic lights, for example), and there are "expert systems" that do not use a rule-based paradigm for performing inference. Generally, experts aren't programmers, and their knowledge of their field isn't explicit. The process of producing domain-descriptions and rules usually involves running the system against test cases and debugging the results. "Explaination facilities" are very helpful in that debugging process, in localizing where the procedure has gone wrong. It seems to be an important part of the development tools for the expert-system methodology, even if it plays no part in final application. ------------------------------ Date: 07 Aug 85 18:01:34 PDT (Wed) From: Sanjai Narain <narain@rand-unix.ARPA> Subject: What is an expert system Wyland is absolutely right in encouraging the asking of simple questions. I think many more simple questions need to be asked in AI. According to him an expert system is a program which can not only do reasoning but also explanation. I believe this definition is a special case of a more general one: Given some fixed amount of knowledge think of the various ways in which an (intelligent) human could use it. If a program possessing the same knowledge could also use it in similar ways then it could be said to behave intelligently. For example, when a human has medical knowledge, his intelligence allows him to do diagnosis, to explain his diagnosis as well as to determine whether a new piece of knowledge conflicts with something he already knows. So, if a program which has medical knowledge can also do diagnosis, explanation and integrity checking, it could reasonably be regarded as intelligent. Conversely, even though common word processing software allegedly "knows" about letters, words, sentences, lines, paragraphs it could hardly be expected to determine whether a sentence is well formed, or whether the numbering scheme for sections is consistent throughout the text. Such functions are normally associated with a competent copy editor. It is quite hard to obtain flexibility of use of knowledge in procedural languages. So, most software written in such languages can only be used in a rigidly defined set of ways, and so is not considered intelligent. Not surprisingly then, a central concern of AI is developing maximally flexible representations of knowledge so it can be used in a great diversity of ways. -- Sanjai Narain ------------------------------ Date: 8 Aug 1985 07:50-PDT From: JWOLFE@USC-ECLB Subject: KNOWLEDGE SYSTEM DEFINITION I read your comments on a definition of expert systems. I think the views you express are useful and sorely needed. If AI is to succeed, then it is necessary to precisely define the terms used within the discipline. However, I do have one comment. The discussion I read differentiated between a "true" expert system and a simple FORTRAN program with a sequence of IF...THEN statements by asserting that the expert system could explain its conclusions in terms of the rules used to derive those conclusions. Furthermore, there was a qualification that the expert system merely had to have the potential of explaining itself and that it was not necessary that the explanation mechanism be implemented. I submit that the distinction is artificial in that the FORTRAN program could easily implement an explanation mechanism via a stack. In my opinion, the definition of expert system should require that the explanation mechanism be implemented or drop the requirement altogether. Perhaps another distinction would be the degree of separation between the knowledge specific data and the reasoning mechanism. This would exclude programs in which the knowledge was totally embedded in the program code. I don't believe the distinction is wholy satisfactory since all but the most trivial systems have some knowledge embedded in the program in order to gain performance. The line at which a system is or is not an expert system becomes fuzzy. Thank you again for sharing your views with the community. I hope to hear from you. Jim Wolfe JWOLFE@USC-ECLB.ARPA (usual disclaimers apply) ------------------------------ Date: Thu 8 Aug 85 09:53:53-PDT From: WYLAND@SRI-KL.ARPA Subject: Expert System Definition Thank you for your comments. I should have been more precise when I said that it was not necessary to implement the explanation mechanism, since I used it as the essential ingredient of the definition of an expert system. I agree with you that for a program to be an expert system, the explanation mechanism is required. There is a marginal case of an expert system where the explanation mechanism has been implemented but is removed or disabled in the application environment, as in a real-time pilot advisor or process control program. However, the clearest definition of an expert system would allow only systems that had the explanation mechanism implemented, but not necessarily used (i.e., it could be disabled). Otherwise, the definition is void since "any" rule based system has the "potential" for the addition of an explanation mechanism - i.e., "....the FORTRAN program could easily implement an explanation mechanism via a stack." I like the definition of an expert system as a "decision system which can explain its decisions" because it is functional and objective. Using this definition, other characteristics associated with expert systems - such as the degree of separation between the knowledge data and the reasoning mechanism and/or the amount of knowledge embedded in the code - become design topics on how to implement a system that meets the definition rather than part of the definition itself. This is good because - as you pointed out - topics like "separation between the knowledge base and the reasoning mechanism" are a matter of degree and are subjective in that design/artistic judgement is involved in their evaluation. Thank you again for helping to further clarify the discussion. I hope we can keep in touch. Dave Wyland WYLAND@SRI-KL ------------------------------ Date: Friday, 9 August 1985 03:39:57 EDT From: Duvvuru.Sriram@cmu-ri-cive.arpa Subject: Discussion on Expert Systems Definition Although the ability to explain things is one of the characteristics of an Expert, only classification-type expert systems (ES) have this feature. These systems explain their actions by providing the rules that have been used or being used in that context. However, a majority of ES (or the so-called ES), such as R1, in the market do not have this feature. The main difference (with conventional languages) I see is the ease of programming with rules. Try implementing the code provided by Wyland in a conventional programming language. It may take you at least 1 to 2 hrs, while one could do the same in a rule-based framework in 10-15 minutes, assuming familiarity with the tool. The ES frameworks provide a neat programming methodology for incorporating heuristic knowledge. Also, the completeness, uniqueness, and proper sequencing criteria, required of many conventional languages can be relaxed in an ES envir- onment. Any Comments ==> AILIST Sriram ------------------------------ End of AIList Digest ********************