MATISSE: OPL Redesigned as an Object Query Language1
Keywords: main

Next: Introduction

# MATISSE:
OPL Redesigned as an Object Query Language1

Hassan Aït-Kaci
ILOG, S.A.
B.P. 85 - 9, rue de Verdun
94253 Gentilly, France
`hak@ilog.fr`

### Abstract:

In this document, I undertake the design of the declarative part of an OPL-like language (here, provisionally called ``MATISSE'') using formal concepts from the state of the art in object-oriented database query languages. I start with an analysis of the constructs (data structures and operations) used by OPL for defining a model, arguing that the declarative part of OPL may be viewed essentially as a query language over complex data structures, including collections (such as lists, arrays, sets, and bags). In order to explicate the precise meaning and optimized implementation of expressions involving these constructs (such as arbitrarily nested aggregates, joins, and user-defined functions), I proceed to review prominent proposals from recent research in object query language design purporting to embody formally and efficiently queries over objects and collections thereof, and discuss their merits and shortcomings for the specific needs of a language such as MATISSE. I then adapt some of these ideas to propose a core algebra and calculus with the goal of capturing all the declarative expressivity of OPL without any of its current limitations nor quirks of uniformity, trying to provide the most general, yet efficient, language conveniences.

- Introduction
- A brief history of query languages
- OPL as an object query language
- A review of object query language formalisms
  - Monoid homomorphisms and comprehensions
    - Monoid homomorphisms
    - Monoid comprehensions
    - The monoid comprehension calculus
  - Multidimensional arrays as functions
- Discussion
  - What types for MATISSE?
    - Primitive types
    - Object types
    - Collections types
  - Array types
    - First-class indexing
    - Indexing types
  - Functional abstraction
- Designing MATISSE
  - Algebra
  - Semantics
  - Implementation
- Appendix
- Technical Background
  - The Relational Model
  - Monoids
  - The Typed Polymorphic -Calculus
- A Transportation Model in OPL
- Bibliography
- About this document ...

Next: Introduction