A generic persistence model for (C)LP systems (and two useful implementations)

Correas Fernandez, Jesús and Gómez, J. M. and Carro Liñares, Manuel and Cabeza Gras, Daniel and Hermenegildo, Manuel V. (2003). A generic persistence model for (C)LP systems (and two useful implementations). Monografía (Technical Report). Facultad de Informática (UPM), Madrid, España.

Description

Title: A generic persistence model for (C)LP systems (and two useful implementations)
Author/s:
  • Correas Fernandez, Jesús
  • Gómez, J. M.
  • Carro Liñares, Manuel
  • Cabeza Gras, Daniel
  • Hermenegildo, Manuel V.
Item Type: Monograph (Technical Report)
Date: August 2003
Subjects:
Freetext Keywords: Prolog; External database; Persistent storage; Media independence
Faculty: Facultad de Informática (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (189kB) | Preview

Abstract

Este trabajo describe un modelo de persistencia para lenguajes (C)LP y dos modos diferentes y útiles en la práctica de implementar este modelo en sistemas actuales. La idea fundamental es que la persistencia es una característica de ciertos predicados dinámicos que encapsulan estado. El efecto principal de la declaración de un predicado persistente es que los cambios dinámicos realizados se mantienen desde una ejecución a la siguiente. Tras proponer una sintaxis para la declaración de predicados persistentes, presentamos una implementación sencilla basada en ficheros, junto con algunos ejemplos. Vemos entonces que el concepto proporciona la manera más natural de realizar interfaces con bases de datos relacionales. Este interfaz se puede ver como una implementación alternativa a la de ficheros. La abstracción del concepto de persistencia permite el desarrollo de aplicaciones que pueden almacenar datos en ficheros o bases de datos con unos cambios mínimos a una declaración que establece la situación y modalidad del almacenamiento externo.---ABSTRACT---This paper describes a model of persistence in (C)LP languages and two different and practically very useful ways to implement this model in current systems. The fundamental idea is that persistence is a characteristic of certain dynamic predicates (i.e., those which encapsulate state). The main effect of declaring a predicate persistent is that the dynamic changes made to such predicates persist from one execution to the next one. After proposing a syntax for declaring persistent predicates, a simple, file-based implementation of the concept is presented and some examples shown. An additional implementation is proposed which stores persistent predicates in an external database. The abstraction of the concept of persistence from its implementation allows developing applications which can store their persistent predicates alternatively in files or databases with only a few simple changes to a declaration stating the location and modality used for persistent storage. The paper presents the model, the implementation approach in both the cases of using files and relational databases, a number of optimizations of the process (using information obtained from static global analysis and goal clustering), and performance results from an implementation of these ideas.

More information

Item ID: 55504
DC Identifier: http://oa.upm.es/55504/
OAI Identifier: oai:oa.upm.es:55504
Official URL: http://cliplab.org/papers/persdb-tr1.pdf
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 19 Jun 2019 12:38
Last Modified: 19 Jun 2019 12:38
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM