timm@runxtsa.runx.oz.au (Tim Menzies) (11/28/90)
Are inheritance hierarchies a good way you represent knowlege? I recently presented a paper (by proxy, thanx Alan) to the 1990 Australian Joint Artificial Intelligence conference. In that, I observed that in the three years that I have been using OO tools for expert systems, I have **never** shown an object hierarchy to a expert. My own hierarchies were so intiricate, I ended up hiding them behind interfaces that presented some abstarcted/filtered view of networks of instances to the experts. 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. For example, in biology, the classification of plants and animals are all presented hierarchically. (I don't agree with this argument BTW, see below). Now, we could debate this issue, or we subject it to an emperical test. Could anyone who has actually built a non-trivial object system email me (or the net) and let me know how much of the explicit business/expert knowledge was clearly defined in an inheritance hierarchy? If there is enough interest in this, I'll post a reply. As to the above argument re plant/animal classification: Just what are those hierarchies used for? Actually expert processing of significant biologically problems? Or only as a learning tool for new biologists? (I suspect the latter.) 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. -- _--_|\ Tim Menzies (timm@runxtsa.oz) "Two years ago, I couldn't even / \ HiSoft Expert Systems Group, spell 'knowledge engineer'. \_.--._/ 2-6 Orion Rd Lane Cove, NSW, 2d066 Now I r 1." v 02 9297729(voice),61 2 4280200(fax) John McDermont
sticklen@cps.msu.edu (Jon Sticklen) (12/02/90)
From article <2588@runxtsa.runx.oz.au>, by timm@runxtsa.runx.oz.au (Tim Menzies): I think the issues that Tim raises are very good ones. If you take the issue as he posed it (What good are inheritance hierarchies in terms of direct representation of expert knowledge?), then I think he is correct that the (purely representational) hierarchies will become very complex. For example, if I tried to build a system for medical diagnosis around the represetational idea of hierarchies, then I would have a very complex structure in which some objects were diseases, some objects were signs and symptoms, some were lab tests, and ... Moreover the relationships between all these different types of nodes would let me to a very tangled structure indeed. But what is missing here is a decomposition of the overal problem solving in some meaningful way such that all of these "hierarchies" will be untangled. The job of diagnosis in a clinical setting has deeply embedded hierarchies of disease such that most clinical practioneers will readily recognize them. These disease specialization hierarchies can be used to perform a type of classificaiton problem solving. Other types of problem solving necessary to drive the diagnosis (like inferences leading from known data value to another, e.g., temp=105 => high fever) will not be represneted in the hierarchy of diseases, but in a seperated knowledge structure. The point here is that expert knowledge may well be hard to organize if you use a syntax level representation tool like "object hierarchy". On the other hand, if you have in your repetoire epistemic level tools of analysis (like hierarchical classificaiton), then expert level knowledge may be easier to represent in some semi-direct fashion. ---jon---