wiki:BossaIntro

Version 5 (modified by davea, 10 years ago) (diff)

--

Berkeley Open System for Skill Aggregation (BOSSA)

T(DesignDocument)?

BOSSA is a software infrastructure for creating projects that use skills or knowledge of large numbers of volunteers, via the Internet, to accomplish a set of tasks.

BOSSA is designed to accommodate a wide range of tasks. In particular:

  • 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 automatically validated, or may require validation by comparing multiple instances.

BOSSA uses BOINC Basics, and designed to be used together with BOLT.

Abstractions

A BOSSA project has one or more skill apps. For each skill app and each user, BOSSA maintains skill estimate, an estimate of the user's skill at that task. This is maintained in the user's project-specific XML document. Normally it's a number in [0..1], and it's initially zero.

Normally each skill app has an associated BOLT course, and the skill estimate is maintained on the basis of the user's interaction with that course. However, a project can maintain the skill app using any other mechanism.

A skill app has a dynamic set of skill tasks. Each one has an associated XML document, typically describing its parameters or input files.

Each skill task has a set of task instances. Each one represents a copy of the task, either in progress or completed. Each instance is assigned either to a user or to a team.

Skill apps are classified as:

  • Online: the task is performed by a single user, sequentially, in a web browser.
  • Offline: the task is not online, e.g. because it's potentially handled by a group of users, or requires other asynchronous activity.

An online app has an associated instance URL, identifying a script that takes an task ID argument and displays the task instance. The task may consist either of a single web page or a sequence of web pages. In either case the last page in the sequence, when done, should go to bossa_task_complete.php, which triggers validation and then asks the user if they want more tasks.

An offline app two associated URLs: instance start and instance complete. Each takes a task ID argument. The start script shows the user a task instance, and makes its input files (if any) available to the user or group. The complete script prompts the user to upload files or enter results; it should then go to bossa_task_complete.php.

Skill apps are either:

  • Individually validated: the app has a server-side program that examines a completed instance and decides if it's valid.
  • Group validated: the app has a server-side program that examines a group of instances, sees if there's a consensus, and if so constructs a canonical result and marks the instances as valid or invalid.

A project can configure:

  • A maximum number of outstanding offline tasks per user or group
  • A maximum number of tasks per day issued per user or group

Implementation

To get work, a user goes to a particular page. There they see a list of skill apps for which tasks are available and for which they are qualified. Online and offline apps are listed separately. Each app has an estimate of the time or other resources required to complete the task.

To get work for a team, a team administrator