Managing Specialization/Generalization HIerarchies
In object-oriented approaches (modeling, programming, databases, knowledge representation), the core of systems is, most of the time, a specialization hierarchy, that organizes concepts of the application domain or software artifacts useful in the development. These concepts are usually known as classes, interfaces and types. Software Engineering methods for design and analysis are concerned by application domain modeling as well as transferring the model into the target programming language chosen for implementation. For programming languages and database systems, the specialization hierarchy is implemented by inheritance, that also supports feature (specification or code) sharing and reuse. In Knowledge Representation and data-mining approaches, the modeling aspect of a class hierarchy prevails, whereas its main purpose is to guide the process of reasoning and rule discovery.
Despite their wide and long use in these domains, specialization hierarchies still give rise to controversial interpretations and implementations. The design, implementation and maintenance of such hierarchies are complicated by their size, the numerous and conflicting generalization criteria, and the natural evolution of the domains themselves and of the knowledge about them, which of course must be reflected by the hierarchies.
KeywordsKnowledge Representation Modeling Aspect Class Hierarchy Technology Research Institute Rule Discovery
- 1.M. Huchard, H. Astudillo and P. Valtchev (editors) Late Submissions of the workshop Managing SPEcialization/Generalization Hierarchies (MASPEGHI), OOIS’2002 Research Report LIRMM, CNRS et Université Montpellier 2, n.02087, August 2002.Google Scholar
- 2.A. Black, E. Ernst, P. Grogono and M. Sakkinen (editors) Proceedings of the Inheritance workshop at ECOOP 2002 Publications of Information Technology Research Institute, University of Jyväskylä, 12/2002, ISBN: 951-39-1252-3.Google Scholar