Memos
Memos are free-text notes an annotator can attach to an instance, or to a text selection within an instance. They are a universal feature — available in standard annotation, solo mode, and QDA mode — useful for flagging ambiguous cases, recording rationale, and building an audit trail.
Overview
- Each memo belongs to its author and is attached to one instance.
- A memo can be instance-level or anchored to a text selection
(character offsets), shown with a
quotebadge. - Memos persist immediately and survive navigating away and back.
- Memos are stored in the universal project database
(
<task_dir>/project.sqlite), not in the annotation JSON files.
Configuration
annotation_ui:
memos: true # enable the Notes sidebar
visibility: private # default visibility for new memos: private | shared
| Option | Default | Description |
|---|---|---|
annotation_ui.memos |
off in standard mode; on when qda_mode.enabled or solo_mode.enabled |
Shows the Notes sidebar and enables /api/memos. |
annotation_ui.visibility |
private |
Default visibility selected in the composer. |
When disabled the /api/memos endpoints return 503 and no sidebar
toggle is shown — the standard annotation page is unchanged.
Visibility model
| Visibility | Author | Admin / adjudicator | Other annotators |
|---|---|---|---|
private |
✅ | ✅ (always) | ❌ |
shared |
✅ | ✅ (always) | ✅ |
- Admins/adjudicators can always read every memo regardless of visibility (oversight/QC).
- Only the author may edit a memo's body or visibility.
- The author or an admin/adjudicator may delete a memo (moderation).
Bias caution. Setting memos to
sharedlets annotators read each other's notes during labeling, which can anchor judgments and inflate apparent agreement. For inter-annotator-agreement studies, preferprivate(the default). Usesharedfor collaborative qualitative coding where shared context is desirable.
Using the sidebar
- Click the Notes toggle on the right edge of the annotation page.
- Type a note. Optionally select text in the instance first and tick "Attach to selected text" to anchor the memo to that span.
- Choose a visibility and click Add note.
- Your own memos show Edit / Delete actions.
Exporting memos
The quotation_report exporter can include
memos for audit trails and qualitative deliverables:
python -m potato.export --config config.yaml \
--format quotation_report --output ./out/ \
--option include_memos=true
Memo rows appear with schema = "(memo)", code = <visibility>,
text = <memo body>, and offsets from the memo anchor when span-anchored.
Example
A runnable example is in examples/advanced/memos-example/:
python potato/flask_server.py start examples/advanced/memos-example/config.yaml -p 8000