feat: rename to paperspec and add the website
- Rename manuspec to paperspec everywhere outside pixi.toml: prose, the tools, provenance tool names and the fixture key derivations, so every fixture and vector is rebuilt. - Move the namespace addresses under the site, mirroring the repository: schema $id https://paperspec.scient.ing/schemas/<file>, the JSON-LD context https://paperspec.scient.ing/context/scienting-1.jsonld, and term IRIs https://paperspec.scient.ing/vocab#<term>. Format identifiers (scienting-*) and URNs (urn:scienting:) are unchanged. - tools/site.py (standard library only) builds _site/: every file of the repository at its own path, each Markdown file rendered as a page with sidebar navigation, heading anchors matching the forge's, folder listings, a vocabulary page for the context's IRIs, a heading search and a 404 page; light and dark themes. - check.py builds the site and checks that every Markdown file has a page, every internal link and fragment resolves, no Markdown is left unrendered, and every $id, the context address and the vocabulary IRIs are files of the site. - deploy/: a Caddyfile with the media types and CORS the data needs, and a guide; .gitea/workflows/site.yml builds on main and publishes with rsync when the SITE_* secrets are set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
213 files changed
+1233
-386
No files matched your search
+3
-3
@@ -1,12 +1,12 @@
|
||||
# Schemas
|
||||
|
||||
This folder holds the JSON (JavaScript Object Notation) Schemas (draft 2020-12) for every file and record that the manuspec formats (manuspec is the specification this repository holds) define: 39 schema files.
|
||||
This folder holds the JSON (JavaScript Object Notation) Schemas (draft 2020-12) for every file and record that the paperspec formats (paperspec is the specification this repository holds) define: 39 schema files.
|
||||
A JSON Schema is a file, itself written in JSON, that states what a valid JSON file looks like.
|
||||
Newcomers can read it as a form: it lists the fields a record must have and what kind of value each field takes.
|
||||
Implementers will find the loading recipe and the traps under "Validating" and "Writing schemas".
|
||||
Experts will find the chapter and status of each format under "Which schema for which file" and "What a schema does not check".
|
||||
|
||||
Each schema's `$id`, its own address as a name, is `https://scient.ing/ns/schemas/<file>`.
|
||||
Each schema's `$id`, its own address as a name, is `https://paperspec.scient.ing/schemas/<file>`.
|
||||
Schemas refer to each other by those names, and a validator (a program that checks a file against a schema) that loads the whole folder resolves every reference.
|
||||
The `$id` base is normative and stays as it is.
|
||||
The `scienting-` prefix on format identifiers such as `scienting-anchor/1` is the formats' namespace, a separate matter from the repository's name.
|
||||
@@ -57,7 +57,7 @@ validator.validate(json.load(open("fixtures/records/anchor-span.json")))
|
||||
|
||||
It raises no error when run from the repository root, since `anchor-span.json` is a valid anchor.
|
||||
A schema refers to another by a relative name, and the `Registry` object resolves it.
|
||||
Here `anchor.schema.json` points to `common.schema.json#/$defs/key`, which a validator resolves against the `$id` above into `https://scient.ing/ns/schemas/common.schema.json`.
|
||||
Here `anchor.schema.json` points to `common.schema.json#/$defs/key`, which a validator resolves against the `$id` above into `https://paperspec.scient.ing/schemas/common.schema.json`.
|
||||
The `Registry` maps that name to the file's contents, so nothing is fetched over the network.
|
||||
`Draft202012Validator(schemas["anchor.schema.json"])` fails with `Unresolvable: common.schema.json#/$defs/key` when the `Registry` is missing.
|
||||
Never load a schema alone.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/anchor.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/anchor.schema.json",
|
||||
"title": "Anchor",
|
||||
"description": "scienting-anchor/1: a pinned address with context; spec/06-anchors.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/annotation.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/annotation.schema.json",
|
||||
"title": "Annotation",
|
||||
"description": "One line of annotations.jsonl in scienting-layer/1: a W3C Web Annotation; spec/18-layers.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/backend.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/backend.schema.json",
|
||||
"title": "Backend declaration",
|
||||
"description": "scienting-backend/1: a tool's code and weight licenses and their conditions; spec/14-rights.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/checklist.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/checklist.schema.json",
|
||||
"title": "Conformance checklist",
|
||||
"description": "scienting-checklist/1: a check of an export against a named standard, covered by a receipt; spec/08-fidelity.md §8.11.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/common.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/common.schema.json",
|
||||
"title": "Shared definitions",
|
||||
"description": "Definitions every scienting schema shares; spec/01-conventions.md.",
|
||||
"$defs": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/correction.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/correction.schema.json",
|
||||
"title": "Correction",
|
||||
"description": "scienting-correction/1: a line of corrections.jsonl, or a proposal; spec/11-corrections.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/dataset.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/dataset.schema.json",
|
||||
"title": "Dataset",
|
||||
"description": "datapackage.json of scienting-dataset/1: a Frictionless Data Package with units, uncertainty and origin; spec/15-datasets.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/digitization.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/digitization.schema.json",
|
||||
"title": "Digitization",
|
||||
"description": "scienting-digitization/1: how values were read off a figure panel; spec/16-digitization.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/document.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/document.schema.json",
|
||||
"title": "Document",
|
||||
"description": "document.json of a scienting-doc/1 package; spec/02-model.md and spec/12-package.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/draft-ids.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/draft-ids.schema.json",
|
||||
"title": "Draft sentence IDs",
|
||||
"description": "One line of a Typst project's ids.jsonl: scienting-draft-ids/1; spec/21-drafts.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/exercise.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/exercise.schema.json",
|
||||
"title": "Exercise",
|
||||
"description": "scienting-exercise/1: the body of an exercise annotation; spec/19-exercises.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/grade.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/grade.schema.json",
|
||||
"title": "Grade",
|
||||
"description": "scienting-grade/1: the grader's result for one submission; spec/19-exercises.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/id-entry.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/id-entry.schema.json",
|
||||
"title": "ID table entry",
|
||||
"description": "One line of ids.jsonl; spec/04-identity.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/layer.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/layer.schema.json",
|
||||
"title": "Layer",
|
||||
"description": "layer.json of scienting-layer/1: a W3C AnnotationCollection; spec/18-layers.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/location.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/location.schema.json",
|
||||
"title": "Location",
|
||||
"description": "One line of locations.jsonl; spec/07-geometry.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/manifest.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/manifest.schema.json",
|
||||
"title": "Package manifest",
|
||||
"description": "MANIFEST.json, scienting-package/1; spec/12-package.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/mathml.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/mathml.schema.json",
|
||||
"title": "Derived MathML",
|
||||
"description": "One line of derived/mathml.jsonl: MathML made by a pinned tool; never authoritative; spec/12-package.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/node.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/node.schema.json",
|
||||
"title": "Node",
|
||||
"description": "One line of nodes.jsonl; spec/03-nodes.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/page.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/page.schema.json",
|
||||
"title": "Page",
|
||||
"description": "One line of pages.jsonl; spec/07-geometry.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/policy.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/policy.schema.json",
|
||||
"title": "Team rights policy",
|
||||
"description": "scienting-policy/1: a signed decision that resolves unknown uses; spec/14-rights.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/profile.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/profile.schema.json",
|
||||
"title": "Team profile",
|
||||
"description": "scienting-profile/1: what backend conditions ask about a team; spec/14-rights.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/project.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/project.schema.json",
|
||||
"title": "Project",
|
||||
"description": "scienting-project/1: a team's curated set of documents and people; spec/20-projects.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/provenance.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/provenance.schema.json",
|
||||
"title": "Provenance",
|
||||
"description": "provenance.json of a package; spec/12-package.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/qa-report.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/qa-report.schema.json",
|
||||
"title": "QA report",
|
||||
"description": "scienting-qa-report/1: reviewer error bounds for a delivery; spec/08-fidelity.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/receipt.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/receipt.schema.json",
|
||||
"title": "Review receipt",
|
||||
"description": "scienting-receipt/1; spec/08-fidelity.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/reference.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/reference.schema.json",
|
||||
"title": "Reference record",
|
||||
"description": "One line of references.jsonl; spec/10-references.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/revocation.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/revocation.schema.json",
|
||||
"title": "Revocation",
|
||||
"description": "scienting-revocation/1; spec/08-fidelity.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/rights.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/rights.schema.json",
|
||||
"title": "Rights record",
|
||||
"description": "scienting-rights/1: a witness's license, basis and uses; spec/14-rights.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/roster.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/roster.schema.json",
|
||||
"title": "Roster",
|
||||
"description": "scienting-roster/1: the keys that may sign; spec/08-fidelity.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/runs.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/runs.schema.json",
|
||||
"title": "Inline runs",
|
||||
"description": "The runs of a sentence, cell, reference, authors or keywords node; spec/03-nodes.md.",
|
||||
"type": "array",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/snapshot.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/snapshot.schema.json",
|
||||
"title": "Draft snapshot",
|
||||
"description": "scienting-snapshot/1: the pinned claims, quotations and datasets a draft cites; spec/21-drafts.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/spot-check.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/spot-check.schema.json",
|
||||
"title": "Spot-check seed payload",
|
||||
"description": "scienting-spot-check/1: the payload a spot-check key signs to seed a sample; it names a receipt by its record hash and is never a file of its own; spec/08-fidelity.md §8.8.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/stages.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/stages.schema.json",
|
||||
"title": "Stage requirements",
|
||||
"description": "scienting-stages/1: the uses each stage needs; configuration, not code; spec/14-rights.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/stamps.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/stamps.schema.json",
|
||||
"title": "Stamp rules",
|
||||
"description": "scienting-stamps/1: download-stamp line rules for page fingerprints; spec/07-geometry.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/submission.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/submission.schema.json",
|
||||
"title": "Submission",
|
||||
"description": "scienting-submission/1: a student's answer, under a pseudonym; spec/19-exercises.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/suspect.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/suspect.schema.json",
|
||||
"title": "Suspect",
|
||||
"description": "scienting-suspect/1: a doubtful reading for review; spec/05-hashes.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/value-anchor.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/value-anchor.schema.json",
|
||||
"title": "Value anchor",
|
||||
"description": "One line of a dataset's anchors.jsonl: where one value came from; spec/15-datasets.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/view.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/view.schema.json",
|
||||
"title": "View",
|
||||
"description": "A Vega-Lite specification whose usermeta.scienting pins its data: scienting-view/1; spec/17-views.md.",
|
||||
"type": "object",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://scient.ing/ns/schemas/witnesses.schema.json",
|
||||
"$id": "https://paperspec.scient.ing/schemas/witnesses.schema.json",
|
||||
"title": "Witnesses",
|
||||
"description": "witnesses.json of a package; spec/02-model.md.",
|
||||
"type": "object",
|
||||
|
||||
Reference in new issue
Block a user