Java 类com.amazonaws.mturk.addon.HITQuestion 实例源码

项目:java-aws-mturk    文件:RequesterService.java   
/**
 * Creates a preview of a HIT in a file.
 * 
 * @param previewFileName  the file in which the HIT is copied
 * @param input            the input needed for the HIT
 * @param props            the properties of the HIT 
 * @param question         the question asked in the HIT
 * @throws ServiceException
 */
public void previewHIT(String previewFileName, HITDataInput input, HITProperties props, 
    HITQuestion question) throws ServiceException {
  try {
    String previewString = previewHIT(input, props, question);

    if (previewString != null) {
      FileUtil fts = new FileUtil(previewFileName);
      fts.saveString(previewString, false); // overwrite
    }
  }
  catch (Exception e)
  {
    throw new ServiceException("Error generating preview file " + previewFileName, e);
  }
}
项目:lense    文件:MTurkSystem.java   
/**
 * This makes a post to hire workers
 */
public String hireWorkers(int numWorkersToHire) {
    try {
        String title = "30 minutes of real-time decisions, BONUS at ~$12 / hr if busy";
        String description = "Receive $3 for just sitting here for 30 mins, and an extra $0.01 for every 5 labels.";
        String question = new HITQuestion("lense/src/resources/external.question").getQuestion();
        double reward = 3.00;
        HIT hit = mturkService.createHIT(title, description, reward, question, numWorkersToHire);

        String url = mturkService.getWebsiteURL()+"/mturk/preview?groupId="+hit.getHITTypeId();
        log.info("Created HIT: " + hit.getHITId());
        log.info("You can see it here: " + url);
        return url;
    } catch (Exception e) {
        e.printStackTrace();
        return "error";
    }
}
项目:mturksdk-java-code-maven    文件:RequesterService.java   
/**
 * Creates a preview of a HIT in a file.
 * 
 * @param previewFileName  the file in which the HIT is copied
 * @param input            the input needed for the HIT
 * @param props            the properties of the HIT 
 * @param question         the question asked in the HIT
 * @throws ServiceException
 */
public void previewHIT(String previewFileName, HITDataInput input, HITProperties props, 
    HITQuestion question) throws ServiceException {
  try {
    String previewString = previewHIT(input, props, question);

    if (previewString != null) {
      FileUtil fts = new FileUtil(previewFileName);
      fts.saveString(previewString, false); // overwrite
    }
  }
  catch (Exception e)
  {
    throw new ServiceException("Error generating preview file " + previewFileName, e);
  }
}
项目:java-aws-mturk    文件:RequesterService.java   
/**
 * Creates multiple HITs. 
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question asked in the HITs
 * @param numHITToLoad   the number of HITs to create
 * @return an array of HIT objects
 * @throws Exception
 * @deprecated
 */  
public HIT[] createHITs(HITDataReader input, HITProperties props, HITQuestion question, int numHITToLoad) {
  String prefix = input.getFileName();
  if ( prefix == null || prefix.length() == 0 ) {
    prefix = "input";
  }

  HITDataOutput success = null;
  HITDataOutput failure = null;
  try {
    success = new HITDataWriter(prefix + ".success");
    failure = new HITDataWriter(prefix + ".failure");
    return createHITs(input,props,question,numHITToLoad,success,failure);
  }
  catch (Exception e) {
    log.error("Error loading HITs", e);
  }
  finally {
      if (success != null) {
          success.close();
      }
      if (failure != null) {
          failure.close();
      }
  }
  return null;
}
项目:java-aws-mturk    文件:TestRequesterService.java   
public void testValidateInvalidExternalQuestion() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultInvalidExternalQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when previewing HIT with invalid external question." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:java-aws-mturk    文件:TestRequesterService.java   
public void testCreateFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultFormattedContentQuestionFileName);

  HIT[] hits = service.createHITs(defaultHITInput, defaultHITProperties, 
                                  htmlQuestion, null, null);

  assertNotNull(hits);
  assertTrue("should have succeeded with more than 1, but was " + hits.length, hits.length > 1);
  assertNotNull(hits[1]);
  assertNotNull(hits[1].getHITId());
}
项目:java-aws-mturk    文件:TestRequesterService.java   
public void testCreateInvalidFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultInvalidFormattedContentQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when creating HIT with invalid formatted content." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:java-aws-mturk    文件:TestRequesterService.java   
public void testCreateScriptFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultScriptFormattedContentQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when creating HIT with script in formatted content." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:mturk-screening-presurvey    文件:FullSurvey.java   
public void createSurvey() {
  try {

    QualificationRequirement[] requirements = null;
    if(haveQualifications) {
      requirements = new QualificationRequirement[4];
      requirements[0] = new QualificationRequirement(RequesterService.LOCALE_QUALIFICATION_TYPE_ID, Comparator.EqualTo, null, new Locale("US"), invisible); //USA! USA!
      requirements[1] = new QualificationRequirement(getQualificationTypeId(), Comparator.EqualTo, 1, null, invisible); //Completed the screener
      requirements[2] = new QualificationRequirement(RequesterService.APPROVAL_RATE_QUALIFICATION_TYPE_ID, Comparator.GreaterThanOrEqualTo, 95, null, invisible); //>=95% approval
      requirements[3] = new QualificationRequirement("00000000000000000040", Comparator.GreaterThanOrEqualTo, 1000, null, invisible); //>=1000 HITs
    }

    String[] responseGroup = new String[]{"Minimal"};

    HITQuestion question = new HITQuestion("fullsurveyquestion.xml");

    SurveyParameters p = parameters;

    String hitType = service.registerHITType(p.autoApprovalDelay, p.assignmentDuration, p.reward, p.title, p.keywords, p.description, requirements);

    HIT hit = service.createHIT(hitType, p.title, p.description, p.keywords, question.getQuestion(), p.reward, p.assignmentDuration, p.autoApprovalDelay, p.lifetime, p.numAssignments, p.annotation, requirements, responseGroup);

    System.out.println("Created HIT: " + hit.getHITId());

    System.out.println("You may see your HIT with HITTypeId '" 
        + hit.getHITTypeId() + "' here: ");
    System.out.println(service.getWebsiteURL() 
        + "/mturk/preview?groupId=" + hit.getHITTypeId());

    PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("hitid.txt", append))); //Should hopefully append the hit id.
    writer.println(hit.getHITId() + " " + service.getWebsiteURL() + "/mturk/preview?groupId=" + hit.getHITTypeId());
    writer.close();

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:mturk-screening-presurvey    文件:ScreenerQuestion.java   
public void createScreener() {
  try {

    QualificationRequirement[] requirements = null;
    if(haveQualifications) {
      requirements = new QualificationRequirement[3];
      requirements[0] = new QualificationRequirement(RequesterService.APPROVAL_RATE_QUALIFICATION_TYPE_ID, Comparator.GreaterThanOrEqualTo, 95, null, invisible); //>=95% approval
      requirements[1] = new QualificationRequirement("00000000000000000040", Comparator.GreaterThanOrEqualTo, 1000, null, invisible); //>=1000 HITs
      requirements[2] = new QualificationRequirement(RequesterService.LOCALE_QUALIFICATION_TYPE_ID, Comparator.EqualTo, null, new Locale("US"), invisible); //USA! USA!
    }

    String[] responseGroup = new String[]{"Minimal"};

    HITQuestion question = new HITQuestion("screenerquestion.xml");

    String hitType = service.registerHITType(autoApprovalDelay, assignmentDuration, reward, title, keywords, description, requirements);

    HIT hit = service.createHIT(hitType, title, description, keywords, question.getQuestion(), reward, assignmentDuration, autoApprovalDelay, lifetime, numAssignments, annotation, requirements, responseGroup);

    System.out.println("Created HIT: " + hit.getHITId());

    System.out.println("You may see your HIT with HITTypeId '" 
        + hit.getHITTypeId() + "' here: ");
    System.out.println(service.getWebsiteURL() + "/mturk/preview?groupId=" + hit.getHITTypeId());

    PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("hitid.txt", append))); //Should hopefully append the hit id.
    writer.println(hit.getHITId() + " " + service.getWebsiteURL() + "/mturk/preview?groupId=" + hit.getHITTypeId());
    writer.close();

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:mturksdk-java-code-maven    文件:RequesterService.java   
/**
 * Creates multiple HITs. 
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question asked in the HITs
 * @param numHITToLoad   the number of HITs to create
 * @return an array of HIT objects
 * @throws Exception
 * @deprecated
 */  
public HIT[] createHITs(HITDataReader input, HITProperties props, HITQuestion question, int numHITToLoad) {
  String prefix = input.getFileName();
  if ( prefix == null || prefix.length() == 0 ) {
    prefix = "input";
  }

  HITDataOutput success = null;
  HITDataOutput failure = null;
  try {
    success = new HITDataWriter(prefix + ".success");
    failure = new HITDataWriter(prefix + ".failure");
    return createHITs(input,props,question,numHITToLoad,success,failure);
  }
  catch (Exception e) {
    log.error("Error loading HITs", e);
  }
  finally {
      if (success != null) {
          success.close();
      }
      if (failure != null) {
          failure.close();
      }
  }
  return null;
}
项目:mturksdk-java-code-maven    文件:TestRequesterService.java   
public void testValidateInvalidExternalQuestion() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultInvalidExternalQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when previewing HIT with invalid external question." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:mturksdk-java-code-maven    文件:TestRequesterService.java   
public void testCreateFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultFormattedContentQuestionFileName);

  HIT[] hits = service.createHITs(defaultHITInput, defaultHITProperties, 
                                  htmlQuestion, null, null);

  assertNotNull(hits);
  assertTrue("should have succeeded with more than 1, but was " + hits.length, hits.length > 1);
  assertNotNull(hits[1]);
  assertNotNull(hits[1].getHITId());
}
项目:mturksdk-java-code-maven    文件:TestRequesterService.java   
public void testCreateInvalidFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultInvalidFormattedContentQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when creating HIT with invalid formatted content." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:mturksdk-java-code-maven    文件:TestRequesterService.java   
public void testCreateScriptFormattedContentHIT() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultScriptFormattedContentQuestionFileName);

  try {
    service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);

    fail("Expected ValidationException when creating HIT with script in formatted content." );
  }
  catch (ValidationException e) {
    // Expected exception
  }
}
项目:java-aws-mturk    文件:RequesterService.java   
/**
 * Returns a preview of the HIT as HTML
 * 
 * @param input       the input needed for the HIT
 * @param props       the properties of the HIT 
 * @param question    the question asked in the HIT
 * @return an HTML preview of the HIT
 * @throws Exception
 */
public String previewHIT(HITDataInput input, HITProperties props, 
    HITQuestion question) throws Exception {   

  if (props == null || question == null)
    throw new IllegalArgumentException();

  String questionXML = null;

  if (input != null) {
    Map<String, String> inputMap = input.getRowAsMap(1);
    questionXML = question.getQuestion(inputMap);
  } else {
    questionXML = question.getQuestion();
  }

  // Validate question before preview
  QAPValidator.validate(questionXML);

  String questionPreview = XslTransformer.convertQAPtoHTML(questionXML);
  InputStream headerURL = this.getClass().getResourceAsStream("previewHITHeader.xml");
  InputStream footerURL = this.getClass().getResourceAsStream("previewHITFooter.xml");

  if (headerURL == null) {
    log.error("Error reading the preview header file.");
  }

  if (footerURL == null) {
    log.error("Error reading the preview footer file.");
  }

  BufferedReader headerReader = new BufferedReader(new InputStreamReader(headerURL));
  BufferedReader footerReader = new BufferedReader(new InputStreamReader(footerURL));     

  String thisLine = null;
  String header = "";
  String footer = "";
  while ((thisLine = headerReader.readLine()) != null) { header += thisLine + System.getProperty("line.separator"); } 
  while ((thisLine = footerReader.readLine()) != null) { footer += thisLine + System.getProperty("line.separator"); }
  headerReader.close();
  footerReader.close();       

  NumberFormat rewardFormatter = NumberFormat.getInstance();
  rewardFormatter.setMaximumFractionDigits(2);
  rewardFormatter.setMinimumFractionDigits(2);        

  Map<String, String> headerMap = new HashMap<String, String>();
  headerMap.put("requester", "[Your Requester Name Here]");
  headerMap.put("title", props.getTitle());
  headerMap.put("description", props.getDescription());
  headerMap.put("keywords", props.getKeywords());
  headerMap.put("reward", rewardFormatter.format(props.getRewardAmount()));
  String mergedHeader = VelocityUtil.doMerge(header, headerMap);

  String previewString = mergedHeader + questionPreview + footer;

  return previewString;
}
项目:java-aws-mturk    文件:TestRequesterService.java   
public void testValidateExternalQuestion() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultExternalQuestionFileName);

  service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);
}
项目:java-aws-mturk    文件:TestHITQuestion.java   
public void testLoadUTF8QuestionFile() throws Exception {
    HITQuestion q = new HITQuestion(defaultUTF8QuestionFileName);
    assertFalse("Expected Unicode string was missing.", q.getQuestion().indexOf("Uñìçődé") == -1);
}
项目:java-aws-mturk    文件:SimpleSurvey.java   
/**
 * Creates the simple survey.
 *
 */
public void createSimpleSurvey() {
  try {

    // This is an example of creating a qualification.
    // This is a built-in qualification -- user must be based in the US
    QualificationRequirement qualReq = new QualificationRequirement();
    qualReq.setQualificationTypeId(RequesterService.LOCALE_QUALIFICATION_TYPE_ID);
    qualReq.setComparator(Comparator.EqualTo);
    Locale country = new Locale();
    country.setCountry("US");
    qualReq.setLocaleValue(country);

    // The create HIT method takes in an array of QualificationRequirements
    // since a HIT can have multiple qualifications.
    QualificationRequirement[] qualReqs = null;
    qualReqs = new QualificationRequirement[] { qualReq };

    // Loading the question (QAP) file. HITQuestion is a helper class that
    // contains the QAP of the HIT defined in the external file. This feature 
    // allows you to write the entire QAP externally as a file and be able to 
    // modify it without recompiling your code.
    HITQuestion question = new HITQuestion(questionFile);

    //Creating the HIT and loading it into Mechanical Turk
    HIT hit = service.createHIT(null, // HITTypeId 
        title, 
        description, keywords, 
        question.getQuestion(),
        reward, assignmentDurationInSeconds,
        autoApprovalDelayInSeconds, lifetimeInSeconds,
        numAssignments, requesterAnnotation, 
        qualReqs,
        null // responseGroup
      );

    System.out.println("Created HIT: " + hit.getHITId());

    System.out.println("You may see your HIT with HITTypeId '" 
        + hit.getHITTypeId() + "' here: ");

    System.out.println(service.getWebsiteURL() 
        + "/mturk/preview?groupId=" + hit.getHITTypeId());

    //Demonstrates how a HIT can be retrieved if you know its HIT ID
    HIT hit2 = service.getHIT(hit.getHITId());

    System.out.println("Retrieved HIT: " + hit2.getHITId());

    if (!hit.getHITId().equals(hit2.getHITId())) {
      System.err.println("The HIT Ids should match: " 
          + hit.getHITId() + ", " + hit2.getHITId());
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:java-aws-mturk    文件:SiteCategory.java   
/**
 * Create the website category HITs.
 *
 */
public void createSiteCategoryHITs() {
  try {

    //Loading the input file.  The input file is a tab delimited file where the first row
    //defines the fields/variables and the remaining rows contain the values for each HIT.
    //Each row represents a unique HIT.  The SDK uses the Apache Velocity engine to merge
    //the input values into a templatized QAP file.
    //Please refer to http://velocity.apache.org for more details on this engine and
    //how to specify variable names.  Apache Velocity is fully supported so there may be
    //additional functionality you can take advantage of if you know the Velocity syntax.
    HITDataInput input = new HITDataCSVReader(inputFile);

    //Loading the question (QAP) file.  This QAP file contains Apache Velocity variable names where the values
    //from the input file are to be inserted.  Essentially the QAP becomes a template for the input file.
    HITQuestion question = new HITQuestion(questionFile);

    //Loading the HIT properties file.  The properties file defines two system qualifications that will
    //be used for the HIT.  The properties file can also be a Velocity template.  Currently, only
    //the "annotation" field is allowed to be a Velocity template variable.  This allows the developer
    //to "tie in" the input value to the results.
    HITProperties props = new HITProperties(propertiesFile);

    HIT[] hits = null;

    // Create multiple HITs using the input, properties, and question files

    System.out.println("--[Loading HITs]----------");
    Date startTime = new Date();
    System.out.println("  Start time: " + startTime);

    //The simpliest way to bulk load a large number of HITs where all details are defined in files.
    //When using this method, it will automatically create output files of the following type:
    //  - <your input file name>.success - A file containing the HIT IDs and HIT Type IDs of
    //                                     all HITs that were successfully loaded.  This file will
    //                                     not exist if there are no HITs successfully loaded.
    //  - <your input file name>.failure - A file containing the input rows that failed to load.
    //                                     This file will not exist if there are no failures.
    //The .success file can be used in subsequent operations to retrieve the results that workers submitted.
    HITDataOutput success = new HITDataCSVWriter(inputFile + ".success");
    HITDataOutput failure = new HITDataCSVWriter(inputFile + ".failure");
    hits = service.createHITs(input, props, question, success, failure);

    System.out.println("--[End Loading HITs]----------");
    Date endTime = new Date();
    System.out.println("  End time: " + endTime);
    System.out.println("--[Done Loading HITs]----------");
    System.out.println("  Total load time: "
        + (endTime.getTime() - startTime.getTime())/1000 + " seconds.");

    if (hits == null) {
      throw new Exception("Could not create HITs");
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:mturksdk-java-code-maven    文件:RequesterService.java   
/**
 * Returns a preview of the HIT as HTML
 * 
 * @param input       the input needed for the HIT
 * @param props       the properties of the HIT 
 * @param question    the question asked in the HIT
 * @return an HTML preview of the HIT
 * @throws Exception
 */
public String previewHIT(HITDataInput input, HITProperties props, 
    HITQuestion question) throws Exception {   

  if (props == null || question == null)
    throw new IllegalArgumentException();

  String questionXML = null;

  if (input != null) {
    Map<String, String> inputMap = input.getRowAsMap(1);
    questionXML = question.getQuestion(inputMap);
  } else {
    questionXML = question.getQuestion();
  }

  // Validate question before preview
  QAPValidator.validate(questionXML);

  String questionPreview = XslTransformer.convertQAPtoHTML(questionXML);
  InputStream headerURL = this.getClass().getResourceAsStream("previewHITHeader.xml");
  InputStream footerURL = this.getClass().getResourceAsStream("previewHITFooter.xml");

  if (headerURL == null) {
    log.error("Error reading the preview header file.");
  }

  if (footerURL == null) {
    log.error("Error reading the preview footer file.");
  }

  BufferedReader headerReader = new BufferedReader(new InputStreamReader(headerURL));
  BufferedReader footerReader = new BufferedReader(new InputStreamReader(footerURL));     

  String thisLine = null;
  String header = "";
  String footer = "";
  while ((thisLine = headerReader.readLine()) != null) { header += thisLine + System.getProperty("line.separator"); } 
  while ((thisLine = footerReader.readLine()) != null) { footer += thisLine + System.getProperty("line.separator"); }
  headerReader.close();
  footerReader.close();       

  NumberFormat rewardFormatter = NumberFormat.getInstance();
  rewardFormatter.setMaximumFractionDigits(2);
  rewardFormatter.setMinimumFractionDigits(2);        

  Map<String, String> headerMap = new HashMap<String, String>();
  headerMap.put("requester", "[Your Requester Name Here]");
  headerMap.put("title", props.getTitle());
  headerMap.put("description", props.getDescription());
  headerMap.put("keywords", props.getKeywords());
  headerMap.put("reward", rewardFormatter.format(props.getRewardAmount()));
  String mergedHeader = VelocityUtil.doMerge(header, headerMap);

  String previewString = mergedHeader + questionPreview + footer;

  return previewString;
}
项目:mturksdk-java-code-maven    文件:TestRequesterService.java   
public void testValidateExternalQuestion() throws Exception {
  HITQuestion htmlQuestion = new HITQuestion(defaultExternalQuestionFileName);

  service.previewHIT(defaultHITInput, defaultHITProperties, htmlQuestion);
}
项目:mturksdk-java-code-maven    文件:TestHITQuestion.java   
public void testLoadUTF8QuestionFile() throws Exception {
    HITQuestion q = new HITQuestion(defaultUTF8QuestionFileName);
    assertFalse("Expected Unicode string was missing.", q.getQuestion().indexOf("Uñìçődé") == -1);
}
项目:mturksdk-java-code-maven    文件:SimpleSurvey.java   
/**
 * Creates the simple survey.
 *
 */
public void createSimpleSurvey() {
  try {

    // This is an example of creating a qualification.
    // This is a built-in qualification -- user must be based in the US
    QualificationRequirement qualReq = new QualificationRequirement();
    qualReq.setQualificationTypeId(RequesterService.LOCALE_QUALIFICATION_TYPE_ID);
    qualReq.setComparator(Comparator.EqualTo);
    Locale country = new Locale();
    country.setCountry("US");
    qualReq.setLocaleValue(country);

    // The create HIT method takes in an array of QualificationRequirements
    // since a HIT can have multiple qualifications.
    QualificationRequirement[] qualReqs = null;
    qualReqs = new QualificationRequirement[] { qualReq };

    // Loading the question (QAP) file. HITQuestion is a helper class that
    // contains the QAP of the HIT defined in the external file. This feature 
    // allows you to write the entire QAP externally as a file and be able to 
    // modify it without recompiling your code.
    HITQuestion question = new HITQuestion(questionFile);

    //Creating the HIT and loading it into Mechanical Turk
    HIT hit = service.createHIT(null, // HITTypeId 
        title, 
        description, keywords, 
        question.getQuestion(),
        reward, assignmentDurationInSeconds,
        autoApprovalDelayInSeconds, lifetimeInSeconds,
        numAssignments, requesterAnnotation, 
        qualReqs,
        null // responseGroup
      );

    System.out.println("Created HIT: " + hit.getHITId());

    System.out.println("You may see your HIT with HITTypeId '" 
        + hit.getHITTypeId() + "' here: ");

    System.out.println(service.getWebsiteURL() 
        + "/mturk/preview?groupId=" + hit.getHITTypeId());

    //Demonstrates how a HIT can be retrieved if you know its HIT ID
    HIT hit2 = service.getHIT(hit.getHITId());

    System.out.println("Retrieved HIT: " + hit2.getHITId());

    if (!hit.getHITId().equals(hit2.getHITId())) {
      System.err.println("The HIT Ids should match: " 
          + hit.getHITId() + ", " + hit2.getHITId());
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:mturksdk-java-code-maven    文件:SiteCategory.java   
/**
 * Create the website category HITs.
 *
 */
public void createSiteCategoryHITs() {
  try {

    //Loading the input file.  The input file is a tab delimited file where the first row
    //defines the fields/variables and the remaining rows contain the values for each HIT.
    //Each row represents a unique HIT.  The SDK uses the Apache Velocity engine to merge
    //the input values into a templatized QAP file.
    //Please refer to http://velocity.apache.org for more details on this engine and
    //how to specify variable names.  Apache Velocity is fully supported so there may be
    //additional functionality you can take advantage of if you know the Velocity syntax.
    HITDataInput input = new HITDataCSVReader(inputFile);

    //Loading the question (QAP) file.  This QAP file contains Apache Velocity variable names where the values
    //from the input file are to be inserted.  Essentially the QAP becomes a template for the input file.
    HITQuestion question = new HITQuestion(questionFile);

    //Loading the HIT properties file.  The properties file defines two system qualifications that will
    //be used for the HIT.  The properties file can also be a Velocity template.  Currently, only
    //the "annotation" field is allowed to be a Velocity template variable.  This allows the developer
    //to "tie in" the input value to the results.
    HITProperties props = new HITProperties(propertiesFile);

    HIT[] hits = null;

    // Create multiple HITs using the input, properties, and question files

    System.out.println("--[Loading HITs]----------");
    Date startTime = new Date();
    System.out.println("  Start time: " + startTime);

    //The simpliest way to bulk load a large number of HITs where all details are defined in files.
    //When using this method, it will automatically create output files of the following type:
    //  - <your input file name>.success - A file containing the HIT IDs and HIT Type IDs of
    //                                     all HITs that were successfully loaded.  This file will
    //                                     not exist if there are no HITs successfully loaded.
    //  - <your input file name>.failure - A file containing the input rows that failed to load.
    //                                     This file will not exist if there are no failures.
    //The .success file can be used in subsequent operations to retrieve the results that workers submitted.
    HITDataOutput success = new HITDataCSVWriter(inputFile + ".success");
    HITDataOutput failure = new HITDataCSVWriter(inputFile + ".failure");
    hits = service.createHITs(input, props, question, success, failure);

    System.out.println("--[End Loading HITs]----------");
    Date endTime = new Date();
    System.out.println("  End time: " + endTime);
    System.out.println("--[Done Loading HITs]----------");
    System.out.println("  Total load time: "
        + (endTime.getTime() - startTime.getTime())/1000 + " seconds.");

    if (hits == null) {
      throw new Exception("Could not create HITs");
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:gort-public    文件:SimpleSurvey.java   
/**
 * Creates the simple survey.
 *
 */
public void createSimpleSurvey() {
  try {

    // This is an example of creating a qualification.
    // This is a built-in qualification -- user must be based in the US
    QualificationRequirement qualReq = new QualificationRequirement();
    qualReq.setQualificationTypeId(RequesterService.LOCALE_QUALIFICATION_TYPE_ID);
    qualReq.setComparator(Comparator.EqualTo);
    Locale country = new Locale();
    country.setCountry("US");
    qualReq.setLocaleValue(country);

    // The create HIT method takes in an array of QualificationRequirements
    // since a HIT can have multiple qualifications.
    QualificationRequirement[] qualReqs = null;
    qualReqs = new QualificationRequirement[] { qualReq };

    // Loading the question (QAP) file. HITQuestion is a helper class that
    // contains the QAP of the HIT defined in the external file. This feature 
    // allows you to write the entire QAP externally as a file and be able to 
    // modify it without recompiling your code.
    HITQuestion question = new HITQuestion(questionFile);

    //Creating the HIT and loading it into Mechanical Turk
    HIT hit = service.createHIT(null, // HITTypeId 
        title, 
        description, keywords, 
        question.getQuestion(),
        reward, assignmentDurationInSeconds,
        autoApprovalDelayInSeconds, lifetimeInSeconds,
        numAssignments, requesterAnnotation, 
        qualReqs,
        null // responseGroup
      );

    System.out.println("Created HIT: " + hit.getHITId());

    System.out.println("You may see your HIT with HITTypeId '" 
        + hit.getHITTypeId() + "' here: ");

    System.out.println(service.getWebsiteURL() 
        + "/mturk/preview?groupId=" + hit.getHITTypeId());

    //Demonstrates how a HIT can be retrieved if you know its HIT ID
    HIT hit2 = service.getHIT(hit.getHITId());

    System.out.println("Retrieved HIT: " + hit2.getHITId());

    if (!hit.getHITId().equals(hit2.getHITId())) {
      System.err.println("The HIT Ids should match: " 
          + hit.getHITId() + ", " + hit2.getHITId());
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:gort-public    文件:SiteCategory.java   
/**
 * Create the website category HITs.
 *
 */
public void createSiteCategoryHITs() {
  try {

    //Loading the input file.  The input file is a tab delimited file where the first row
    //defines the fields/variables and the remaining rows contain the values for each HIT.
    //Each row represents a unique HIT.  The SDK uses the Apache Velocity engine to merge
    //the input values into a templatized QAP file.
    //Please refer to http://velocity.apache.org for more details on this engine and
    //how to specify variable names.  Apache Velocity is fully supported so there may be
    //additional functionality you can take advantage of if you know the Velocity syntax.
    HITDataInput input = new HITDataCSVReader(inputFile);

    //Loading the question (QAP) file.  This QAP file contains Apache Velocity variable names where the values
    //from the input file are to be inserted.  Essentially the QAP becomes a template for the input file.
    HITQuestion question = new HITQuestion(questionFile);

    //Loading the HIT properties file.  The properties file defines two system qualifications that will
    //be used for the HIT.  The properties file can also be a Velocity template.  Currently, only
    //the "annotation" field is allowed to be a Velocity template variable.  This allows the developer
    //to "tie in" the input value to the results.
    HITProperties props = new HITProperties(propertiesFile);

    HIT[] hits = null;

    // Create multiple HITs using the input, properties, and question files

    System.out.println("--[Loading HITs]----------");
    Date startTime = new Date();
    System.out.println("  Start time: " + startTime);

    //The simpliest way to bulk load a large number of HITs where all details are defined in files.
    //When using this method, it will automatically create output files of the following type:
    //  - <your input file name>.success - A file containing the HIT IDs and HIT Type IDs of
    //                                     all HITs that were successfully loaded.  This file will
    //                                     not exist if there are no HITs successfully loaded.
    //  - <your input file name>.failure - A file containing the input rows that failed to load.
    //                                     This file will not exist if there are no failures.
    //The .success file can be used in subsequent operations to retrieve the results that workers submitted.
    HITDataOutput success = new HITDataCSVWriter(inputFile + ".success");
    HITDataOutput failure = new HITDataCSVWriter(inputFile + ".failure");
    hits = service.createHITs(input, props, question, success, failure);

    System.out.println("--[End Loading HITs]----------");
    Date endTime = new Date();
    System.out.println("  End time: " + endTime);
    System.out.println("--[Done Loading HITs]----------");
    System.out.println("  Total load time: "
        + (endTime.getTime() - startTime.getTime())/1000 + " seconds.");

    if (hits == null) {
      throw new Exception("Could not create HITs");
    }

  } catch (Exception e) {
    System.err.println(e.getLocalizedMessage());
  }
}
项目:java-aws-mturk    文件:RequesterService.java   
/**
 * Creates multiple HITs. 
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question asked in the HITs
 * @return an array of HIT objects
 * @throws Exception
 * @deprecated
 */
public HIT[] createHITs(HITDataReader input, HITProperties props, HITQuestion question) {
  return createHITs( input, props, question, RequesterService.LOAD_ALL );
}
项目:java-aws-mturk    文件:RequesterService.java   
/**
 * Creates multiple HITs.
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question in the HITs
 * @param success        the file that contains the HITId and HITTypeId for the created 
 *                       HITs
 * @param failure        the failure file
 * @return an array of HIT objects
 * @throws Exception
 */
public HIT[] createHITs(HITDataInput input, HITProperties props, HITQuestion question,
    HITDataOutput success, HITDataOutput failure) throws Exception {
  return createHITs(input, props, question, RequesterService.LOAD_ALL, success, failure);
}
项目:mturksdk-java-code-maven    文件:RequesterService.java   
/**
 * Creates multiple HITs. 
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question asked in the HITs
 * @return an array of HIT objects
 * @throws Exception
 * @deprecated
 */
public HIT[] createHITs(HITDataReader input, HITProperties props, HITQuestion question) {
  return createHITs( input, props, question, RequesterService.LOAD_ALL );
}
项目:mturksdk-java-code-maven    文件:RequesterService.java   
/**
 * Creates multiple HITs.
 * 
 * @param input          the input data needed for the HITs
 * @param props          the properties of the HITs
 * @param question       the question in the HITs
 * @param success        the file that contains the HITId and HITTypeId for the created 
 *                       HITs
 * @param failure        the failure file
 * @return an array of HIT objects
 * @throws Exception
 */
public HIT[] createHITs(HITDataInput input, HITProperties props, HITQuestion question,
    HITDataOutput success, HITDataOutput failure) throws Exception {
  return createHITs(input, props, question, RequesterService.LOAD_ALL, success, failure);
}