feat: comment categories; emend, relink and resolve corrections

scienting-layer/1: an optional, fixed category on comment, caveat and
question bodies (comment, context, critique, question, correction,
feedback, resource).

Corrections: emend fixes the authors' own slip and keeps what was printed
(a run's printed), never lowering fidelity or a witness match; relink sets
or removes what a citation names; resolve sets a reference's resolution.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017R7sgDNvUGWY2zFPCq2JH6
This commit is contained in:
alexmandClaude committed 2026-10-17 06:17:10 -04:00
1 parent 4d59b29b63
commit 8b5ee87275
33 files changed
+726 -80

No files matched your search

+4 -1
View File
@@ -212,7 +212,9 @@ Every fix is a correction: an operation with its evidence, its author and a reas
```
A document's history is its first reading plus its corrections, and its revision is the index of the last one.
The operations are `replace`, `insert`, `delete`, `split`, `merge`, `move`, `reclassify`, `relabel` and `set`.
The operations are `replace`, `insert`, `delete`, `split`, `merge`, `move`, `reclassify`, `relabel`, `set`, `emend`, `relink` and `resolve`.
A `replace` fixes what the converter misread; an `emend` fixes a typo the authors printed, and keeps the printed text, so the sentence still agrees with the PDF and keeps its level.
A `relink` changes which references a citation names, and a `resolve` what a reference resolves to.
Evidence is a crop (an image of the page region), a witness, a source file by SHA-256, or a named person.
A gate refuses any correction that would change a digit without a crop of the page as evidence, or that would let a digit change anywhere it did not declare.
@@ -371,6 +373,7 @@ A statement true independently of the paper is a claim, which is checked and lev
A statement about reading the paper belongs in a layer, where it is attributed and signed and not checked.
Claims are not defined in this repository.
A comment, caveat or question also says what it is about with a `category` from a fixed list: a general `comment`, `context`, a `critique`, a `question`, a `correction` of an error in the paper, `feedback` for the authors, or a `resource`.
Model-written text is always a `generated` annotation, never source, and a model's annotation stays `proposed` until a person confirms it.
Whether a generic Web Annotation client displays an `AnchorSelector` has not been tested; the fallback exists so that it can still use the quote.
Layers are `candidate`.