# Registry-Standard

> The manifest standard, schemas, ontology and context the directory stands on.

## What it does {#was}

The registry standard is the rulebook the directory stands on: a manifest profile over DCAT-AP-CH with an extension for AI interfaces, plus JSON Schema, a JSON-LD context, SHACL shapes and the oh: ontology. A manifest is plain JSON in exactly one normalized shape — down to the bytes: fixed key order, two-space indent, LF, trailing newline, so a git diff carries content and never style. The oh-validate tool runs four stages over the whole corpus: JSON Schema, a JSON-LD round trip against the vendored context, SHACL against the versioned shapes, and finally the merge of every document into one single graph with an RDFC-1.0 fingerprint and the critical invariants as SPARQL queries. Every processor runs offline on the vendored copies; a foreign IRI is refused rather than resolved. Two further gates hang off it: a seal register that turns any change to a contract artifact into a conscious act, and a coverage gate that proves every term the published artifacts emit is covered by the ontology. What the standard does not do: it admits nobody, measures nothing, and claims no binding force — v0.1 is a draft, normative only after ratification by the standards commission under Art. 13 of the statutes.


## Run it yourself {#betreiben}

**You need:**

- Rust (stable via rustup) and Git; every command runs from the root of the corpus checkout.

From the root of the corpus checkout, line by line:

```bash
cargo run --locked --manifest-path registry/standard/oh-validate/Cargo.toml -- registry/standard/schema/manifest.schema.json registry/standard/test-corpus --stage2 registry/standard/context/v1.jsonld --stage3 registry/standard/shapes/manifest-v1.ttl --stage4
```

Then you should see:

```text
checked 19 file(s): OK
```

The four validation stages over the test corpus, without network. The seal register is checked with: cargo run --locked --manifest-path registry/standard/seal/Cargo.toml -- --root registry/standard


## Test {#testen}

```bash
cargo test --locked --manifest-path registry/standard/oh-validate/Cargo.toml
```

- **Recorded fixtures:** `registry/standard/test-corpus`
- Runs without network: every answer comes from the repository, the result is the same every run.

## Call {#ansteuern}

- **Public:** *not yet* — The website is not yet served at openhelvetia.swiss; the artifacts ship with it under /ns/, byte-identical.
- **Local:** im Website-Build unter /ns/

### Contracts

- **Manifest schema (dated)** `registry/standard/schema/manifest.schema.json`
- **JSON-LD context** `registry/standard/context/v1.jsonld`
- **SHACL shapes** `registry/standard/shapes/manifest-v1.ttl`
- **Directory envelope v0.2** `registry/standard/directory.schema.json`
- **Seal register** `registry/standard/artifacts.json`

### Usage and options

```text
usage: oh-validate <manifest.schema.json> <file-or-dir>... [--stage2 <context/v1.jsonld>] [--stage3 <shapes/manifest-v1.ttl>] [--stage4] [--write]
```

## Contribute {#mitwirken}

Changes go through merge requests and the same gates as the association's own: formatting, Clippy without warnings, tests, seal and drift checks. Security reports, in confidence, to admin@openhelvetia.swiss.

The base tier costs nothing; what the operation lives on is under [About us, Financing](../../../about/financing/index.html).

## Module card {#steckbrief}

State, evidence, download and dependencies are on the infrastructure page: [Registry-Standard](../../../directory/building-blocks/registry-standard/index.html).

---

Source: generated from public/web/modules.json
