List of Programming Languages and Tools for Human Computation and Crowdsourcing Applications
This page shows a list of programming languages and tools for human computation and crowdsourcing applictions.
This may not be a complete list, but we try to make it to cover as many languages as possible, including research projects and available tools.
A. Programming Languages
The set of languages can be divided into two categories: declarative languages and procedural languages. The declarative languages can be further divided into rule-based (logical) languages and SQL-like languages.
Model-based Languages
- CrowdLang: a model-based programming language under the development by University of Zurich. It provides a set operators that implement common patterns of collective intelligence. The basic operators include divide-and-conquer, aggrregate, multiplay, merge, router, and reduce.
Rule-based Declarative Languages
- CyLog: an executable rule-based language for data-centric human computations and crowdsourced processing, developed in the FusionCOMP project of University of Tsukuba.
In CyLog, both of human/machine computations are described with the same set of programming constructs.
Each human is modeled as a rational data source, which provides data according to expected rewards.
CyLog provides game aggregations to compute values based on the behaviors of humans or the crowd.
- Deco: A declarative data model for crowdsourcing applications, developed in sCOOP - the Stanford--Santa-Cruz Project for Cooperative Computing with Algorithms, Data and People. The data model is discussed in a Datalog-like notation. They introduce the fetch and resolution rules to obtain and resolve the external data.
SQL-like Declarative Languages
- CrowdDB: A research project concucted by UC Berkeley and ETH. It provides an SQL-compatible language to handle queries that cannot be answered by machines only. They try to achieve the data independence and query optimitzation in the presence of the crowd processing.
- Qurk: This is a DB system developed at MIT.
Qurk helps users build crowd-powered data processing workflows using a SQL-like language.
In Qurk, user-defined functions are incorporated into SQL queries to interact with the crowd.
In contrast, CyLog programs employ Datalog-style rules and an event-driven semantics.
B. Toolkits/Frameworks
- CrowdForge: A MapReduce-like framework/toolkit, being developed by CMU, to implement complex crowdsourcing applications.
CrowdForge automatically generates HITs for Amazon's MTurk based on the partition, map, and reduce abstractions.
- TurKit: A Java/JavaScript API for running iterative tasks on Mechanical Turk. With TurKit, programmers write programs in a straightforward imperative manner, but can safely re-execute programs without re-running costly side effects on Mechanical Turk. CyLog provides a data-centric declarative abstraction, focusing on the fusion of human/machine computations.
Last updated Nov. 2011.
Maintained by Atsuyuki Morishima (amorishima at acm.org).