37 | | Each overall job that needs to be done to accomplish one purpose will have its own specific set of input data, its own instructions to workers, its own way for workers to enter results, and its own needs for how much verification is needed. Rather than hard-wire a few sorts of task types, we'd like to let the people who need the work done specify these things. To permit this, we might need to... |
| 37 | Each overall job to accomplish one purpose will have its own specific set of input data, its own instructions to workers, its own way for workers to enter results, and its own needs for how much verification is needed. Rather than hard-wire a few sorts of task types, we'd like to let the people who need the work done specify these things. To permit this, we might need to... |
55 | | * Advanced setup: |
56 | | * Allow specifying form layout. |
57 | | * Provide convenient access to helpful tools from within the form. |
| 56 | * Specify constraints on the results, especially ones that can be checked in the form, such as: |
| 57 | * Data types for text fields (date, number with range, ...) |
| 58 | * Multiple selections that make sense together. |
| 59 | * Specify how to compare results from different workers -- when do the results match? |
| 60 | * Assign experts who can handle difficult cases and verify a sampling of results. |
63 | | ==== Task assembly and presentation ==== |
| 68 | ==== Managing the task queue ==== |
| 69 | |
| 70 | The overall process will be: |
| 71 | * Get items of data from the data source. |
| 72 | * Pick one or more appropriate workers for each. |
| 73 | * Present the tasks to the workers. |
| 74 | * Allow workers to refuse tasks. |
| 75 | * Receive their results. |
| 76 | * Do any automated checking -- push back obviously invalid results. |
| 77 | * Store results. |
| 78 | * Record completion of tasks when there is enough consensus on the results. |
| 79 | * Record task failure if there's not enough agreement. |
| 80 | * Dispatch failed tasks and a sample of successful tasks to experts. |
| 81 | |
| 82 | The task queue will be driven by the input data. |
| 85 | |
| 86 | Workers will have different skills, and different levels of ability and training on those skills. |
| 87 | Some skills will be hard to learn in the short term (e.g. languages) while others can be learned |
| 88 | quickly (e.g. classifying messages by topic). |
| 89 | When we're training new workers, we might want to give them tasks to practice on even if their |
| 90 | level of ability isn't high. But for production work, we'd want to assign tasks that are appropriate |
| 91 | for each worker's skills and skill level. |
| 92 | |
| 93 | ==== Presenting tasks to workers ==== |
| 94 | |
| 95 | |