feat: scienting-math/1 sources and derived/math.jsonl; lode references; stress fixes

Math content may say its source is in scienting-math/1's canonical TeX (form,
in no hash); derived/math.jsonl holds papermath's tree, symbols and issues,
and the validator now checks derived files. A symbol annotation names its
symbol by key; lode claim references use lode's tag and pin syntax. The zip
reader refuses entries zipfile cannot read, and checkpoint lines end in LF only.

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:44:28 -04:00
1 parent 8b5ee87275
commit 17880686fa
40 files changed
+750 -63

No files matched your search

+12 -3
View File
@@ -43,8 +43,8 @@ Replies are annotations that target annotations, so discussions are threads anch
| `kind` | W3C type | Adds | Says |
| --- | --- | --- | --- |
| `gloss` | `TextualBody` | `audience` | An explanation at `novice`, `student` or `expert` level. |
| `claim-link` | `SpecificResource` | `source` (`lode:<tag>`), `pin`, `role` | That the span `states`, `uses` or `disputes` a claim. |
| `symbol` | `SpecificResource` | `source`, `pin`, `symbol` | That this occurrence of a symbol is a symbol claim. |
| `claim-link` | `SpecificResource` | `source`, `pin`, `role` | That the span `states`, `uses` or `disputes` a claim. |
| `symbol` | `SpecificResource` | `source`, `pin`, `key`, `symbol` | That this occurrence of a symbol, the one whose key is `key`, is the symbol a symbol claim defines. |
| `comment` | `TextualBody` | `category` | A remark, opinion or interpretation. |
| `caveat` | `TextualBody` | `category` | A warning a reader should see. |
| `question` | `TextualBody` | `for`, `category` | A question for a `reader`, a `group` or the `authors`. |
@@ -58,6 +58,15 @@ Replies are annotations that target annotations, so discussions are threads anch
A textual body has a `value`, and optionally a `format` (`text/plain` or `text/markdown`) and a `language`.
The `source` of a `claim-link` or `symbol` body is a claim in a lode claim store, written as lode writes a reference: `lode:` and the claim's tag, eight Crockford base32 capitals (the digits and the letters without I, L, O and U), as in `lode:272XTX7C`, or `lode:<host>/<tag>` for a claim in another store, `<host>` being a domain name.
A tag never changes, while a claim's slug, such as `amber/k-bond`, may be renamed, so a slug is never a reference.
The optional `pin` fixes the claim as the annotator read it: the same reference, `@`, and the first six lowercase hex digits of the claim's statement hash, as in `lode:272XTX7C@02f47b`.
`common.schema.json` defines both, as `claimRef` and `claimPin`.
A `symbol` body names its symbol twice, as the target's span and by `key`, the symbol's key in the math form `scienting-math/1` ([9.4](09-figures-tables-equations.md#94-the-math-form)), which a claim store gives the symbol a symbol claim defines: `K_{r}` for a span `$K_r$`.
So a reader finds every occurrence of a symbol across a library by its key, however its source spaced or braced it, and a claim store matches the annotation to its claim without parsing the span.
The span is still required, since the key says which symbol and the span says where; `symbol`, optional, is the symbol as the span writes it.
A `comment`, `caveat` or `question` body MAY carry a `category`, which says what it is about, from a fixed list:
| `category` | Says |
@@ -77,4 +86,4 @@ The store's `annotations` table keeps the category beside the body's kind ([13.4
Nothing a model writes is ever stored as source text.
A model may propose a `description`, and like any annotation it stays `proposed` until a person confirms it; an accessible export uses confirmed descriptions only, and a figure with none has no description.
Other text a model writes about a span, such as a summary, is a `generated` annotation, which names its `generator`.
`fixtures/records/layer/` holds a layer with one annotation of each common kind, each comment, caveat and question with its category, and the receipt that confirms some of them.
`fixtures/records/layer/` holds a layer with one annotation of each common kind, each comment, caveat and question with its category, a claim link and a symbol that reference a lode claim and pin it, and the receipt that confirms some of them.