4 | | A Bossa project has one or more ''applications''. |
5 | | The job may consist of a single web page or a sequence of web pages. |
| 4 | * A Bossa project has one or more '''applications'''. |
| 5 | * A application has a dynamic set of '''jobs'''. |
| 6 | * An application has a dynamic set of '''batches''', which are used to group jobs. |
| 7 | * Each job has a set of '''job instances''', in progress or completed. |
| 8 | * A '''user''' is a person who volunteers to perform jobs. |
9 | | Each job has a set of ''job instances''. |
10 | | Each one represents a copy of the job, either in progress or completed. |
| 12 | Jobs may be marked as '''calibration jobs'''. |
| 13 | These are jobs for which the answer is known in advance; |
| 14 | their purpose is to estimate the accuracy of each user. |
| 15 | Each application has a '''calibration job fraction'''; |
| 16 | this is the probability with which calibration jobs are assigned. |
| 17 | |
| 18 | Each job has a '''state''', one of: |
| 19 | |
| 20 | '''BOSSA_JOB_EMBARGOED''': the job is not yet eligible to be issued. |
| 21 | |
| 22 | '''BOSSA_JOB_IN_PROGRESS''': the job is eligible to be issued. |
| 23 | |
| 24 | '''BOSSA_JOB_DONE''': the job has been finished successfully. |
| 25 | |
| 26 | '''BOSSA_JOB_INCONCLUSIVE''': the job has finished unsuccessfully |
| 27 | (typically because a consensus was not reached). |
| 28 | |
| 29 | Each job has a floating-point '''priority'''. |
| 30 | Jobs are assigned to users in order of decreasing priority. |
| 31 | |
| 32 | Each job, job instance, and user has an associated '''app data''' - a PHP structure |
| 33 | whose contents are determined by the project, not by Bossa. |
| 34 | These structures are stored in the database. |