Todo: diagrams and examples illustrating relationships
Aura is a decentralized system to arrive at expert answers in a domain.
A domain defines what subjects can be evaluated and what questions are included in the evaluation. The first team creating a domain makes and updates these definitions. If teams disagree about definitions, a domain can be forked, copying all subjects, teams, participants and evaluations, but setting a new first team that can change the definitions.
A domain also sets the maximum number of teams a player can join.
Subjects are what players evaluate. In a Restaurants domain, for example, subjects would be restaurants.
An evaluation is set of questions answered by a player about a subject (or a trainer about a player or a manager about a trainer or other manager).
The evaluator also assigns a confidence rating (low, medium, high, very high) to each of their answers.
Evalutions are aggregated to determine whether a subject (or player, trainer, manager) has reached a certain level. This process is discussed in the levels document.
Levels are a convenient way to consistently measure quality. For example, a subject level 1 communicates a certain level of quality about the subject.
As conditions in the network change, the underlying requirements to achieve a level might change, but the quality conveyed by the level will remain constant.
Level definitions are team-specific and set by team captains. A team tries to create useful levels to increase their chance of being included in leagues.
Levels have their own document discussing their implementation and usage.
A player evaluates subjects. A player belongs to a number of teams, the limit of which is set by the domain. To join a team, a player must be evaluated by one or more trainers on that team and receive a positive level.
Trainers evaluate players on how well they evaluate subjects.
Managers evaluate trainers; a trainer's level comes from these evaluations.
Managers evaluate trainers on how well they train players. Managers also evaluate other managers on how well they evaluate trainers and managers. Manager evaluations determine flows of energy, which is what eventually allows players to give levels to subjects. More information on energy flows is contained in the levels document.
Anyone can start playing Aura before they join a team. They will be a provisional player, and their evaluations won't affect subject levels on any teams.
A player can become a provisional trainer or a provisional manager. As soon as they receive a level as trainer (or manager), they are no longer provisional.
A player can join a team as soon as they receive a level from that team (which comes from positive evaluations by trainers). A player must belong to one or more teams before their evaluations will help determine the levels of subjects.
Teams attract players, and try to become included in leagues.
Teams are a key to resiliency, and leagues should try to include multiple teams in their league level definitions, so they can quickly adapt if one or more teams proves to be corrupt or dysfunctional.
A team starts with team owners which are one or more managers that can bootstrap evaluations. Team owners expand the team by evaluating other managers and trainers.
Team owners vote to add and remove team owners.
Team owners define levels.
Team owners can copy a team into a different domain, taking its participants and evaluations as a starting point.
Leagues are responsible for providing aggregate evaluations of subjects to consuming apps. Anyone can form a league simply by defining an aggregation method. It's likely that apps will trust very few–perhaps only one–league, but it's a key feature of Aura that if a league becomes untrustworthy, defining a new one to replace it can be done quickly.
Leagues assign different weights to levels from different teams and aggregate them into league levels.
League levels are meant to be a reliable and easy way to understand evaluations of subjects. It should be easy for an app to filter or rank subjects by their league levels.
For example, in the BrightID domain, the BrightID league might assign league levels to BrightID users with the following meanings.
Thus, an app can decide how to proceed with users having a league level of 1, 2, or 3–or simply choose one of the levels as a base requirement for app usage.