Results

**1 - 7**of**7**### EFFICIENT INTEGRITY CHECKING FOR ESSENTIAL MOF + OCL IN SOFTWARE REPOSITORIES

"... Integrity checking is an instance of the model-checking problem, i.e. determining whether a concrete world satisfies predicates. In turn, query evaluation is an area thoroughly studied in the academic literature. We follow the engineering approach of coherently combining existing scientific knowledg ..."

Abstract
- Add to MetaCart

Integrity checking is an instance of the model-checking problem, i.e. determining whether a concrete world satisfies predicates. In turn, query evaluation is an area thoroughly studied in the academic literature. We follow the engineering approach of coherently combining existing scientific knowledge to solve an industrial problem. Our work falls just short of building a concrete product based on the technology choices made (because that’s a task for industry). Rather, we disclose the detailed reasoning behind our approach (which industry refrains from doing). The structure of this article is as follows. Sec. 2 provides context on the artifacts subject to integrity checking in MDSE repositories, followed by a review in Sec. 3 of the strategies for integrity checking available to repository designers. Sec. 4 covers the often overlooked interplay between expressiveness of the constraint language and runtime cost of integrity checking. Sec. 5 presents a technology choice that balances these conflicting requirements. A review of the difficulties associated to checking computationallycomplete OCL can be found in Sec. 6, followed by the translation rules into the chosen calculus (Sec. 7) and a sample of the optimization techniques thus enabled (Sec. 8). Related work (Sec. 9) includes pointers to the main-memory case and to recent progress on integrity checking in the SQL/relational setting. Sec. 10 concludes. Familiarity with metamodeling techniques and object-oriented databases is assumed. Knowledge about OCL is helpful but not required. 2 ROLE OF ESSENTIAL MOF AND OCL IN MODEL-DRIVEN SOFT-

### Scientific Workflows: More e-Science . . .

"... We view scientific workflows as the domain scientist’s way to harness cyberinfrastructure for e-Science. Domain scientists are often interested in “end-to-end” frameworks which include data acquisition, transformation, analysis, visualization, and other steps. While there is no lack of technologies ..."

Abstract
- Add to MetaCart

We view scientific workflows as the domain scientist’s way to harness cyberinfrastructure for e-Science. Domain scientists are often interested in “end-to-end” frameworks which include data acquisition, transformation, analysis, visualization, and other steps. While there is no lack of technologies and standards to choose from, a simple, unified framework combining data modeling and processoriented modeling and design of scientific workflows has yet to emerge. Towards this end, we introduce a number of concepts such as models of computation and provenance, actor-oriented modeling, adapters, hybrid types, and higher-order components, and then outline a particular composition of some of these concepts, yielding a promising new synthesis for describing scientific workflows, i.e., Collection-Oriented Modeling and Design (COMAD).

### Relational Optimizations for the Monad Comprehension Calculus

"... The Monad Comprehension Calculus (MCC) is a highly expressive query language equal in expressive power to a subset of the Haskell programming language. This expressivity allows the MCC to subsume a variety of user-facing query languages, from nested relational algebra to OQL. The MCC possess a numbe ..."

Abstract
- Add to MetaCart

The Monad Comprehension Calculus (MCC) is a highly expressive query language equal in expressive power to a subset of the Haskell programming language. This expressivity allows the MCC to subsume a variety of user-facing query languages, from nested relational algebra to OQL. The MCC possess a number of highlydesirable properties, including a normal form for queries that eliminates treatment of collection types. Within the last decade sophisticated SQL/OQL optimization techniques based on semantic optimization have been applied to the MCC’s SQL/OQL fragment. In this paper we begin to apply relational optimizations to the entirety of the MCC. We do not approach the level of sophistication possible in the SQL/OQL fragment, and our optimizations are simple rewrites based on intra-relation functional dependencies. Still, by exploiting the so-called algebra of programming, the fledgling point-free functional dependency theory, and a translation from a subset of the MCC to nested relational algebra, we are able to reason about relational optimizations in the broader context of the MCC in an equational, compositional, and easily mechanizable way. We demonstrate how to optimize functional programs by exploiting knowledge about their functional dependencies, and how to optimize relational queries translated into MCC based on the underlying, rich algebraic structure of the MCC. 1.

### Query languages

"... This paper is about a Glasgow Haskell Compiler (GHC) extension that generalises Haskell’s list comprehension notation to monads. The monad comprehension notation implemented by the extension supports generator and filter clauses, as was the case in the Haskell 1.4 standard. In addition, the extensio ..."

Abstract
- Add to MetaCart

This paper is about a Glasgow Haskell Compiler (GHC) extension that generalises Haskell’s list comprehension notation to monads. The monad comprehension notation implemented by the extension supports generator and filter clauses, as was the case in the Haskell 1.4 standard. In addition, the extension generalises the recently proposed parallel and SQL-like list comprehension notations to monads. The aforementioned generalisations are formally defined in this paper. The extension will be available in GHC 7.2. This paper gives several instructive examples that we hope will facilitate wide adoption of the extension by the Haskell community. We also argue why the do notation is not always a good fit for monadic libraries and embedded domain-specific languages, especially for those that are based on collection monads. Should the question of how to integrate the extension into the Haskell standard arise, the paper proposes a solution to the problem that led to the removal of the monad comprehension notation from the language standard.

### unknown title

, 2011

"... Monad comprehensions are by now a mainstay of functional programming languages. In this paper we develop a theory of semantic optimization for monad comprehensions that goes beyond rewriting using the monad laws. A monad-with-zero comprehension do x ← X; y ← Y; if P (x, y) then return F (x, y) else ..."

Abstract
- Add to MetaCart

Monad comprehensions are by now a mainstay of functional programming languages. In this paper we develop a theory of semantic optimization for monad comprehensions that goes beyond rewriting using the monad laws. A monad-with-zero comprehension do x ← X; y ← Y; if P (x, y) then return F (x, y) else zero can be rewritten, so as to minimize the number of ← bindings, using constraints that are known to hold of X and Y. The soundness of this technique varies from monad to monad, and we characterize its soundness for monads expressible in functional programming languages by generalizing classical results from relational database theory. This technique allows the optimization of a wide class of languages, ranging from large-scale data-parallel languages such as DryadLINQ and Data Parallel Haskell to probabilistic languages such as IBAL and functional-logical languages like Curry.

### Collection Processing with Constraints, Monads, and Folds

"... We propose an intermediate form based on monad-algebra comprehensions (to represent queries), folds (to represent computation), and setoids over polynomial datatypes (to represent data), suitable for use in collection processing. Such an intermediate form captures, in a uniform way, large fragments ..."

Abstract
- Add to MetaCart

We propose an intermediate form based on monad-algebra comprehensions (to represent queries), folds (to represent computation), and setoids over polynomial datatypes (to represent data), suitable for use in collection processing. Such an intermediate form captures, in a uniform way, large fragments of many recent largescale collection processing languages such as MapReduce, PIG, DryadLINQ, and Data Parallel Haskell, and admits optimization techniques from both programming language theory and relational database theory. We show how to solve four key problems inherent in the naive approach by drawing together recent work from both communities. First, we show how fold fusion can be extended, in an arguably complete way, to exploit the monadic structure of queries. Second, we show how monad comprehensions can be extended to monad-algebra comprehensions, so as to express aggregation and thereby enable comprehension-based optimizations for a wide class of queries. Third, we show how to embed a particular syntactic class of constraints called embedded dependencies into our intermediate form and show how such constraints can be used, for example, to minimize the number of bind operations in a monad comprehension- a process traditionally known as semantic optimization. Finally, we show how to emit proof obligations from our language, so as to ensure that each program is sound with respect to required axioms (such as the monad laws) as well as user-provided invariants (such as ensuring all sets are represented by lists without duplicates). 1.

### Functional Query Languages with Categorical Types A dissertation

, 2013

"... We study three category-theoretic types in the context of functional query languages – typed λ-calculi extended with additional operations for bulk data processing. The types we study are • The type of propositions. By adding this type to the simply typed λ-calculus, we obtain higher-order logic. We ..."

Abstract
- Add to MetaCart

We study three category-theoretic types in the context of functional query languages – typed λ-calculi extended with additional operations for bulk data processing. The types we study are • The type of propositions. By adding this type to the simply typed λ-calculus, we obtain higher-order logic. We prove that every hereditarily domain-independent higher-order logic program can be translated into the nested relational algebra, thereby giving a higher-order generalization of Codd’s theorem. • The dependent identity type. By adding identity types to the nested relational calculus we obtain a language where embedded dependencies are first-class objects that can be manipulated by the programmer and used for optimization. We prove that the chase re-writing procedure is sound for this language. • The type of finitely presented categories. In the functorial data model, database schemas are finitely presented categories, and every database instance over a schema C is a functor from C to the category of sets. We define FQL, the first query