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:
For detection:
For segmentation:
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
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:
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