Modelling inheritance in a strongly typed functional model
When dealing with data models for information systems, distinctions of various kinds can be made among them based on particular criteria of classification. There seems to be a rather general consensus that the object-oriented data models fall within the class of procedural (non-declarative) data models. This is primarily due to the fact that the essential features of OO data models have been derived from the background of OO programming, while declarative models have been indentified with formalisms based on first-order predicate logic.
This paper presents an attempt to bridge the gap between object-orientedness and declarativeness based on a functional formalism enriched by a suitable type hierarchy and associated abstraction and injection operations. We will provide a formal basis for treating inheritance — both simple (ISA-hierarchies) and multiple — within a strongly typed model, together with clues for treating implementation of various data abstraction level schemas. This may provide an alternative way of looking at the semantics of inheritance as a natural modelling construct associated with the use of union types as opposed to the traditional way of describing the semantics of inheritance using record structures. Our approach to inheritance fits nicely into the functional apparatus that we introduced earlier elsewhere [ZLAT86], and within which first-order logic notation is in fact essentially expressed via the functional notation, hence providing for non-procedural logic-based data description even within a functional model.
KeywordsLogic Programming Functional Model Database Schema Record Structure Semantic Schema
Unable to display preview. Download preview PDF.
- [BARE81]H.P. Barendregt: Lambda-calculus. Its syntax and semantics. North-Holland, Amsterdam, 1981.Google Scholar
- [FZ89]O. Felix and J. Zlatuška: Mapping semantic data modelling constructs into their implementations, TR89-32, Dept. of Comp. and Info. Sci., Univ. of Delaware, 1989.Google Scholar
- [CARD84]L. Cardelli: A semantics of multiple inheritance. in: proc. Semantic of Data Types (Kahn and MacQueen, eds.), Springer LNCS 173, 1984, 51–67.Google Scholar
- [CDV88]M.J. Carey, D.J. DeWitt, and S.L. Vandenberg: A data model and query language for EXODUS. ACM PODS, 1988, 413–423.Google Scholar
- [GAND80]R.O. Gandy: Proofs of strong normalization. In: To H.B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism (Hindley and Seldin, eds.), Academic Press, London, 1980, 453–456.Google Scholar
- [GR83]A. Goldberg and D. Robson: Smalltalk-80. The language and its implementation. Addison-Wesley, 1983.Google Scholar
- [GM86]J. Goguen and J. Meseguer: EQLOG: Equality, types, and generic modules for logic programming, in: Logic programming. Functions, relations, and equations. (DeGroot and Lindstrom, eds.), Prentice-Hall, 1986, 295–363.Google Scholar
- [KW89]M. Kifer and J. Wu: A logic for object-oriented logic programming (Maier's O-logic revisited), ACM PODS, 1989, 379–393.Google Scholar
- [NIXO89]B.A. Nixon et al: Design of a compiler for a semantic data model. in: Foundations of Knowledge Base Management. (Schmidt and Thanos, eds.), Springer, 1989, 293–343.Google Scholar
- [ULLM88]J.D. Ullman: Principles of Database and Knowledge-Base Systems. Computer Science Press, Rockville, MD, Vol. 1, 1988, Vol. 2, 1989.Google Scholar
- [ZLAT85]J. Zlatuška: Normal forms in the typed lambda-calculus with tuple types. Kybernetika, Vol.21, No.5, 1985.Google Scholar
- [ZLAT86]J. Zlatuška: Data bases and the lambda-calculus. in: Proc. IFIP'86 World Computer Congress (Kügler, ed.), Dublin, 1986, pp.97–104.Google Scholar
- [ZLAT89]J. Zlatuška: Functional data modelling using lambda-calculus. TR University of Brno (Pisa lecture notes), October 1989.Google Scholar