76,786 research outputs found
On specifying database updates
AbstractWe address the problem of formalizing the evolution of a database under the effect of an arbitrary sequence of update transactions. We do so by appealing to a first-order representation language called the situation calculus, which is a standard approach in artificial intelligence to the formalization of planning problems. We formalize database transactions in exactly the same way as actions in the artificial intelligence planning domain. This leads to a database version of the frame problem in artificial intelligence. We provide a solution to the frame problem for a special, but substantial, class of update transactions. Using the axioms corresponding to this solution, we provide procedures for determining whether a given sequence of update transactions is legal, and for query evaluation in an updated database. These procedures have the desirable property that they appeal to theorem-proving only with respect to the initial database state.We next address the problem of proving properties true in all states of the database. It turns out that mathematical induction is required for this task, and we formulate a number of suitable induction principles. Among those properties of database states that we wish to prove are the standard database notions of static and dynamic integrity constraints. In our setting, these emerge as inductive entailments of the database.Finally, we discuss various possible extensions of the approach of this paper, including transaction logs and historical queries, the complexity of query evaluation, actualized transactions, logic programming approaches to updates, database views, and state constraints
On specifying database updates
We address the problem of formalizing the evolution of a database under the effect of an
arbitrary sequence of update transactions. We do so by appealing to a first order representation
language called the situation calculus, which is a standard approach in artificial intelligence to
the formalization of planning problems. We formalize database transactions in exactly the same
way as actions in the artificial intelligence planning domain. This leads to a database version
of the frame problem in artificial intelligence. We provide a solution to the frame problem
for a special, but substantial, class of update transactions. Using the axioms corresponding
to this solution, we provide procedures for determining whether a given sequence of update
transactions is legal, and for query evaluation in an updated database. These procedures have
the nice property that they appeal to theorem-proving only with respect to the initial database state.
We next address the problem of proving properties true in ali states of the database. It
turns out that mathematical induction is required for this task, and we formulate a number of
suitable induction principies. Among those properties of database states that we wish to prove
are the standard database -notions of static and dynamic integrity constraints. In our setting,
these emerge as inductive entailments of the database.
Finally, we discuss various possible extensions of the approach of this paper, including transaction
logs and historical queries, the complexity of query evaluation, actualized transactions,
logic programming approaches to updates, database views and state constraints
The Synchronic Group: A Concurrent Programming Concept and Its Proof Logic
Swarm is a computational model which extends UNITY in three important ways: (1) UNITY\u27s fixed set of variables is replaced by an unbounded set of tuples which are addressed by content rather than by name; (2) UNITY\u27s static set of statements is replaced by a dynamic set of transactions; and (3) UNITY\u27s static II-composition is augmented by dynamic coupling of transactions into synchronic groups. This paper overviews the Swarm model, introduced the synchronic group concept, and illustrates their use in the expression of dynamically structured programs. A UNITY-style programming logic is given for SWARM, the first axiomatic proof system for a shared database language
Live Logic Programming
Abstract-Logic programming languages are today used to build applications accessing large database systems. This raises the possibility of building live development environments for them. Of particular interest is how specific language features such as level of abstraction, transactions, etc. affect the design of such an environment. In this paper, we explore this question for a specific logic language, Datalog, contrast traditional and live approaches for its tooling and discuss issues that arise
Compiling ER Specifications into Declarative Programs
This paper proposes an environment to support high-level database programming
in a declarative programming language. In order to ensure safe database
updates, all access and update operations related to the database are generated
from high-level descriptions in the entity- relationship (ER) model. We propose
a representation of ER diagrams in the declarative language Curry so that they
can be constructed by various tools and then translated into this
representation. Furthermore, we have implemented a compiler from this
representation into a Curry program that provides access and update operations
based on a high-level API for database programming.Comment: Paper presented at the 17th Workshop on Logic-based Methods in
Programming Environments (WLPE2007
The DLV System for Knowledge Representation and Reasoning
This paper presents the DLV system, which is widely considered the
state-of-the-art implementation of disjunctive logic programming, and addresses
several aspects. As for problem solving, we provide a formal definition of its
kernel language, function-free disjunctive logic programs (also known as
disjunctive datalog), extended by weak constraints, which are a powerful tool
to express optimization problems. We then illustrate the usage of DLV as a tool
for knowledge representation and reasoning, describing a new declarative
programming methodology which allows one to encode complex problems (up to
-complete problems) in a declarative fashion. On the foundational
side, we provide a detailed analysis of the computational complexity of the
language of DLV, and by deriving new complexity results we chart a complete
picture of the complexity of this language and important fragments thereof.
Furthermore, we illustrate the general architecture of the DLV system which
has been influenced by these results. As for applications, we overview
application front-ends which have been developed on top of DLV to solve
specific knowledge representation tasks, and we briefly describe the main
international projects investigating the potential of the system for industrial
exploitation. Finally, we report about thorough experimentation and
benchmarking, which has been carried out to assess the efficiency of the
system. The experimental results confirm the solidity of DLV and highlight its
potential for emerging application areas like knowledge management and
information integration.Comment: 56 pages, 9 figures, 6 table
A logic programming framework for modeling temporal objects
Published versio
- …