Skip to content

Annotation Guide

Conventions for annotating HTR ground truth. This guide is the operational reference — the schema (1.0.0), the granularity decision and the reasoning behind these rules live in ADR 004. Read it when a rule here looks arbitrary, or before proposing a change to one.

Workflow

Open the annotation tool, enter your annotator_id (always the same one), open the .xopp, classify every stroke, export. Put the .gt.json next to its source in data/ of the PellelNitram/xournalpp_htr_benchmark dataset.

  • Annotate the copy in the dataset repo — editing a source file after annotation invalidates its labels.
  • Auto-save is browser-local only. Export every session.
  • R rect select · S stroke select · P pan · +/- zoom · F fit

Classes

Word level, never character level. word, digit and mathematical_expression require text; the other seven forbid it.

word One word, incl. later strokes (i dots, t bars)
digit Purely numeric
mathematical_expression One whole formula, not per symbol
arrow drawing diagram Pointers · doodles · graphs, flowcharts
table separator Grid lines · rules, dividers, underlines, bullet markers
correction Struck-through or scribbled-out content
other Nothing else fits

Rules

Transcribe what is written, not what was meant — keep capitalisation, diacritics, spelling mistakes.

Case Rule
Punctuation Attach to adjacent word, include in text (Hallo,)
Hyphenation across lines Two words, hyphen kept (Hand-, schrift)
Digit grouping 123 → one; 1 2 3 → three
digit vs word digit only if purely numeric (-1.234,50); any letter → word
Math LaTeX, no delimiters (\frac{a}{b})
Overwritten One word over all strokes, final reading; if unreadable → correction
Illegible other, never a guessed word — a guess makes a correct prediction score as an error
Underline separator, never part of the word
Bullet marker - * separator, own annotation, never merged into the following word
Diagram labels Text annotated normally, kept out of the diagram

Avoid selections spanning layers — they split per layer on export.

Quality control

  • Annotate 3 documents, revisit these rules, then go bulk.
  • Double-annotate ~10 pages under a second annotator_id, else a CER can't be separated from annotation disagreement.
  • Evaluation-only: never train on benchmark data. Check for personal information before publishing.