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:
33 files changed
+726
-80
No files matched your search
+9
-1
@@ -112,7 +112,10 @@ No other kind carries `attrs`, and each kind carries only its own attributes.
|
||||
| `link` | `url`, `text`. | The text. |
|
||||
| `equation` | `node`: the ID of an equation child of the sentence. | `$$` + that equation's source + `$$` |
|
||||
|
||||
Runs are canonical: no `text` run is empty, and no two adjacent `text` runs have the same style list.
|
||||
A `text`, `link`, `cite`, `xref` or `fnmark` run MAY carry `printed`: its text as the paper prints it, where an `emend` corrected the authors ([11.6](11-corrections.md#116-emendations)).
|
||||
The run's `text` is then the emended text, and only an emend writes `printed`.
|
||||
|
||||
Runs are canonical: no `text` run is empty, no two adjacent `text` runs have the same style list unless one of them carries `printed`, and no run's `printed` equals its `text`.
|
||||
A sentence's `equation` runs name its `equation` children, each once, in the children's order, and a sentence has no other children.
|
||||
A display equation the sentence runs through is thus part of the sentence, while keeping its own ID and hashes.
|
||||
|
||||
@@ -125,3 +128,8 @@ That of any other node is the plain projections of its text leaves joined with o
|
||||
A node's text leaves are found by walking its subtree in document order and stopping at `sentence`, `cell`, `reference`, `authors`, `keywords`, `code` and `algorithm` nodes, and at `equation` nodes whose parent is not a sentence; an `equation-line` is never a text leaf.
|
||||
|
||||
Offsets, quotations and the text hash are all defined on the plain projection as stored, before normalization.
|
||||
|
||||
A node's runs as printed are its runs with each run's `printed` in place of its `text`, and each `text` run that carried one joined with the adjacent `text` runs of the same style list, as the run was before an emend split it.
|
||||
Its projection as printed is the plain projection of its runs as printed; an equation's or a verbatim node's is its plain projection, and any other node's joins its text leaves' projections as printed with one U+0020.
|
||||
It is the text a witness of the paper holds, recovered from `nodes.jsonl` alone; for a node no emend touched it is the plain projection.
|
||||
The strict and lossy projections are taken over the runs as printed ([5.3](05-hashes.md#53-the-strict-projection)), and `projections.jsonl` gives an emended sentence's projections with its projection as printed.
|
||||
Reference in new issue
Block a user