paperspec0.1.0

The paperspec specification

This specification states exactly what each paperspec file holds and how every value in it is computed. The schemas, SQL, JSON-LD context, registries, vectors and fixtures are normative too, and each chapter says which of them it relies on. A chapter and a vector that disagree signal a bug, so please report it in the repository, https://git.scient.ing/infra/paperspec.

Two readers will get the most from it: implementers who build a reader, writer, converter or checker, and experts who want the precise rules. Newcomers should start with the guides, which explain what the formats are for. This text assumes you know why and tells you how.

Reading paths#

Find the row for the job you are doing and read its chapters after those in the first row. Chapter numbers are those in the table below.

If you are writingRead
Anything at all0, 1, 3, 4 and 5: introduction, conventions, nodes, identity and the content values.
A reader of packagesThen 2, 6, 7 and 12: the model, anchors, geometry and the package.
A converterThen 9, 10 and 11: figures and tables, references, and corrections with the gate.
A store or a serverThen 8, 13, 14 and 23: receipts, the database form, rights, and the transparency log.
A writer or reader of annotation, teaching or data filesThen 15 to 21.
A validatorChapter 22, with registry/rules.json.

Chapters#

ChapterSubject
0. IntroductionScope, conformance, versions and status, and how the repository is arranged
1. Shared conventionsCanonical JSON, numbers, hashes, normalization, offsets, times, determinism, IDs, keys, files and prose
2. Works, versions, witnesses and documentsThe four objects; document.json and witnesses.json
3. NodesNodes, their kinds and children, content, attributes, inline runs and the plain projection
4. IdentityMinting IDs, permanence, retirement, aliases, ids.jsonl, store-qualified names and record IDs
5. Content valuesThe five content values, the projections, alignment, suspects, keyed hashes and the metadata hash
6. Addresses and anchorsAddresses, anchors and the five resolutions, with drift
7. GeometryPage fingerprints, stamp rules, pages.jsonl and locations.jsonl
8. Fidelity, receipts and spot-checksFidelity levels, receipts, signatures, Merkle roots, the roster, revocations, spot-checks and error bounds
9. Figures, tables and equationsFigures, panels, tables, cells and equations
10. References and citationsReference nodes, references.jsonl and its resolutions, and sentence-level citations
11. CorrectionsCorrections and the gate
12. The packageThe files of a package, paths, manifest, provenance, text policies and assets
13. The database form and the bundleThe database form and the SQLite bundle
14. RightsRights records, policies, stages and backends
15. DatasetsFrictionless Data Packages with units, uncertainty and origin; anchors.jsonl; content hash
16. Digitization recordsHow values were read off a figure panel: target, axes, series, method, verification and confirmation
17. ViewsVega-Lite specifications that pin their data, and optional computations
18. Layers and annotationsLayers and annotations
19. Exercises, submissions and gradesExercises, submissions and grades
20. ProjectsMembers and roles, documents, reading paths, held layers, datasets, views and drafts, and settings
21. DraftsDrafts: snapshots and sentence-ID sidecars
22. ConformanceConformance, the suite and the rule catalog
23. The transparency logA team's log of receipts, revocations and rosters, its checkpoints, and what it settles

Source: spec/README.md · raw