On Canonical and Non-canonical Classifications

We distinguish the concepts of types, used for structure and behavioral sharing in object-oriented programming languages, from classes, used as collections in databases. Consequently, our class is not a type. Types are used strictly for structure; a type can be used as the structure for multiple, semantically unrelated, classes. Objects belonging to these classes are said to have the same canonical structure. Classes are collections of objects enhanced with additional features to describe context sensitive information, thus supporting non-canonical view of objects in the class. With the above two classifications of objects, an object may be a member of several classes that are unrelated by the subclass superclass relationships; each class membership models the different roles played by an object in the real world. This paper describes the above two concepts and shows how they are supported in our database programming language, PINOL.

[1]  Erich J. Neuhold,et al.  A theoretical underlying dual model for knowledge-based systems , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[2]  François Banciihon Object-oriented database systems , 1988, PODS 1988.

[3]  L. J. Pinson,et al.  An Introduction to Object-Oriented Programming and Smalltalk , 1988 .

[4]  Limsoon Wong Inference Rules in Object Oriented Programminh Systems , 1989, DOOD.

[5]  Michael J. Carey,et al.  Persistence in the E Language: Issues and Implementation , 1989, Softw. Pract. Exp..

[6]  Ronald Morrison,et al.  Data Types and Persistence , 1988 .

[7]  Catriel Beeri,et al.  Formal Models for Object Oriented Databases , 1989, DOOD.

[8]  Christophe Lécluse,et al.  The O2 Database Programming Language , 1989, Building an Object-Oriented Database System, The Story of O2.