HITs

Creating HITs

A Human Intelligence Task, or HIT, is a question your application asks, and a Worker answers. Your application submits a HIT using the CreateHIT operation.

A HIT includes:

  • A title

  • A description

  • Keywords, used to help Workers find the HITs with a search

  • The amount of the reward

  • An amount of time in which the Worker must complete the HIT

  • An amount of time after which the HIT will no longer be available to Workers

  • The number of Workers needed to submit results for the HIT before the HIT is considered complete

  • Qualification requirements

  • All of the information required to answer the question

Once created, the HIT becomes browsable and searchable on the Mechanical Turk web site, and can be accepted and completed by a Worker whose Qualifications match the HIT's Qualification requirements.

The Title, Description, and Keywords

A HIT has a Title, a Description, and Keywords that generally describe the HIT. These values show at a glance what kind of work is involved in the HIT.

The Mechanical Turk web site includes a search engine for performing keyword searches for HITs. Search terms can match against a HIT's title, description or keywords.

The Reward

A HIT can have a Reward, an amount of money paid to the Worker once you approve the results the Worker submitted. This amount is transferred from your account to the Worker's account automatically once the results are approved.

[Tip]Tip

A HIT can have a reward of zero dollars, if you like. Remember that a minimum HIT listing fee will still apply, even if the reward is zero.

Deadlines and Expirations

Once a Worker has chosen a HIT to work on, Mechanical Turk starts a timer to keep track of how long the Worker has been holding on to the HIT. If the amount of time exceeds the AssignmentDurationInSeconds of the HIT, Mechanical Turk declares that the Worker has "abandoned" the HIT, cancels the Worker's assignment, and makes the HIT available for other Workers to accept. When a new Worker chooses the HIT, the timer starts over.

Mechanical Turk also keeps track of how long the HIT has been in the system, from the moment the HIT is created. If the HIT's lifetime exceeds the LifetimeInSeconds, the HIT is declared completed, whether or not all of the requested answers have been submitted by Workers. The HIT is removed from the Mechanical Turk web site, and is no longer available for Workers to find and complete.

For more information about the life cycle of a HIT, see Assignments later in this chapter.

Multiple Workers

You can request that more than one Worker ought to complete a HIT by specifying a MaxAssignments property for the HIT. For more information, see Assignments later in this chapter.

Qualification Requirements

You can specify that only Workers that meet certain requirements are allowed to complete a HIT. Each QualificationRequirement describes an expression that a score or metric about the Worker must match for the Worker to be considered "qualified" to complete the HIT. For more information, see Qualifications later in this chapter.

Questions and Answers

The Question field of a HIT describes what is being asked of the Worker. It includes any information required to answer the question, such as text or images, as well as a description of the range possible answers.

[Tip]Tip

The Mechanical Turk Service passes questions and answers between your Requester application and Workers. Workers read questions and provide answers using the Mechanical Turk web site. The format of this data is device-independent, so future Worker interfaces to Mechanical Turk can be built on platforms with varying capabilities.

Be aware that the Worker interface is not guaranteed to display your questions in a particular way, nor is it guaranteed to return answers within the ranges you specify in the question form. Mechanical Turk only ensures that the question and answer data conform to the appropriate schemas.

You can include several different kinds of data in a HIT question:

  • Simple text elements, such as paragraphs, headings, and bulleted lists

  • Blocks of formatted content that contain XHTML markup, such as for tables, formatted text (bold, italic), and other XHTML features

  • Links to images, audio and video, which are typically displayed embedded in the HIT display

  • Links to Java applets and Flash movies (which can be interactive), displayed embedded in the HIT display

The question form specification may include multiple fields, or "questions." A question can have the Worker select zero, one or more options from a list (true/false, multiple choice), or it can have the Worker type in text or a number. A field can also request that the Worker upload a file.

The question form specification may suggest the style of a field, guiding how a question may appear to the Worker. Multiple choice questions may appear as radio buttons, checkboxes, or a dropdown list, among others. The suggested style is not guaranteed, since Mechanical Turk may adjust the appearance to fit the device the Worker is using to see the question.

The specification may also suggest ranges of possible answers for the question. It is up to the device presenting the question to the Worker to validate the Worker's answers, so the results in the assignment are not guaranteed to meet these criteria. Your application should always validate the answers it receives.

[Tip]Tip

For more information about the question and answer specification format, see QuestionForm.

Asking Workers to Upload Files

One type of HIT question can prompt the Worker to upload a file. You specify minimum and maximum sizes for the file, and Amazon Mechanical Turk will ensure that the Worker uploads a file within the specified size range.

The results for the HIT will include the actual size of the file the Worker uploaded. When your application is ready to retrieve the file, it calls the GetFileUploadURL operation with the assignment ID and the question identifier. The operation returns a temporary URL that your application can use to download the file. The URL will only work for 60 seconds after GetFileUploadURL is called.

[Tip]Tip

The 60-second expiration of the temporary URL returned by the GetFileUploadURL operation ensures that only your application can access the data, while allowing your application to retrieve the file using a direct HTTP connection to the URL. The time limit only applies to initiating the download; the download itself will take as long as is necessary to retrieve the complete file. If you need to initiate the download after the URL has expired, you can call GetFileUploadURL at any time to get a new temporary URL.

Using Your Web Site To Host Questions

If you need more control over the display or logic of how HITs are presented to users than is provided by the Amazon Mechanical Turk content types, you can create a HIT whose question is hosted on your own web site.

An "external question" HIT appears to the Worker as a HIT whose question form is a web browser frame. The Worker's browser loads the contents of the frame directly from a URL you provide when you create the HIT. This gives you complete control over what appears in the frame, and how the Worker interacts with the question.

The Worker submits results for your HIT using the form on your web site. Your form then submits this data back to Amazon Mechanical Turk, where it is stored with the HIT results. Mechanical Turk then advances the user's browser to another HIT. The result is similar to submitting any other kind of HIT.

[Note]Note

Setting up a HIT with an external question requires a web server capable of functioning under very high load. Similar to images, Java applets and Flash applications, failure to serve files may prevent the Worker from seeing the data required to complete the task. However, unlike images and applets, if the web server fails to function for an external HIT, the Worker may not be able to submit results to Amazon Mechanical Turk at all.

An external HIT can be as simple as a web form in an HTML file. As such, the web server hosting the external HIT content does not need sophisticated server functionality. For example, you can create a sophisticated web form for an external HIT using HTML and JavaScript, then host the HTML file at Amazon S3.

For information about created HITs with external questions, see ExternalQuestion.

The Requester Annotation

Your application can include a RequesterAnnotation for each HIT, a value visible only to you. You can use this value to associate the HIT data with an identifier internal to your application. The Requester annotation is returned with other HIT data, such as from a call to the GetHIT operation.