koenig@urz.unibas.ch (07/05/90)
Could somebody give me references to articles or books that discuss the application of OOP concepts to artificial intelligence problems, esp. rule-/knowledge-based expert systems ? Please send any information to koenig@urz.unibas.ch Thanks. =================================================================== stefan koenig Institut fuer Informatik Univ. Basel, Switzerland
timm@runxtsa.runx.oz.au (Tim Menzies) (07/08/90)
In article <1990Jul5.175708.809@urz.unibas.ch> koenig@urz.unibas.ch writes: >Could somebody give me references to articles or books that discuss >the application of OOP concepts to artificial intelligence problems, >esp. rule-/knowledge-based expert systems ? > >Please send any information to koenig@urz.unibas.ch >Thanks. >=================================================================== >stefan koenig Institut fuer Informatik > Univ. Basel, Switzerland i have a thesis that objects are not a knowledge representation techhique. yes, minsky's frames can be done as objects, but in a practical sense how useful are they? by that i mean, what portion of all the code of your expert systems can usefully be represented as objects? the other month, i made a strange observation. in three years of working with object tools while writing expert systems (in KEE & Smalltalk), i've never shown a domain expert my hierarchy of objects. this puzzled me greatly since "everyone" knows that objects are a great way to represent knowledge. the more i thought about it, the more i thought that objects are a great way of representing "programmer" knowledge, not expert knowledge. if i implement a user-friendly specification environment that can specify and execute nouns and verbs are taken from the expert's vocabulary (my usual method of operation), then when i review my code i find that i am using a whole host of constructs **NOT** in the vocabulary of the domain experts. i can cleverly devise a whole host of abstract classes that tease apart some useful functionality of my specification environment and the expert's domain. but i wouldn't dream of confusing a domain expert with constructs that they did not invent themselves. yes. i would use objects to build expert systems. i would rigourously apply meyer's shopping list approach to the development (i.e. view objects as a collection of services that can be delivered to the outside world and delay the writing of the top-level loop till as late as possible). this allows for incremental modification. BUT, i would "black-box" the hierarchy and offer the experts a succcinct, high-level logical specification environment that **HIDES** the implementation complexity of the hierarchy. my objections to objects as a KR method are based on pragmatic considerations. brachman has a set of logical objections. in 1983 he surveyed the field of people using frame/object tools. he listed out all the things that inheritance was being used for. his list included: - superset/ subset - specialisation/ generalisation - set membership - predicates that act on an individual - sharing of common properties - conceptual containment (e.g. a triangle is a polygon with three sides). then, a dramatic chord. nowhere, observes brachman, in that list is "pass this property" or "block this property". inheritance has no semantics per se. it can be used to implement (read, muddle up) a variety of semantic properites. brachman's thesis is that these semantic properties should eb offerred as seperate building blocks in a KR tool and not thrown in together in a mess. as a programmer, i like inheritance hierarchies. i can normalise all my code. i know that i can specify the behaviour of a whole sub-tree of objects by changing code at some high level. but thats all by-the-by for knowledge representation. back to brachman... but what about default knowledge? surely thats a useful KR trick that needs a hierarchy of inheriting objects? not so says brachman. with defaults comes the ability to override defaults. the ability to override defaults effectively negates any knowledge representation power. if john is-a bachelor and john can override any or all of the properties of bachelor, then all you can say about john is that at sometime in the past, john had all the properies of a bachelor. since then, john could have done anything with his bachelor-ness. if defaults can be over-ridden, then you can 'tbe sure about any of john's properties right now. this is all blasphemy of course. objects give you a window into the fundamental truths of the universe. as soon as you buy your copy of your KEE/Eiffel/ C++/ CLOS/ Smalltalk/ ADS 5.1/ KAPPA/ Egeria/ (etc. etc.) system, then all your specification problems will disappear and all will become so clear. any we certainly don't need programmers like YOU mr menzies. i just smile, and wait. sooner or later the project folds or my phone rings. anyway, you may find the following references useful: the classic frame paper: Minsky, M "A Framework for Representing Knowledge", The Psychology of Human Vision, Winston P.H.(ed) McGraw Hill, 1975. a survey of commercial oo/es tools: Tello, E "Object Oriented Programming 4 Artificial Intelligence" Howard W. Sams & Company (i think), 1989, (i think) Brachman's blasphemies: Brachman R.J. "What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Nets" IEEE Computer, October 1983, vol 16, No. 10, pp66-73 Brachman R.J. "I Lied About the Trees", or Defaults and Definitions in Knowledge Representations. The AI Magazine, Fall 1985, pp80-85. my own dissidents view: Menzies T.J. "Why You Shouldn't Respecy Your Parents", Proceedings of AI '90, in preperation. someone using frames for soemthing interesting: Reggia J et al "Diagnostic Expert Systems based on a set covering model", International Journal of Man-Machine Studies, the software engineer's perspective: Meyer B. "Object-oriented Software construction", Prentice-Hall, 1988.
timm@runxtsa.runx.oz.au (Tim Menzies) (07/09/90)
In article <1990Jul5.175708.809@urz.unibas.ch>, koenig@urz.unibas.ch writes: > Could somebody give me references to articles or books that discuss > the application of OOP concepts to artificial intelligence problems, > esp. rule-/knowledge-based expert systems ? > > Please send any information to koenig@urz.unibas.ch > Thanks. > =================================================================== > stefan koenig Institut fuer Informatik > Univ. Basel, Switzerland i have a thesis that objects are not a knowledge representation techhique. yes, minsky's frames can be done as objects, but in a practical sense how useful are they? by that i mean, what portion of all the code of your expert systems can usefully be represented as objects? the other month, i made a strange observation. in three years of working with object tools while writing expert systems (in KEE & Smalltalk), i've never shown a domain expert my hierarchy of objects. this puzzled me greatly since "everyone" knows that objects are a great way to represent knowledge. the more i thought about it, the more i thought that objects are a great way of representing "programmer" knowledge, not expert knowledge. if i implement a user-friendly specification environment that can specify and execute nouns and verbs are taken from the expert's vocabulary (my usual method of operation), then when i review my code i find that i am using a whole host of constructs **NOT** in the vocabulary of the domain experts. i can cleverly devise a whole host of abstract classes that tease apart some useful functionality of my specification environment and the expert's domain. but i wouldn't dream of confusing a domain expert with constructs that they did not invent themselves. yes. i would use objects to build expert systems. i would rigourously apply meyer's shopping list approach to the development (i.e. view objects as a collection of services that can be delivered to the outside world and delay the writing of the top-level loop till as late as possible). this allows for incremental modification. BUT, i would "black-box" the hierarchy and offer the experts a succcinct, high-level logical specification environment that **HIDES** the implementation complexity of the hierarchy. my objections to objects as a KR method are based on pragmatic considerations. brachman has a set of logical objections. in 1983 he surveyed the field of people using frame/object tools. he listed out all the things that inheritance was being used for. his list included: - superset/ subset - specialisation/ generalisation - set membership - predicates that act on an individual - sharing of common properties - conceptual containment (e.g. a triangle is a polygon with three sides). then, a dramatic chord. nowhere, observes brachman, in that list is "pass this property" or "block this property". inheritance has no semantics per se. it can be used to implement (read, muddle up) a variety of semantic properites. brachman's thesis is that these semantic properties should eb offerred as seperate building blocks in a KR tool and not thrown in together in a mess. as a programmer, i like inheritance hierarchies. i can normalise all my code. i know that i can specify the behaviour of a whole sub-tree of objects by changing code at some high level. but thats all by-the-by for knowledge representation. back to brachman... but what about default knowledge? surely thats a useful KR trick that needs a hierarchy of inheriting objects? not so says brachman. with defaults comes the ability to override defaults. the ability to override defaults effectively negates any knowledge representation power. if john is-a bachelor and john can override any or all of the properties of bachelor, then all you can say about john is that at sometime in the past, john had all the properies of a bachelor. since then, john could have done anything with his bachelor-ness. if defaults can be over-ridden, then you can 'tbe sure about any of john's properties right now. this is all blasphemy of course. objects give you a window into the fundamental truths of the universe. as soon as you buy your copy of your KEE/Eiffel/ C++/ CLOS/ Smalltalk/ ADS 5.1/ KAPPA/ Egeria/ (etc. etc.) system, then all your specification problems will disappear and all will become so clear. any we certainly don't need programmers like YOU mr menzies. i just smile, and wait. sooner or later the project folds or my phone rings. anyway, you may find the following references useful: the classic frame paper: Minsky, M "A Framework for Representing Knowledge", The Psychology of Human Vision, Winston P.H.(ed) McGraw Hill, 1975. a survey of commercial oo/es tools: Tello, E "Object Oriented Programming 4 Artificial Intelligence" Howard W. Sams & Company (i think), 1989, (i think) Brachman's blasphemies: Brachman R.J. "What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Nets" IEEE Computer, October 1983, vol 16, No. 10, pp66-73 Brachman R.J. "I Lied About the Trees", or Defaults and Definitions in Knowledge Representations. The AI Magazine, Fall 1985, pp80-85. my own dissidents view: Menzies T.J. "Why You Shouldn't Respecy Your Parents", Proceedings of AI '90, in preperation. someone using frames for soemthing interesting: Reggia J et al "Diagnostic Expert Systems based on a set covering model", International Journal of Man-Machine Studies, the software engineer's perspective: Meyer B. "Object-oriented Software construction", Prentice-Hall, 1988.