Skip to main content

Syntactic and Semantic Inheritance in Logic Programming

  • Conference paper
Declarative Programming, Sasbachwalden 1991

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Alt-Kaci, R. Nasr. LOGIN: A logic programming language with built-in inheritance. J. Logic Programming, vol. 3, no. 3, 1986.

    Google Scholar 

  2. K.L. Clark. Predicate Logic as a Computational Formalism. Research Report Doc. 79/59, Department of Computing, Imperial College, 1979.

    Google Scholar 

  3. H. Gallaire. Merging objects and logic programming: relational semantics. Proc. AAAI-86, Philadelphia, PA, 1986.

    Google Scholar 

  4. H. Kauffman, A. Grumbach. MULTILOG: MULTIple worlds in LOGic Programming. Proc. ECA I-86, North-Holland, 1986.

    Google Scholar 

  5. J.W. Lloyd. Foundations of Logic Programming. Second edition, Springer-Verlag, Berlin, 1987.

    Book  MATH  Google Scholar 

  6. F. McCabe. Logic and objects. Imperial College, London, 1988.

    Google Scholar 

  7. P. Mello. Inheritance as a Combination of Horn Clause Theories. Inheritance Hierarchies in Knowledge Representation, J. Wiley and Sons, 1989.

    Google Scholar 

  8. D. Miller. A Logical Analysis of Modules in Logic Programming. Journal of Logic Programming, Vol. 6, pp. 79–108, 1989.

    Article  MATH  MathSciNet  Google Scholar 

  9. L. Monteiro, A. Porto. Contextual Logic Programming. Logic Programming, Proc. 6th International Conference, eds. G. Levi and M. Martelli, MIT Press, Cambridge, MA, 1989.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. R. O’Keefe. Towards an Algebra for Constructing Logic Programs. Proc. 1985 Symposium on Logic Programming, IEEE Computer Society Press, 1985.

    Google Scholar 

  12. C. Zaniolo. Object oriented programming in Prolog. Proc . International Symposium on Logic Programming, IEEE Press, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics