# Ein Manifest in 15 Minuten

> Vom leeren Editor zu einem Manifest, das die erste Prüfstufe besteht, und dem Weg, es einzureichen.


Am Ende dieses Tutorials haben Sie ein Manifest für eine Datenquelle geschrieben, es gegen das datierte JSON-Schema geprüft und wissen, was danach geschieht. Sie brauchen einen Texteditor, Rust (stable über rustup) und Git; alle Befehle laufen aus der Wurzel des Korpus-Checkouts.

## 1. Was ein Manifest ist

Ein Manifest ist gewöhnliches JSON in genau einer normierten Gestalt: ein Profil auf DCAT-AP-CH mit der AI-Interface-Erweiterung, dank JSON-LD-Kontext zugleich sauberes RDF. Neun Felder sind Pflicht; die Referenz [Manifest-Standard](../reference/manifest-standard.md) nennt sie Feld für Feld.

## 2. Die Datei anlegen

Legen Sie eine Datei an, deren Name der Slug Ihrer Kennung ist, zum Beispiel `meine-quelle.json`. Der Inhalt ist das geparkte Manifest des Vereins, gekürzt auf die Pflichtfelder plus `tier` und `probe`; ersetzen Sie Kennung, Titel, Herausgeber, Lizenz und Endpunkt durch Ihre Angaben. Der Befehl legt die Datei an, wie sie hier steht:

```bash
cat > meine-quelle.json <<'EOF'
{
  "$schema": "https://ld.openhelvetia.swiss/ns/manifest/schema/2026-08-15/manifest.schema.json",
  "@context": "https://ld.openhelvetia.swiss/ns/manifest/v1",
  "@id": "https://ld.openhelvetia.swiss/registry/meine-quelle",
  "@type": "Manifest",
  "title": {
    "de": "Meine Quelle — SPARQL-Zugang",
    "en": "My source — SPARQL access"
  },
  "publisher": "https://ld.openhelvetia.swiss/org/meine-organisation",
  "license": "https://dcat-ap.ch/vocabulary/licenses/terms_open",
  "interfaces": [
    {
      "@type": "SparqlInterface",
      "endpoint": "https://example.org/sparql",
      "auth": {
        "authType": "none"
      },
      "tier": "base",
      "probe": {
        "kind": "sparql-ask",
        "expect": "boolean"
      }
    }
  ],
  "issued": "2026-09-02"
}
EOF
```

Die Datei steht in der kanonischen Form des Standards (feste Schlüsselreihenfolge, zwei Leerzeichen, LF); eine andere Formatierung meldet die zweite Prüfstufe als Fehler, und `--write` stellt sie her. Drei Dinge gehen hier oft schief: `@context` ist genau ein String, kein Array; `title` ist eine Sprach-Map, kein String; `license` ist eine IRI, kein Name.

## 3. Gegen das Schema prüfen

Die erste der vier Prüfstufen können Sie selbst laufen lassen. Das datierte Schema ist öffentlich; jeder Validator für JSON Schema 2020-12 genügt. Mit dem Prüfwerkzeug des Vereins aus dem Checkout:

```bash
cargo run --locked --manifest-path registry/standard/oh-validate/Cargo.toml -- registry/standard/schema/manifest.schema.json meine-quelle.json
```

Erwartete Ausgabe bei Erfolg:

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

Ein unbekannter Schlüssel ist ein Fehler, keine Warnung. Die Meldung nennt den Pfad im Dokument.

## 4. Die weiteren drei Stufen

JSON-LD-Roundtrip, SHACL-Shapes und der Gesamtgraph laufen beim Verein, als Gate vor jeder Änderung am Register. Sie können sie lokal mitlaufen lassen:

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

Die Stufen sind in [So wird geprüft](../reference/manifest-standard.md#so-wird-geprueft) beschrieben.

## 5. Einreichen

Ins Verzeichnis führt einer von drei Wegen; die Anleitung [Die drei Aufnahmewege](../how-to/admission-routes.md) beschreibt sie. Heute heisst das: Manifest und Erklärung in Schriftform an die Kontaktadresse des Vereins. Eine Bearbeitungsfrist nennt diese Seite nicht; keine ist beschlossen.

## Was Sie jetzt haben

Ein Manifest, das die erste Prüfstufe besteht, und die Befehle für die übrigen drei. Weiter: [Das Verzeichnis maschinell lesen](../how-to/read-the-directory.md), um zu sehen, wie Ihr Eintrag später ausgeliefert wird.

---

Quelle: docs/de/tutorials/manifest-in-15-minutes.md
