Results 1 -
8 of
8
Combinators for bi-directional tree transformations: A linguistic approach to the view update problem
- In ACM SIGPLAN–SIGACT Symposium on Principles of Programming Languages (POPL
, 2005
"... We propose a novel approach to the view update problem for tree-structured data: a domainspecific programming language in which all expressions denote bi-directional transformations on trees. In one direction, these transformations—dubbed lenses—map a “concrete ” tree into a simplified “abstract vie ..."
Abstract
-
Cited by 94 (13 self)
- Add to MetaCart
We propose a novel approach to the view update problem for tree-structured data: a domainspecific programming language in which all expressions denote bi-directional transformations on trees. In one direction, these transformations—dubbed lenses—map a “concrete ” tree into a simplified “abstract view”; in the other, they map a modified abstract view, together with the original concrete tree, to a correspondingly modified concrete tree. Our design emphasizes both robustness and ease of use, guaranteeing strong well-behavedness and totality properties for welltyped lenses. We identify a natural mathematical space of well-behaved bi-directional transformations over arbitrary structures, study definedness and continuity in this setting, and state a precise connection with the classical theory of “update translation under a constant complement ” from databases. We then instantiate this semantic framework in the form of a collection of lens combinators that can be assembled to describe transformations on trees. These combinators include familiar constructs from functional programming (composition, mapping, projection, conditionals, recursion) together with some novel primitives for manipulating trees (splitting, pruning, copying, merging, etc.). We illustrate the expressiveness of these combinators by developing a number of bi-directional listprocessing transformations as derived forms. An extended example shows how our combinators can be used to define a lens that translates between a native HTML representation of browser bookmarks and a generic abstract bookmark format.
Bidirectional Programming Languages
, 2009
"... The need to edit data through a view arises in a host of applications across many different areas of computing. Unfortunately, few existing systems provide support for updatable views. In practice, when they are needed, updatable views are usually implemented using two separate programs: one to comp ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
The need to edit data through a view arises in a host of applications across many different areas of computing. Unfortunately, few existing systems provide support for updatable views. In practice, when they are needed, updatable views are usually implemented using two separate programs: one to compute the view from the source and another to handle updates. This rudimentary design is tedious for programmers, dif�cult to reason about, and a nightmare to maintain. This dissertation describes bidirectional programming languages, which provide an elegant mechanism for describing updatable views. Unlike programs written in an ordinary language, which only work in one direction, programs written in a bidirectional language can be run both forwards and backwards: from left to right, they describe functions that map sources to views, and from right to left, they describe functions that map updated views back to updated sources. Besides eliminating redundancy, these languages can be designed to ensure correctness, guaranteeing by construction that the two functions work well together.
Supporting Keyword Columns with Ontology-based Referential Constraints in DBMS
"... of the IEEE does not in any way imply IEEE endorsement of any of the Oracle ..."
Abstract
- Add to MetaCart
of the IEEE does not in any way imply IEEE endorsement of any of the Oracle
A Corporate Data Repository For CCLRC Using CERIF
"... This paper documents the history, requirements and work in progress to develop a Corporate Data Repository (CDR) in support of three sites owned by the Council for the Central Laboratory of the Research Councils (CCLRC). From the outset, the CERIF standard has been our starting point in developing a ..."
Abstract
- Add to MetaCart
This paper documents the history, requirements and work in progress to develop a Corporate Data Repository (CDR) in support of three sites owned by the Council for the Central Laboratory of the Research Councils (CCLRC). From the outset, the CERIF standard has been our starting point in developing a common Corporate Data Model (CDM). To support our business processes we have extended the CERIF data model in ways that are described in this paper. Our design philosophy is to develop a data model that is upwards compatible with CERIF. This paper demonstrates that the CERIF standard can be incorporated not only into CRIS applications but
ROX: Relational Over XML
- Proceedings of the 30th Very Large Data Base (VLDB) Conference
, 2004
"... An increasing percentage of the data needed by business applications is being generated in XML format. Storing the XML in its native format will facilitate new applications that exchange business objects in XML format and query portions of XML documents using XQuery. This paper explores the feasibil ..."
Abstract
- Add to MetaCart
An increasing percentage of the data needed by business applications is being generated in XML format. Storing the XML in its native format will facilitate new applications that exchange business objects in XML format and query portions of XML documents using XQuery. This paper explores the feasibility of accessing natively-stored XML data through traditional SQL interfaces, called Relational Over XML (ROX), in order to avoid the costly conversion of legacy applications to XQuery. It describes the forces that are driving the industry to evolve toward the ROX scenario as well as some of the issues raised by ROX. The impact of denormalization of data in XML documents is discussed both from a semantic and performance perspective. We also weigh the implications of ROX for manageability and query optimization.
A Graphical, Functional-Dependency Preserving Normalization Algorithm for Relational Databases
"... The normalization of relational databases is a topic of ongoing interest. We present a graphical normalization algorithm for relational databases that is lossless, functional-dependency preserving, and able to normalize relations with multiple candidate keys. Applications of this algorithm and futur ..."
Abstract
- Add to MetaCart
The normalization of relational databases is a topic of ongoing interest. We present a graphical normalization algorithm for relational databases that is lossless, functional-dependency preserving, and able to normalize relations with multiple candidate keys. Applications of this algorithm and future research directions are discussed.
Fascinating Invariants
, 2001
"... It’s the computing world … Explored, explained and examined. Explored. We will explore the role of invariant and its exploitation in problem solving. Problems studied in this paper include those which we might have encountered before in our daily lives, in elementary computing, in database design as ..."
Abstract
- Add to MetaCart
It’s the computing world … Explored, explained and examined. Explored. We will explore the role of invariant and its exploitation in problem solving. Problems studied in this paper include those which we might have encountered before in our daily lives, in elementary computing, in database design as well as in artificial intelligence. Explained. The solution or solutions will be explained plainly to bring out the simplicity and elegance of invariant. In the course, we will learn to appreciate the use and exploitation of invariants in these solutions. Examined. We will examine how the concept of invariant can be applied in the area of research topics even beyond the area of computing, particularly in the field of biology. 3
Basic and Advanced Database Courses
"... At the beginning of the course, we explore some basic database concepts and adopt terminology. We give an overview of the most important data models. First we give brief remarks on historical network and hierarchical data models, and then we continue to investigate entity-relationship and relational ..."
Abstract
- Add to MetaCart
At the beginning of the course, we explore some basic database concepts and adopt terminology. We give an overview of the most important data models. First we give brief remarks on historical network and hierarchical data models, and then we continue to investigate entity-relationship and relational data model. Only most important facts about entityrelationship model, together with some examples will be covered. The relational data model will be presented in much more detail, but we concentrate on exploring possibilities for its practical usage. Important remarks about theoretical background of the relational model are covered later in the text. We continue with the most important constructions of the Structured Query Language. In the advanced level course, we concentrate on the theoretical background of the relational model, explore it in some detail, and explain implications these concepts make to the usage of the relational model in practice. Among other topics, we explore functional dependencies in detail. Next, we give some pointers on update anomalies and the need to introduce normal (canonical) forms to relational database theory. We describe normal forms from first to third, including the Boyce-Codd normal form that belongs somewhere between the third and the fourth. We also give pointers about other normal forms. At the end we introduce two algorithms for relational database normalization- decomposition and synthesis. 1.

