Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cmcl2!lanl!beta!egdorf From: egdorf@zaphod.lanl.gov (Skip Egdorf) Newsgroups: comp.object Subject: Re: Survey: how do we really use objects? Message-ID: Date: 3 Dec 90 00:10:44 GMT References: <2586@runxtsa.runx.oz.au> Sender: news@lanl.gov Organization: Los Alamos National Laboratory Lines: 50 In-reply-to: timm@runxtsa.runx.oz.au's message of 28 Nov 90 12:40:30 GMT In article <2586@runxtsa.runx.oz.au> timm@runxtsa.runx.oz.au (Tim Menzies) writes: > > Are inheritance hierarchies a good way you represent > knowlege? > ... > One of the comments after the presentation was that > hierachies **MUST BE** a good way of representing knowlege > because of the all the real world knowledge represented as > hierarchies. > ... > My own experience has been that in order to make an > inheritance hierarchy useful (in some non-trivial sense), > then we need to surround/bury the hierarchy in such an > intricate architecture that the significance/usefulness of > the hierarchy reduces to zero. Hierarchies, I have found > are useful for storing programmer knowledge, but not non- > programmer expert knowledge. Your last sentence goes to the heart of the matter. An object-oriented system is a design or a programming level abstraction. At this level it is the (current) finest known engineering paradigm for construction of software systems available. Its purpose is precisely to store programmer knowledge. It serves this purpose very well. An expert system stores knowledge of a different type dealing with a very different realm. This is true even if the expert system deals with the realm of programming as would (e.g.) a programmers assistant. The expert system is a user-level abstraction dealing with user-level concepts. While some (as you point out, simple) hierarchies exist that capture some bits of knowledge, real knowledge-based systems require more complex representations than are available in object-oriented programming systems. While object-oriented programming systems can be used to capture such simple heirarchies, such use in real applications does not allow the capture of the more complex relationships. The object-oriented programming system captures the lower-level details of the construction of the higher-level knowledge-representation system (when properly used as am implementation tool.) The expert system deals with knowledge representation at the level of meeting the user requirements for which the expert system is designed. The object-oriented system captures knowledge dealing with the implementation and design of the first. I expect that your question stems from an inappropriate mixture of the two unrelated concepts. Skip Egdorf hwe@lanl.gov Brought to you by Super Global Mega Corp .com