Skip to content

Data model

Generic by design

The backend must not contain concepts such as animal, root, or cell as special cases. A generic project may eventually contain:

Project
├── Media
├── Task
├── Classes
├── Contributors
├── Annotations
├── Consensus
├── DatasetVersions
└── ModelVersions

A generic annotation might contain fields conceptually similar to:

Annotation
├── media_id
├── contributor_id
├── task_type
├── class_id
├── geometry
├── confidence
├── source
└── created_at

For classification:

geometry = null
class = animal

For detection:

geometry = bounding_box(...)
class = deer

For segmentation:

geometry = mask/polygon(...)
class = root

This generic structure lets the platform start with classification while remaining extensible toward detection, segmentation, points, and tracking — see Annotation types.

Dataset versioning

Training operates on frozen, reproducible dataset versions rather than on a constantly changing collection of annotations:

Raw annotations
Quality control / consensus
DatasetVersion v1
Train / validation / test split
ModelVersion v1
New annotations + corrections
DatasetVersion v2
ModelVersion v2

This makes model comparisons and scientific reproducibility much easier.

Contributor identity (MVP)

Public contributors do not require accounts for the MVP. A browser-generated anonymous identifier is stored locally:

contributor_id = anonymous UUID

This lets AnnoTrain count contributors, avoid repeatedly showing the same image to the same contributor, calculate annotation statistics, and preserve contributor-level annotation histories. Optional session codes can later distinguish groups, e.g. BT2026 for annotations produced during the Bioinformatics Tools course.

Project visibility

Future project visibility modes: Private, Unlisted / link only, Public. Publishing is a separate set of choices — a researcher may want public participation without immediately releasing every raw scientific file:

  • Publish annotations
  • Publish dataset
  • Publish trained model
  • Publish training configuration