Object Spreadsheets

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

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

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 Object Spreadsheets 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. Object Spreadsheets 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 Object Spreadsheets, we hope to offer developers the best of both worlds for low- to medium-complexity data-centric applications.

As of April 2017, our prototype tool supports all basic spreadsheet functionality, plus updatable views and application-specific action macros, which support our approach to developing application logic. Custom application UIs can be built using Mavo templates. We've built a set of example applications to demonstrate the applicability of our approach. Many features to improve the usability of the tool have yet to be built. We're currently working on making the spreadsheet more flexible so developers can start entering their data without having to figure out the proper schema at the beginning.

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 Object Spreadsheets.  (Check back in spring 2018)

Available materials

  • Our Onward 2016 paper, which motivates and describes the basic structured spreadsheet. (We hope to release more information about the recently added application-building features soon.)
  • Matt's master's thesis: the main attraction here is a rigorous specification of the data model and computation semantics.
  • The prototype implementation, which includes a start page with demos, basic usage instructions, and links to reference materials:
    • Public demo server (updated 2017-03-20). Notice: This site has no access control, so please use discretion in what data you enter. Also, we may delete your data at any time. If the site is broken or contains inappropriate content, please email us.
    • Source repository.
  • A video demonstrating how to build a small example application (9 minutes), which is also linked from the start page of the prototype.

Acknowledgments

This project is 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.