Skip to content

Annotation Protocol

Moritz Wolf edited this page Feb 2, 2022 · 3 revisions

In short

The protocol is composed of states.

State syntax:

<state-name>:
    type: <task-type>
    transitions:
        - <trigger1>:
              target: <target1-state-name>
        - <trigger2>:
              target: <target2-state-name>
    <option-key>: <option>

Components:

  • state-name
    The identifier for the state. When running flask init-db or flask reset-annotations, for all state names except 'start' a column is created to save the annotations in.
  • task-type
    The name of the task type. Refer to Task-Types for a list and documentation of all possible task types.
  • transitions When a state has options, we need to define the target-state for each one. For example, if the annotator chooses the trigger1 option HUMAN will transition into the state target1-state-name. If the annotator, however, chooses the trigger2 option, the target-state is target2-state-name.
    • trigger
      The name of the transition: E.g. "YES" or "NO" for boolean task type. "*" is the wildcard transition name and will always transition to its target.
    • target-state-name
      The name of the state that should be transitioned into when triggered.
  • options
    Options for the task type. Refer to Task-Types for the possible options for each task.

Requirements:

  • A start state that loads a datatype from the server
  • A transition with target 'end' to save annotations
  • No duplicate states
  • No state named 'end'
  • For further requirements of a specific task-type refer to its documentation.

Clone this wiki locally