Abstract
This paper aims at a deeper understanding of how inheritance can fit into a logic programming framework, by considering inheritance systems in terms of partially ordered sets of logic program units. We develop for such systems operational, declarative and fixed point semantics which are proven equivalent.
We begin by discussing, in logic programming terms, the basic types of inheritance that can be achieved. We identify two kinds, semantic and syntactic inheritance, which can occur in two modes, extension and overriding. We then present a (abstract) language for programming systems with combinations of these various types of inheritance. These combinations are obtained through a signature that assigns to each unit the sets of predicates for semantic and syntactic inheritance, extension and overriding becoming implicit. We define and characterize the operational, declarative, and fixed-point semantics, and we prove their equivalence. The equivalence between declarative and operational semantics is based on a two-step reduction of inheritance systems to non-inheritance systems, i.e. systems of standard logic programs, by eliminating first syntactic inheritance and then semantic inheritance. Through equivalence results along the way and using the well-known equivalence of semantics for standard logic programs we achieve the main result. Then we extend the language with inheritance control at the level of individual goal calls, using two new connectives super and self, and define the corresponding extension of the semantic definitions, showing that the equivalence is still preserved.
The semantics presented provide simple direct insights into inheritance phenomena. The reduction technique used in the main equivalence proof actually suggests that inheritance really adds no extra conceptual power to standard logic programs, although remaining a highly convenient structuring technique with implications for software engineering.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
H. Alt-Kaci, R. Nasr. LOGIN: A logic programming language with built-in inheritance. J. Logic Programming, vol. 3, no. 3, 1986.
K.L. Clark. Predicate Logic as a Computational Formalism. Research Report Doc. 79/59, Department of Computing, Imperial College, 1979.
H. Gallaire. Merging objects and logic programming: relational semantics. Proc. AAAI-86, Philadelphia, PA, 1986.
H. Kauffman, A. Grumbach. MULTILOG: MULTIple worlds in LOGic Programming. Proc. ECA I-86, North-Holland, 1986.
J.W. Lloyd. Foundations of Logic Programming. Second edition, Springer-Verlag, Berlin, 1987.
F. McCabe. Logic and objects. Imperial College, London, 1988.
P. Mello. Inheritance as a Combination of Horn Clause Theories. Inheritance Hierarchies in Knowledge Representation, J. Wiley and Sons, 1989.
D. Miller. A Logical Analysis of Modules in Logic Programming. Journal of Logic Programming, Vol. 6, pp. 79–108, 1989.
L. Monteiro, A. Porto. Contextual Logic Programming. Logic Programming, Proc. 6th International Conference, eds. G. Levi and M. Martelli, MIT Press, Cambridge, MA, 1989.
L. Monteiro, A. Porto. A Tranformational View of Inheritance in Logic Programming. Logic Programming, Proc. 7th International Conference, eds. P. Szeredi and D. H. D. Warren, MIT Press, Cambridge, MA, 1990.
R. O’Keefe. Towards an Algebra for Constructing Logic Programs. Proc. 1985 Symposium on Logic Programming, IEEE Computer Society Press, 1985.
C. Zaniolo. Object oriented programming in Prolog. Proc . International Symposium on Logic Programming, IEEE Press, 1984.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Monteiro, L., Porto, A. (1992). Syntactic and Semantic Inheritance in Logic Programming. In: Darlington, J., Dietrich, R. (eds) Declarative Programming, Sasbachwalden 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3794-8_11
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3794-8_11
Publisher Name: Springer, London
Print ISBN: 978-3-540-19735-5
Online ISBN: 978-1-4471-3794-8
eBook Packages: Springer Book Archive