= Bossa reference manual = == Abstractions == A Bossa project has one or more ''applications''. The job may consist of a single web page or a sequence of web pages. A application has a dynamic set of ''jobs''. Each job has a set of ''job instances''. Each one represents a copy of the job, either in progress or completed. == Volunteer characteristics == For each application and each user, Bossa maintains ''skill estimate'', an estimate of the user's skill at that task. This is maintained in the user's database record. Normally it's a single number in [0..1], and it's initially zero. The skill estimate can be computed in any of several ways: * The results of the user's interaction with a Bolt course associated with the application. * The user's performance on "calibration jobs" mixed into the stream. * The fraction of the user's results classified as invalid by redundancy. Skill estimates are used for two purposes: * To decide whether to give jobs to a user; * To decide how many redundant instances of a given job are needed. == Possible extensions == === Integration with BOINC === Some offline jobs may involve computation done through BOINC; i.e. if the job is assigned to a team, the computation is queued in the project's BOINC server and dispatched to members of the team. (Or if the job is assigned to a user with many computers, those computers are used). * Tasks may be short (performed online via a single web page) or may take several weeks and involve running separate programs. * Tasks may be performed by a single user or by a group of cooperating users. * Tasks may be unvalidated, automatically validated, or validated by comparing redundant instances. === Teams as volunteers === Each job instance is assigned either to a user or to a team. === Offline jobs * Offline: jobs are not online, e.g. because they're potentially handled by a group of users, or requires other asynchronous activity. A project can configure: * A maximum number of outstanding offline jobs per user or group * A maximum number of jobs per day issued per user or group