Espalier

Research project by Matt McCutchen, Shachar Itzhaky, Daniel Jackson, and Willow Jarvis (espalier@mit.edu) of the Software Design Group, with help from various others

Espalier (formerly Object Spreadsheets) is a new computational paradigm that combines the usability advantages of spreadsheets with SQL-like expressive power, providing a way to build a wide class of interactive applications more easily than with existing tools.

Shortcuts: paper, demo server, source repository, all materials, UROP/MEng projects

Introduction

Nearly every organization is responsible for processes that involve collection and manipulation of structured data subject to certain rules; in CSAIL and EECS alone, examples range from a milk pool that tracks whose turn it is to buy milk next to the graduate admissions process. The Espalier tool can be used to build data-centric applications that support these processes by letting users view and update data subject to the applicable constraints. Espalier seeks to provide an integrated visual environment to construct the schema, data, and logic that is natural enough to appeal to end-user developers yet general enough to conveniently express arbitrary logic. It is the first spreadsheet-based tool to support editing of hierarchical structured data (important in many applications) and a formula language with SQL-like expressive power.

There is a long history of tools for building data-centric applications (HyperCard, FileMaker, App2You, QuickBase, Zoho, Airtable, ...), but to date they have seen limited adoption; we suspect this is because none has achieved a compelling enough combination of naturalness and generality. Instead, many organizations continue to use general-purpose application frameworks such as Rails and Meteor (which demand a depth of technical understanding disproportionate to the problem) or to cobble together tools such as email, spreadsheets and online forms that are easy to use but cannot fully express the application logic (leaving manual work and crude security controls). With Espalier, we hope to offer developers the best of both worlds for low- to medium-complexity data-centric applications.

Status

As of July 2018, our prototype tool supports all basic spreadsheet functionality, plus updatable views and application-specific action macros, which support our approach to developing application logic. It includes both (1) the "new" spreadsheet UI, which lets developers customize the data layout in two dimensions, and (2) the "old" spreadsheet UI, which uses the standard nested table layout. The new UI is rough at this point and is the focus of current work, while the old UI is relatively mature and is in maintenance mode. Our newest approach to building applications is available on the "public-demo-server" branch of the source repository (the required functionality is not yet merged to "master") and uses styled spreadsheets built in the new UI for both the master data set and the application UI. We have one example application demonstrating this approach: a grocery store that lets users browse items and add them to a cart. Since we have only this one example (so far) of the new approach, we are continuing to maintain an older set of example applications built using the old UI and the Mavo templating engine for the application UI. Many features to improve the usability of the tool have yet to be built.

We're in the process of renaming the project from Object Spreadsheets to Espalier, so you'll still see the Object Spreadsheets name in some places.  The name Espalier refers to a method of growing trees in specific shapes, which is a metaphor for how our new UI displays a hierarchical data set in a user-defined layout.

We would welcome your feedback on this work, and we'll provide support for the prototype subject to our research priorities; in either case, please email us.

We're recruiting UROP and MEng students to work on projects related to Espalier.

Available materials

Acknowledgments

This project was supported by a grant from Wistron Corporation as part of a collaboration between Wistron and MIT's Computer Science and Artificial Intelligence Laboratory. This project also received partial support from the National Science Foundation under Grant No. CCF-1438982, and Matt McCutchen's work is funded in part by an NSF Graduate Research Fellowship.