Inproceedings,

The jabberwocky programming environment for structured social computing

, , , and .
Proceedings of the 24th annual ACM symposium on User interface software and technology, page 53--64. New York, NY, USA, ACM, (2011)
DOI: 10.1145/2047196.2047203

Abstract

We present Jabberwocky, a social computing stack that consists of three components: a human and machine resource management system called Dormouse, a parallel programming framework for human and machine computation called ManReduce, and a high-level programming language on top of ManReduce called Dog. Dormouse is designed to enable cross-platform programming languages for social computation, so, for example, programs written for Mechanical Turk can also run on other crowdsourcing platforms. Dormouse also enables a programmer to easily combine crowdsourcing platforms or create new ones. Further, machines and people are both first-class citizens in Dormouse, allowing for natural parallelization and control flows for a broad range of data-intensive applications. And finally and importantly, Dormouse includes notions of real identity, heterogeneity, and social structure. We show that the unique properties of Dormouse enable elegant programming models for complex and useful problems, and we propose two such frameworks. ManReduce is a framework for combining human and machine computation into an intuitive parallel data flow that goes beyond existing frameworks in several important ways, such as enabling functions on arbitrary communication graphs between human and machine clusters. And Dog is a high-level procedural language written on top of ManReduce that focuses on expressivity and reuse. We explore two applications written in Dog: bootstrapping product recommendations without purchase data, and expert labeling of medical images.

Tags

Users

  • @jaeschke
  • @dblp

Comments and Reviewsshow / hide

  • @jaeschke
    @jaeschke 12 years ago
    The paper describes the human computing programming environment "Jabberwocky" which consists of three parts with an increasing level of abstraction: 1) Dormouse, the backend which provides low-level functionality and manages the tasks, 2) ManReduce, which allows to split tasks into sub-tasks, distribute them over the workers, and merge the results using the MapReduce paradigm [[bibtex/c853fc61c156362ffecdf9302fe7c33f]]. 3) Dog, a high-level abstraction that provides an SQL-like syntax to describe the people that shall perform certain tasks, e.g., "PEOPLE FROM facebook WHERE university = 'mit' AND degree = 'computer science'" and libraries for different pre-defined tasks (e.g., Label, Histogram). In particular the "Dog" part is interesting, since its high-level constructs allow developers to write expressive programs. Some examples are demonstrated in the paper, e.g., code to compare and rate deals offered by GroupOn. Finally, the system includes a "debug" mode where scripts can be (re-)run without involving real Turkers.
Please log in to take part in the discussion (add own reviews or comments).