Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running MTurk HITs on external website

I am implementing a website on which the recruited MTurk workers will perform tasks. I plan to recruit workers using MTurk tasks, using which I will redirect them to an external website for actual work. I have the following questions relating to this plan.

  1. Is there any foreseeable problems with this approach of running HITs? If so, how can we mitigate them?

  2. how should I implement the authentication procedure on my external site? For example, how can I make sure the people who come to the website to perform a specific task are indeed the same group of people recruited earlier for this particular task on MTurk?

  3. when the workers finish the task, how should I integrate the payment procedure with MTurk based on their performance? For example, say worker is owed $3 after finishing the task on my external site, is it possible for me to tell MTurk to pay him/her this amount programmatically?

The external site will be built using Python, if such detail matters.

Any suggestions and comments based on your experiences and insights in using MTurk would be much appreciated!

like image 669
MLister Avatar asked May 26 '12 19:05

MLister


People also ask

Are MTurk scripts allowed?

We are generally OK with you using scripts and automation tools to help you search and preview Human Intelligence Tasks ("HITs") more efficiently on the MTurk website, as long as those scripts and automation tools (1) do not serve as a substitute for your human judgment to complete work, (2) do not extract and store ...

Can MTurk be done on a phone?

This makes it even easier for Workers to use the new Worker website to complete work on MTurk. The new Worker website is mobile friendly. This means that Workers can now search, browse, preview, accept, and submit HITs using mobile devices as well as their desktop personal computers.

How do I accept a hit on MTurk?

Click on the "Accept & Work" button for the HIT you want to work on. Complete the HIT according to the Requester instructions, and click the "Submit HIT" button. After you submit your results for the HIT, another similar HIT will be presented for you to accept.


1 Answers

I am thinking through this for a similar project of mine. I've experimented as a worker myself. Here is my plan, I hope it is of use to you. (I have not implemented it yet. It is based on an academic HIT I participated in as a worker.) Here goes:

A. Create a template that has language something like:

1. Please open this web site in a new browser window:    http://your-url.xyz.blah/tasks/${token} 2. Read and follow the instructions there. 3. After completing the task, you will receive a confirmation code. Paste     it here: [________] 

B. Create some random tokens for your Mechnical Turk data file:

1A1B43B327015141 09F49F2D47823E0C B5C49A18B3DB56F4 4E93BB63B0938728 CCE7FA60BFEB3198 ... 

(Generate these tokens from your app; it needs to cross-reference them.)

C. Your app extracts the token from URL, looks up the task, and does whatever it needs to do. I personally don't worry about people stumbling onto a URL, since it is a one-time use token.

D. After a user completes the task on the external web site, the external app gives a confirmation code. The confirmation code should be random and opaque. Only your application will know if any particular code corresponds to a correct or incorrect answer. In fact, if you want, the correctness may not even be determined in real time -- it could be the result of an aggregation and/or comparison across multiple submissions.

E. Write some code to interact programmatically. Take the token and confirmation code supplied from the MTurk result and make sure they match with your external app. If they don't match, reject the HIT. If they match, check the correctness in your external app and approve or reject. You might consider a bonus pay structure.

So, to answer your particular questions:

  1. I don't anticipate problems with the approach I described. That said, Mechanical Turk is both an art and a science. Perhaps more art. Writing good questions and paying Turkers appropriately is something you have to figure out with a combination of common sense, market research, and experimentation.

  2. See (C) above. A token is designed to only be used once. Use long enough tokens and the probability of collision becomes very low.

  3. See (E) above. The Mechanical Turk Developer Guide is a good place to start.

Please share your results back. Or have the Turkers send StackOverflow hundreds of postcards. :)

Notes:

  • I'm currently exploring qualification tests. I suspect they can be very useful.

  • I want to get a Turker's Worker ID in my external application, but I haven't figured that part out yet. I'm reading up on it; for example: Getting workerId by assignmentId

  • I am thinking about using the ExternalQuestion feature from the API: "... you can host the questions on your own web site using an "external" question. ... A HIT with an external question displays a web page from your web site in a frame in the Worker's web browser. Your web page displays a form for the Worker to fill out and submit. The Worker submits results using your form, and your form submits the results back to Mechanical Turk. Using your web site to display the form gives your web site control over how the question appears and how answers are collected."

like image 98
David J. Avatar answered Oct 01 '22 13:10

David J.