feat: zipped packages, target set, checklists, audit fixes and a stress test

Features for the next six months (accessible HTML export, paperpack and
Lode on packages, the personal bundle):

- Zipped packages: the oracle writes and reads `.sct.zip` archives under
  the rules of spec/12 §12.2; validate.py and load.py accept them; a
  byte-identical zip of the tiny package joins the fixtures, and two
  broken archives (traversal, symbolic link) join fixtures/invalid.
- The target set of targeted F3 (spec/08 §8.10) is computed by the
  oracle and pinned by vectors/targets.jsonl under each digit rule; the
  rule now covers cells as well as sentences and the leaves of anchored
  containers, and defines a node's section.
- scienting-checklist/1 (provisional): a conformance check of an export,
  covered by a receipt as ["checklist", id, hash] (spec/08 §8.11), with a
  WCAG 2.1 AA fixture and its receipt.
- QA reports are signed like receipts (spec/08 §8.9).
- A `description` annotation body with role alt or long, so an
  accessible export can find a confirmed figure description; the layer
  fixture carries one, and the store's body-kind constraint allows it.
- scienting-spot-check/1, the seed payload, is registered with a schema.
- exercise, submission and grade are provisional until a course has
  used them.

Audit fixes, each with a vector or a broken package where one was
missing:

- Folder packages: symbolic links are refused on validate and load,
  manifest paths must not collide under case folding, listed files are
  matched by exact name, files are hashed in chunks under a size limit.
- Files are compared byte for byte, so CR LF, a byte order mark, NaN,
  a lone surrogate or invalid UTF-8 is refused instead of translated;
  integers beyond 2^53 are read as doubles, as canonical JSON writes them.
- Receipts: signature.key must equal by and the key must be valid when
  signed; a qa receipt's nodes must be the sample at the original's
  hashes, its scope must name qa.of, its errors must be sampled nodes;
  statuses are computed once, iteratively, so chains of spot-checks
  hundreds deep settle; Base64 and manifest shape errors become refusals
  instead of tracebacks; counts and the fidelity of roster-less packages
  are recomputed.
- The gate enforces rule 11 of spec/11 §11.4: changed nodes are
  validated against the node schema and the references between nodes
  are checked, so a set to a bad value, an insert with unknown
  properties or a delete of a referenced header cell is refused; a
  relabel to null drops the label; a reclassify drops foreign
  attributes; a split strips whitespace across runs; ids.jsonl order
  follows spec/04 §4.4 in every state; a move after itself is refused.
- Anchors: the relabel rule requires that nothing else changed below the
  node; an alias chain ending in a deletion no longer crashes resolve.
- Notation: a script after an empty group applies to the previous atom
  ({}^{14}C); letters are defined by Unicode block in spec/05 §5.4 and
  the oracle; \left) is complex.
- Page fingerprints delete whitespace before folding, so "10 -20" and
  "10-20" fold alike (spec/07 §7.1).
- Grades are summed with exact decimals; the reviewer error bound is
  computed with integer arithmetic.
- receipts and revocations are keyed by (doc_key, id) in SQL, since one
  revocation may be carried by several packages.

Checking:

- tools/stress.py: seeded randomized property tests over canonical JSON,
  normalization, notation, random correction walks, anchor resolution,
  Merkle roots, spot-check samples, error bounds, fingerprints, mutated
  archives and packages, rights and spot-check chains; CI runs it.
- check.py verifies every count and version the prose states against
  the repository, the zipped fixture and crafted archives, the checklist
  coverage, and nine more broken packages.
- CONTRIBUTING.md gains a release checklist.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
alexmandClaude committed 2026-10-14 20:07:22 -04:00
1 parent 8c8b51cc3f
commit ea0a7efa78
142 files changed
+2312 -268

No files matched your search

+5 -4
View File
@@ -1,9 +1,10 @@
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"audience":"novice","format":"text/markdown","kind":"gloss","language":"en","type":"TextualBody","value":"A *harmonic* term treats a bond like a spring: the energy grows with the square of the stretch."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/x0abag88jjq4t","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"describing","receipt":"fdfbqrwwd2w3w","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"sxgcc9h","node_hash":"76e06b4811a688357ac4b912172283463cfaf1b7a1f0795d274fc733a2309ba7","own_hash":"2d7df7b8b233eab6f96d5db0d29c99062aaa94b55cf4e388c49b9995ce7548d5","quote":{"exact":"bond force constant","prefix":"rm{eq}})^2$$ where $K_r$ is the ","suffix":" and $r_\\mathrm{eq}$ the equilib"},"rev":12,"span":[111,130],"store":"smithlab"},"type":"AnchorSelector"},{"exact":"bond force constant","prefix":"rm{eq}})^2$$ where $K_r$ is the ","suffix":" and $r_\\mathrm{eq}$ the equilib","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"claim-link","pin":"illustrative-pin","role":"states","source":"lode:amber/k-bond","type":"SpecificResource"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/xbwf8p70398mp","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"linking","receipt":"fdfbqrwwd2w3w","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"sxgcc9h","node_hash":"76e06b4811a688357ac4b912172283463cfaf1b7a1f0795d274fc733a2309ba7","own_hash":"2d7df7b8b233eab6f96d5db0d29c99062aaa94b55cf4e388c49b9995ce7548d5","quote":{"exact":"The bond energy is given by $$E_{\\mathrm{bond}} = \\frac{1}{2} K_r (r - r_{\\mathrm{eq}})^2$$ where $K_r$ is the bond force constant and $r_\\mathrm{eq}$ the equilibrium bond length."},"rev":12,"store":"smithlab"},"type":"AnchorSelector"},{"exact":"The bond energy is given by $$E_{\\mathrm{bond}} = \\frac{1}{2} K_r (r - r_{\\mathrm{eq}})^2$$ where $K_r$ is the bond force constant and $r_\\mathrm{eq}$ the equilibrium bond length.","prefix":"","suffix":"","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"audience":"novice","format":"text/markdown","kind":"gloss","language":"en","type":"TextualBody","value":"A *harmonic* term treats a bond like a spring: the energy grows with the square of the stretch."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/x0abag88jjq4t","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"describing","receipt":"q1mqaaps430at","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"sxgcc9h","node_hash":"76e06b4811a688357ac4b912172283463cfaf1b7a1f0795d274fc733a2309ba7","own_hash":"2d7df7b8b233eab6f96d5db0d29c99062aaa94b55cf4e388c49b9995ce7548d5","quote":{"exact":"bond force constant","prefix":"rm{eq}})^2$$ where $K_r$ is the ","suffix":" and $r_\\mathrm{eq}$ the equilib"},"rev":12,"span":[111,130],"store":"smithlab"},"type":"AnchorSelector"},{"exact":"bond force constant","prefix":"rm{eq}})^2$$ where $K_r$ is the ","suffix":" and $r_\\mathrm{eq}$ the equilib","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"claim-link","pin":"illustrative-pin","role":"states","source":"lode:amber/k-bond","type":"SpecificResource"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/xbwf8p70398mp","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"linking","receipt":"q1mqaaps430at","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"sxgcc9h","node_hash":"76e06b4811a688357ac4b912172283463cfaf1b7a1f0795d274fc733a2309ba7","own_hash":"2d7df7b8b233eab6f96d5db0d29c99062aaa94b55cf4e388c49b9995ce7548d5","quote":{"exact":"The bond energy is given by $$E_{\\mathrm{bond}} = \\frac{1}{2} K_r (r - r_{\\mathrm{eq}})^2$$ where $K_r$ is the bond force constant and $r_\\mathrm{eq}$ the equilibrium bond length."},"rev":12,"store":"smithlab"},"type":"AnchorSelector"},{"exact":"The bond energy is given by $$E_{\\mathrm{bond}} = \\frac{1}{2} K_r (r - r_{\\mathrm{eq}})^2$$ where $K_r$ is the bond force constant and $r_\\mathrm{eq}$ the equilibrium bond length.","prefix":"","suffix":"","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"comment","type":"TextualBody","value":"The step size matters more than the text admits."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/psdmtnbz2q7v0","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"commenting","status":"proposed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"eajq93t","node_hash":"42b1de7852cdc68730984fff789fe248ecd5b43198c0e7d671931ff3fe561dc3","own_hash":"4dc28d1ad57c74d044f87264dfbc744ae9d5e9644638db976dbc346361442486","quote":{"exact":"steps of 0.01","prefix":"Each bond was scanned in ","suffix":" Å around its minimum, and the e"},"rev":12,"span":[25,38],"store":"smithlab"},"type":"AnchorSelector"},{"exact":"steps of 0.01","prefix":"Each bond was scanned in ","suffix":" Å around its minimum, and the e","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"for":"group","kind":"question","type":"TextualBody","value":"Why fit to a scan first and to frequencies second?"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/e5g07csx02bfg","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"questioning","status":"proposed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"section","node":"f0tj6ca","node_hash":"8acfa263e93dcee504efbfcd328fb69b81f4d71e97b921fa8da664a541e722ff","own_hash":"c3d50f266b05d7889c001aef16662cecd4e99ac4a2747ec331c1044e6adc8e3e","rev":12,"store":"smithlab"},"type":"AnchorSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"citation-context","reason":"value","reference":"b3g86a4","type":"TextualBody","value":"Cited for the band position; the reference is not in the library.","verdict":"cannot-tell"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/b1ge58mqmp2xy","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"assessing","status":"proposed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"f929eq9","node_hash":"cd6cdb032e9b8ab712790b7181f794f6e363b7c4c96888049b59c671c1596369","own_hash":"d5b2ebdc96010fd8fc83abcbec9e5c2340bf766997a485f11f2dae49d0d2dd4c","quote":{"exact":"1595","prefix":" case, with a bending band near ","suffix":" cm⁻¹.2"},"rev":12,"span":[71,75],"store":"smithlab"},"type":"AnchorSelector"},{"exact":"1595","prefix":" case, with a bending band near ","suffix":" cm⁻¹.2","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"generator":{"model":"example-model","run":"illustrative-run-1"},"kind":"generated","type":"TextualBody","value":"Two panels: an energy scan and its fit residual."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:software:example-model","name":"A model (illustrative)","type":"Software"},"id":"urn:scienting:annotation:smithlab/yc4zpbf0b780r","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"describing","status":"proposed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"figure","node":"ajfvq4s","node_hash":"f76864779843485fa9e2f3cc3cd1c76ad222e1649c56f4cface33bf20b8f33b6","own_hash":"a1e46cb40201a17903dfd6f128db1e707b0e9f5bf45fcc32ec7ca772011edeae","rev":12,"store":"smithlab"},"type":"AnchorSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"exercise":{"exercise":"anchor","format":"scienting-exercise/1","key":{"elements":[{"anchors":[{"context":{"column_path":["Set A","$K_r$ (kcal mol⁻¹ Å⁻²)"],"row_path":["Bond parameters","CT–CT"],"table_label":"Table 1"},"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"cell","node":"nkm3xn5","node_hash":"21f13b21948078f64c564334e5bb180b4495edb25a79ae32aa967986a626f3d5","own_hash":"2937e2a6f14cfebd4ffd20e3d514e5cbbf0626a5c0089b7cbea817ef20782b3d","quote":{"exact":"310.0"},"rev":12,"store":"smithlab"}],"feedback":{"hit":"That is the cell.","miss":"Look in Table 1, row CT–CT."},"points":"1"}]},"prompt":"Find the table cell that gives the Set A bond constant for the CT–CT bond.","rule":{"match":"same-node"}},"kind":"exercise","type":"TextualBody","value":"Find the table cell that gives the Set A bond constant for the CT–CT bond."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/h6s98vg6qcyjp","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"assessing","receipt":"fdfbqrwwd2w3w","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"table","node":"gm5z4rx","node_hash":"999777484c58cf3646eabb6df3e559369a1b081ec4f337d621dade1bf241f339","own_hash":"b56ce0ab4b480c4c43b11ca2eaca410c60fed73341d53896d509e30eabf54477","rev":12,"store":"smithlab"},"type":"AnchorSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"exercise":{"exercise":"check","format":"scienting-exercise/1","key":{"elements":[{"anchors":[{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"mbtjsqv","node_hash":"97c328c2e2efedd931292eeda806d3e4bad14d67cfcc324537c0d993068cfbfc","own_hash":"c1c6019d21c26d790304f7f7a080e93cf507d0e22ebeec6bf2e7df19a1820b3b","quote":{"exact":"the most common description","prefix":"Harmonic bond terms remain ","suffix":" of covalent stretching in class"},"rev":12,"span":[27,54],"store":"smithlab"}],"points":"1"}],"verdict":{"points":"1","value":"supports"}},"prompt":"Does the cited passage support the claim that harmonic terms are the most common choice?","rule":{"match":"overlap","min_overlap":"0.5"}},"kind":"exercise","type":"TextualBody","value":"Does the cited passage support the claim that harmonic terms are the most common choice?"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/y228zv031s285","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"assessing","receipt":"fdfbqrwwd2w3w","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"mbtjsqv","node_hash":"97c328c2e2efedd931292eeda806d3e4bad14d67cfcc324537c0d993068cfbfc","own_hash":"c1c6019d21c26d790304f7f7a080e93cf507d0e22ebeec6bf2e7df19a1820b3b","quote":{"exact":"Harmonic bond terms remain the most common description of covalent stretching in classical force fields.1"},"rev":12,"store":"smithlab"},"type":"AnchorSelector"},{"exact":"Harmonic bond terms remain the most common description of covalent stretching in classical force fields.1","prefix":"","suffix":"","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"exercise":{"exercise":"anchor","format":"scienting-exercise/1","key":{"elements":[{"anchors":[{"context":{"column_path":["Set A","$K_r$ (kcal mol⁻¹ Å⁻²)"],"row_path":["Bond parameters","CT–CT"],"table_label":"Table 1"},"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"cell","node":"nkm3xn5","node_hash":"21f13b21948078f64c564334e5bb180b4495edb25a79ae32aa967986a626f3d5","own_hash":"2937e2a6f14cfebd4ffd20e3d514e5cbbf0626a5c0089b7cbea817ef20782b3d","quote":{"exact":"310.0"},"rev":12,"store":"smithlab"}],"feedback":{"hit":"That is the cell.","miss":"Look in Table 1, row CT–CT."},"points":"1"}]},"prompt":"Find the table cell that gives the Set A bond constant for the CT–CT bond.","rule":{"match":"same-node"}},"kind":"exercise","type":"TextualBody","value":"Find the table cell that gives the Set A bond constant for the CT–CT bond."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/h6s98vg6qcyjp","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"assessing","receipt":"q1mqaaps430at","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"table","node":"gm5z4rx","node_hash":"999777484c58cf3646eabb6df3e559369a1b081ec4f337d621dade1bf241f339","own_hash":"b56ce0ab4b480c4c43b11ca2eaca410c60fed73341d53896d509e30eabf54477","rev":12,"store":"smithlab"},"type":"AnchorSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"exercise":{"exercise":"check","format":"scienting-exercise/1","key":{"elements":[{"anchors":[{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"mbtjsqv","node_hash":"97c328c2e2efedd931292eeda806d3e4bad14d67cfcc324537c0d993068cfbfc","own_hash":"c1c6019d21c26d790304f7f7a080e93cf507d0e22ebeec6bf2e7df19a1820b3b","quote":{"exact":"the most common description","prefix":"Harmonic bond terms remain ","suffix":" of covalent stretching in class"},"rev":12,"span":[27,54],"store":"smithlab"}],"points":"1"}],"verdict":{"points":"1","value":"supports"}},"prompt":"Does the cited passage support the claim that harmonic terms are the most common choice?","rule":{"match":"overlap","min_overlap":"0.5"}},"kind":"exercise","type":"TextualBody","value":"Does the cited passage support the claim that harmonic terms are the most common choice?"},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/y228zv031s285","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"assessing","receipt":"q1mqaaps430at","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"sentence","node":"mbtjsqv","node_hash":"97c328c2e2efedd931292eeda806d3e4bad14d67cfcc324537c0d993068cfbfc","own_hash":"c1c6019d21c26d790304f7f7a080e93cf507d0e22ebeec6bf2e7df19a1820b3b","quote":{"exact":"Harmonic bond terms remain the most common description of covalent stretching in classical force fields.1"},"rev":12,"store":"smithlab"},"type":"AnchorSelector"},{"exact":"Harmonic bond terms remain the most common description of covalent stretching in classical force fields.1","prefix":"","suffix":"","type":"TextQuoteSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"description","language":"en","role":"alt","type":"TextualBody","value":"Energy along the C–C bond stretch (panel a) and the fit residual (panel b)."},"created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/dz7b0r84n38wp","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"describing","receipt":"q1mqaaps430at","status":"confirmed","target":{"selector":[{"anchor":{"doc":"hale2026harmonic","format":"scienting-anchor/1","kind":"figure","node":"ajfvq4s","node_hash":"f76864779843485fa9e2f3cc3cd1c76ad222e1649c56f4cface33bf20b8f33b6","own_hash":"a1e46cb40201a17903dfd6f128db1e707b0e9f5bf45fcc32ec7ca772011edeae","rev":12,"store":"smithlab"},"type":"AnchorSelector"}],"source":"urn:scienting:doc:smithlab/hale2026harmonic","type":"SpecificResource"},"type":"Annotation"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"body":{"kind":"comment","type":"TextualBody","value":"Agreed; see the residual panel."},"created":"2026-10-11T19:05:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"id":"urn:scienting:annotation:smithlab/r05bc2v6ve63x","layer":"urn:scienting:layer:smithlab/kp4m2x7q","motivation":"replying","status":"proposed","target":{"source":"urn:scienting:annotation:smithlab/psdmtnbz2q7v0","type":"SpecificResource"},"type":"Annotation"}
+1 -1
View File
@@ -1 +1 @@
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"audience":"student","created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"docs":["smithlab/hale2026harmonic"],"format":"scienting-layer/1","id":"urn:scienting:layer:smithlab/kp4m2x7q","label":"Smith lab reading of Hale and Osei","license":{"spdx":"CC-BY-4.0"},"project":"smithlab-charges","purpose":"Glosses, claim links and exercises for new students.","total":9,"type":"AnnotationCollection","visibility":"team"}
{"@context":["http://www.w3.org/ns/anno.jsonld","https://scient.ing/ns/scienting/1.jsonld"],"audience":"student","created":"2026-10-11T19:00:00Z","creator":{"id":"urn:scienting:key:ana","name":"Ana Example","type":"Person"},"docs":["smithlab/hale2026harmonic"],"format":"scienting-layer/1","id":"urn:scienting:layer:smithlab/kp4m2x7q","label":"Smith lab reading of Hale and Osei","license":{"spdx":"CC-BY-4.0"},"project":"smithlab-charges","purpose":"Glosses, claim links and exercises for new students.","total":10,"type":"AnnotationCollection","visibility":"team"}
+1 -1
View File
@@ -1 +1 @@
{"at":"2026-10-11T19:30:00Z","by":"ana","doc":"hale2026harmonic","evidence":[],"format":"scienting-receipt/1","id":"fdfbqrwwd2w3w","level":"F3","nodes":[],"records":[["annotation","h6s98vg6qcyjp","3cbe10d4ecdff3089a25f1b5ca5061e02201243e1bc4ccbe68a92e34a6b18b56"],["annotation","x0abag88jjq4t","7cbc20c779f95e25b2342a316ddf68750110782c0894e00d50dc3073ed5c980e"],["annotation","xbwf8p70398mp","1b0581890cdc337c30feb66baa7691ef2a599888b3df3c348d750e4072dbabd5"],["annotation","y228zv031s285","0eccd844df132a805887437e555e05428424fafa9eb3b2644a7f49a096442a09"]],"rev":12,"root":"fda3463d979d2272c491041e39081f18d8ed2d17affe330b0b58b4fde86106fc","scope":"targeted:layer","signature":{"key":"ana","scheme":"ed25519","value":"HqFlk7RXBLAScs/ANkCPbg7N9jT4KdQ60eCig4VLmbON4ke7//dMLGeaM5DRHpjZH/IIr895eAPS4Nd6YJSPCA=="}}
{"at":"2026-10-11T19:30:00Z","by":"ana","doc":"hale2026harmonic","evidence":[],"format":"scienting-receipt/1","id":"q1mqaaps430at","level":"F3","nodes":[],"records":[["annotation","dz7b0r84n38wp","f7a5af8530468fe4dc54dcca3f2f0cfbfe69db1a77855febdd1a2f3c69d46cfa"],["annotation","h6s98vg6qcyjp","3cbe10d4ecdff3089a25f1b5ca5061e02201243e1bc4ccbe68a92e34a6b18b56"],["annotation","x0abag88jjq4t","7cbc20c779f95e25b2342a316ddf68750110782c0894e00d50dc3073ed5c980e"],["annotation","xbwf8p70398mp","1b0581890cdc337c30feb66baa7691ef2a599888b3df3c348d750e4072dbabd5"],["annotation","y228zv031s285","0eccd844df132a805887437e555e05428424fafa9eb3b2644a7f49a096442a09"]],"rev":12,"root":"72e9d4780a5d61c54e54933e4c576d69f3f079de9901526554a2d381845e437c","scope":"targeted:layer","signature":{"key":"ana","scheme":"ed25519","value":"+foYjFFLJQDJe5a58u8eIEU9e8OCHa2YwOT2xxcwCOUhTXXIPbYGL3GrFhzi5XeftXab7AoKzs4jVNQcSrW4Bw=="}}