Laws@KL.SRI.COM.UUCP (08/15/87)
Those interested in programming methodology (including expert systems) will probably enjoy reading Russell Abbott's article on "Knowledge Abstraction" in the August issue of Communications of the ACM. It clarifies the role of domain knowledge in programming and suggests that object-oriented programming may be the wave of the future. This supports the impression of Jeffrey Stone in the Spring issue of AI Magazine ("The AAAI-86 Conference Exhibits: New Directions in Commercial AI") that most of the expert system vendors have found rules too limiting and are incorporating object-oriented features in future software. A related, but somewhat different, "knowledge level" view is taken by B. Chandrasekaran in his Fall 1986 IEEE Expert paper: "Generic Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for Expert System Design." While not incompatible with object-oriented programming, his generic tasks are at a level between that of common shell languages (rules, frames, nets, etc.) and the full specifics of real-world domain knowledge. I sense a new view of AI coalescing ... -- Ken -------
shebs@CS.UTAH.EDU (Stanley Shebs) (08/17/87)
In article <12326542058.16.LAWS@KL.SRI.Com> Laws@KL.SRI.COM (Ken Laws) writes: >Those interested in programming methodology (including expert systems) >will probably enjoy reading Russell Abbott's article on "Knowledge >Abstraction" in the August issue of Communications of the ACM. It >clarifies the role of domain knowledge in programming and suggests >that object-oriented programming may be the wave of the future. Perhaps I missed the point, but I found this paper rather boring. It didn't seem to say much new - is there really anybody that doesn't believe programs are encrypted knowledge, and that making the knowledge more explicit is a Good Thing? Ditto for OOP - at least in the language community, it's started to move from fanaticism to realism. Perhaps the AI community is just getting started on the slide to object fanaticism? Also, some more explicit examples of what is and is not knowledge abstraction would have been useful. In fact, the concept of "knowledge" itself is pretty vague - is "barks(X) :- dog(X)" a piece of knowledge or not, and how crucial is a context or not? Or putting it in a more practical way, why would a Silogic Prolog program be considered a "knowlege program" and not a Fortran program? >A related, but somewhat different, "knowledge level" view is taken >by B. Chandrasekaran in his Fall 1986 IEEE Expert paper: "Generic >Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for >Expert System Design." While not incompatible with object-oriented >programming, his generic tasks are at a level between that of common >shell languages (rules, frames, nets, etc.) and the full specifics >of real-world domain knowledge. This same idea may be found amidst all the glitzy results in Lenat's Eurisko papers - heuristics are objects with their own sorts of hierarchy and inheritance. The so-called weak methods tend to be near the root of hierarchies, while more specialized and domain-specific heuristics are at the leaves. >I sense a new view of AI coalescing ... Or at least a new view of AI tools. Some exciting and relevant papers may be found in a book edited by Gary Lindstrom and Doug DeGroot, called "Logic Programming: Functions, Relations, and Equations" and published by Prentice-Hall last year (reviewed in latest Computing Reviews). The papers speak more to language types than to AI types, but there is much food for thought... stan shebs shebs@cs.utah.edu