Changes between Version 5 and Version 6 of BossaOverview


Ignore:
Timestamp:
Jul 20, 2008, 2:51:14 PM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BossaOverview

    v5 v6  
    1818== The diverse requirements of distributed thinking ==
    1919
     20Distributed thinking projects may have widely varying
     21properties and requirements.
     22
     23First, they may require different orders of job distribution.
     24Consider the two cases:
     25
     26 * Project A has a limited set of jobs and lots of volunteers.
     27 * Project B has an unbounded stream of jobs and a limited set of volunteers.
     28
     29Project A will want to have each job performed about the same number of times.
     30It will want to issues all jobs once,
     31then issue them all a second time, and so on.
     32In constrast, project B will want to issue the first job to a quorum of volunteers,
     33then issue the second job to a quorum, and so on.
     34
     35Second, projects may want to assess the ability of each volunteer,
     36and use this to determine how many replicas of each job to perform.
     37Several factors might contribute to the ability estimate:
     38
     39 * The volunteer's performance on a training course.
     40 * The volunteer's performance on a stream of "calibration jobs" (with known answers) intermixed with the job stream.
     41 * The fraction of time a volunteer's response to a job agrees with the "correct" response, as determined by replication.
     42
     43In addition, the way in which ability is described may vary.
     44In simple cases it might be a single number, e.g. and error rate.
     45For tasks that involve feature detection we might want to track
     46the rates of false positives and false negatives separately.
     47For more complex tasks there could be arbitrarily many dimensions.
     48
     49Third, the way in which more able volunteers are used may differ.
     50Two general possibilities:
     51
     52 '''Experts do the same job, only better'''::
     53  For example, experts might be used to resolve cases in which no concensus is reached by other volunteers. Or they might be used to verify the identification of rare features.
     54
     55 '''Experts do more sophisticated jobs'''::
     56 For example, non-experts might look for features, while experts classify them.
    2057
    2158== How Bossa addresses these requirements ==
     59
     60Bossa's design philosophy is to provide '''mechanisms''',
     61and leave it up to the projects to define the '''policies'''.
     62This is done using the following techniques:
     63
     64 * Project-specific information about jobs and volunteers is stored in PHP objects.  The structure of these objects is determined by the project.  Bossa stores them in a serialized form in the database.
     65 * Project-specific policies are encoded in PHP '''callback functions''' that are invoked at various points (e.g., when jobs are issued, when they complete, and when they time out).
     66
     67The mechanisms provided by Bossa include:
     68
     69 * Jobs can be designated as '''calibration jobs''', and Bossa can be instructed to randomly mix a given rate of calibration jobs into the job stream.
     70 * The order in which jobs are issued is determined by a floating-point priority.  The manipulation of these priorities is up to the project.
     71 * Users can be assigned integer '''levels''', in which case each job has a vector of priorities, one per level.
     72
     73This framework enables all of the examples listed above
     74(and others not yet conceived)
     75to be implemented with a small amount of PHP programming.