Zusammenfassung
Standard-Prolog-Interpreter verwalten Prolog-Programme zur Laufzeit im Hauptspeicher. Dieses führt bei großen Programmsystemen zu hohem Speicherplatzbedarf. Ferner entstehen durch Programm-Manipulationen unterschiedliche Versionen dieser Programme im Hauptspeicher und in den externen Dateien. Eine datenbankgestützte Prolog-Programmierumgebung vermeidet diese Nachteile dadurch, daß nur die für eine aktuelle Abfrage relevanten Teile der Prolog-Programme im Hauptspeicher vorgehalten und Veränderungen an den Programmen sofort in der Programmdatenbank nachgehalten werden.
In diesem Aufsatz wird das Schema einer datenbankgestützten, externen Programmverwaltung anhand des DBProlog-Systems diskutiert. Ausgehend von einem Standard-Prolog-Interpreter mit interner Programmverwaltung werden dessen für die hauptspeicherresidente Programmverwaltung benutzten Datenstrukturen so verändert, daß eine direkte (minimale) Übersetzung von extern gespeicherten Klauseln in die für die Prolog-Unifikation benötigten Strukturen möglich wird. Durch die Definition von zusätzlichen Zugriffsstrukturen wird eine gute Selektivität auf die mit einem Teilziel unifizierbaren Klauseln erreicht. Für die externe Programmverwaltung wird ein abstraktes Schema vorgestellt. Dieses soll sowohl für das relationale DB-System ORACLE als auch für das GridFile-System implementiert werden.
Abstract
Standard Prolog interpreters store the programs in main memory at run time. This results in a huge amount of main memory that is necessary for interpreting large programs. Furthermore, manipulating programs with built-in predicates leads to different versions of these programs in main memory and on external files. These deficiencies will be overcome by using a database for the management of Prolog programs. Firstly, only necessary parts of a program must be stored in main memory. Secondly, changes to programs in main memory will be mirrored on the external program management
In this paper the schema used in the DBProlog system for externally storing Prolog programs will be discussed. Starting from an existing Prolog interpreter we will change the datastructures of the internal database into new structures being more suitable for the management of externally stored clauses. As a result, there is a simple translation of the externally stored clauses into the representation used for the unification. Additional datastructures will allow for efficient access of unifyable clauses to some goal. In this paper we will provide a schema for the external program management of the DBProlog system. It will be implemented for both, the relational database management system ORACLE as well as the GridFile system.
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
Literatur
Appelrath, H.-J.: “Von Datenbanken zu Expertensystemen”, Informatik Fachberichte Nr. 102, Springer Verlag, 1985.
Appelrath, H.-J.: “PROTOS- Prolog Tools for Building Expert Systems”, in “GI-Kongress 1987, Wissensbasierte Systeme”, Informatik Fachberichte Nr. 155, Springer Verlag, 1987.
Bocca, J.: “On the Evaluation Strategy of EDUCE”, in ACM SIGMOD ’86, 1986.
Clocksin, W. F.; Mellish, C. S.: “Programming in Prolog”, 3rd edition, Springer Verlag, 1987.
Kerschberg, L. (ed.): “Expert Database Systems”, proceedings of the 1st intern, workshop on Expert Database Systems, Addison Wesley, 1986
Kerschberg, L. (ed.): “Expert Database Systems”, proceedings of the 1st intern, conference on Expert Database Systems, Benjamin/Cummings Publ. Inc., 1986.
Kerschberg, L. (ed.): “Expert Database Systems”, proceedings of the 2nd intern, conf. on Expert Database Systems, George Mason Univ., Fairfax, Virginia, 1988.
Jasper, H.: “Interfacing Prolog and External Data Management Systems: A Model”, in GWAI-87, Proc. of the 11th German Workshop on Artificial Intelligence, Geseke, 1987.
Kluzniak et.al.’85 Kluzniak, F.; Szpakowicz, S.; Bien J.S.: “Prolog for Programmers”, Academic Press, London, 1985.
Proceedings of the “Workshop on Integration of Logic Programming and Data Bases”, Commission of the Europ. Com., Esprit Project 530, Venice, December 1986.
Muller, C: “A Prolog Front End To The GridFile”, Diplomarbeit, ETH Zürich, 1984.
Nievergelt, J.; Hinterberger, H.; Sevik, K.C.: “The GridFile: An Adaptable, Symmetric Multikey File Structure”, ACM TODS, Vol. 9, No. 1, pp. 38 — 71, 1984.
Nussbaum, M.: “Delayed Evaluation in Logic Programming: An Inference Mechanism for Large Knowledge Bases”, Dissertation 8542, ETH Zürich, 1988.
Rothermel, K.: “An Effective Method for Storing and Retrieving PROLOG Clauses from a Relational Database”, 3rd Int. Conf. on Data and Konwledge Bases, Jerusalem, 1988.
Venken, R.: “A Prolog Meta-Interpreter for Partial Evaluation and its Application to Source to Source Transformation and Query-Optimization”, in proceedings ECAI ’84, “Advances in Artificial Intelligence”, T. O’Shea (ed.), North-Holland, 1984.
Zehnder, CA.: “Informationssysteme und Datenbanken”, Teubner, Stuttgart, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jasper, H. (1989). Prolog und Datenbanken: Ein Schema für die externe Verwaltung von Prolog-Programmen. In: Härder, T. (eds) Datenbanksysteme in Büro, Technik und Wissenschaft. Informatik-Fachberichte, vol 204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-74571-3_17
Download citation
DOI: https://doi.org/10.1007/978-3-642-74571-3_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50894-6
Online ISBN: 978-3-642-74571-3
eBook Packages: Springer Book Archive