AutoMan: Human-Computation Runtime v0.1 --------------------------------------- This is a preliminary release of AutoMan. Please report any bugs you may find to the project maintainer, Dan Barowy . Presently, we have only tested AutoMan with Scala programs. In principle, Java can use AutoMan as-is, but adding official support is currently on our TODO list. License ------- AutoMan is licensed under the GPLv2, Copyright (C) 2011 The University of Massachusetts, Amherst. Using AutoMan in Your Project ----------------------------- To use AutoMan, you can either use the compiled automan.jar file provided by us or you can build the project yourself. The compiled JAR file includes the Mechanical Turk SDK and all of the many libraries required to make it work. This JAR also includes the Scala 2.9.0.1 runtime since AutoMan itself depends on it. In your source file, include the AutoMan runtime like so (Scala syntax): import edu.umass.cs.automan.core._ And then import the Mechanical Turk adapter: import edu.umass.cs.automan.MTurk._ After that, initialize the AutoMan runtime with an MTurk config and define your tasks. You may then call those tasks like regular functions. Note that these functions return immediately, as calling them simply builds the execution plan; you must later call the .run() method on the AutoMan runtime object. We plan to streamline this approach in a future release. In any event, you currently need to check whether the data is available by reading the .state field on the object returned by your function. Please see the collection of sample programs in the src directory. The "real_programs" folder contains the programs we used in the technical report (see below). Using AutoMan with a Different Crowdsourcing Backend ---------------------------------------------------- We currently only support Amazon's Mechanical Turk. However, AutoMan was designed to accommodate arbitrary backends. If you are interested in seeing your backend supported, please contact Dan Barowy. However, we are happy to work with you to ensure that you have all of the information you need to write your adapter library. We will also fix any compatibility problems with the AutoMan runtime that you might encounter along the way. Memoization ----------- AutoMan saves all intermediate human-computed results. In the event of a program exception or unexpected termination, the programmer may restart AutoMan and it will reuse any previously-obtained results. If you want to discard these intermediate results, delete the AutomanMemoDB file. The format of this database is Apache Derby 10.8. More Information ---------------- More detailed information is available in our technical report: UMass CS TR 2011-44: AutoMan: A Platform for Integrating Human-Based and Digital Computation Daniel W. Barowy, Emery D. Berger and Andrew McGregor http://www.cs.umass.edu/~emery/pubs/AutoMan-UMass-CS-TR2011-44.pdf Please contact us if you plan to cite this work as there may be a more up-to-date citation. Contact information: Emery Berger, emery@cs.umass.edu Dan Barowy, dbarowy@cs.umass.edu