| 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. |