Skip to main content

KG-SSOT

A verifiable knowledge graph: every claim says where it came from, when it was verified, and what depends on it. Your CI rejects the claims that don't.

This package ships the formal KG-SSOT contract and the tools that enforce it:

  • the reference reader, which checks a .kg.yaml or .kg.json graph against the contract at two levels: MUST, which fails, and SHOULD, which warns;
  • the conformance suite, as plain data, that every reader must pass;
  • the per-graph gate for CI, with a ratchet: existing debt stays named and can't get worse;
  • the store, which only writes what passes the contract;
  • the reference MCP server, which gives a model the contract and the store over stdio or local HTTP;
  • the domain vocabulary, with the source and verification date of each synonym, exported to SKOS-XL and Apache Ossie;
  • the provenance exporter to PROV-O in JSON-LD.

The contract, the suite, and the verdict schema ship inside the package. The reader depends on no agent harness. It needs Python 3.11 or later, PyYAML, and jsonschema.

Install

pip install kg-ssot

To run the commands without installing them into your environment, use pipx install kg-ssot or uvx --from kg-ssot kg-validate.

Quickstart

Check your graphs against the current contract:

kg-validate graph.kg.yaml other.kg.json
PASS graph.kg.yaml
FAIL other.kg.json
  MUST   form.range.node.impact ×1 · integrity.orphan-node ×1
· 2 files; 1 pass the MUST; 0 with a SHOULD warning (kg-contract-v4.schema.json + kg-contract-v4.should.schema.json)

The exit code is 0 when every file passes the MUST, 1 when any file fails, and 2 on broken input. Two useful modes:

  • kg-validate --where shows the node or edge of each occurrence and, for a MUST occurrence that has a canonical fix, the fix right below it;
  • kg-validate --format json returns the structured verdict (code, path, line, message, and hint) in the versioned kg-ssot.verdict/1 format.

Run the bundled conformance suite against the reference reader:

kg-conformance | tail -2
latest: 438/438 (gates the rc)
optional: 10/24 (report only)

Only latest/ sets the exit code. The optional/ cases are reported and never change it.

Commands

Command What it does
kg-validate Checks .kg.yaml and .kg.json graphs against the current contract
kg-conformance Runs the bundled conformance suite against the reference reader
kg-gate Per-graph gate for CI: records a baseline (--update) and fails if anything gets worse
kg-store A store on disk, in git, or versioned, that only writes what passes the contract
kg-mcp (and the kg-ssot alias) Reference MCP server (stdio, or --http on loopback) with the tools kg_validate, kg_write, kg_get, kg_list, kg_query, kg_terms, kg_history, kg_delete, and kg_schema_help
kg-query Queries and projects a corpus of graphs, with edges resolved to their labels
kg-diff Diff by id between two graphs or between git revisions
kg-vocab The domain vocabulary (the x_term profile): lists the terms and what is due, resolves a text to its term, and exports to SKOS-XL and Apache Ossie
kg-criterion The pre-registered criterion: prints the sha256 of a criterion version and checks each version against its text or file, and each citation of another graph
kg-prov-export Exports each node's provenance as prov:Entity and prov:Derivation in JSON-LD

As a library, the modules live under kg_ssot: kg_ssot.kg_validate, kg_ssot.kg_store, kg_ssot.kg_mcp, and the rest.

MCP server

kg-mcp --root ./graphs --init
uvx kg-ssot --root ./graphs --init   # the same server, no install: kg-ssot is an alias for kg-mcp

The server speaks MCP over stdio. With --http PORT, it serves HTTP on loopback (127.0.0.1) by default, with no TLS. To listen beyond loopback, you need --allow-remote plus a shared secret (--secret-env), and you still put a proxy that handles TLS in front of it.

Package or vendor

Use the package to run the reader as a library, a command, or an MCP server. For the gate in a repository's CI, the recommended channel is still vendoring by tag: kg_vendor.py brings the release into your repository and verifies the sha256 of every file. That way, the contract that judges your graph shows up in your diff. The adoption guide covers both paths.

Documentation

License

Apache-2.0. See LICENSE and NOTICE.

Documentação em português: README.pt-BR.

Metadata

Release files for kg-ssot 4.21.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kg-ssot 4.21.0
File Size Uploaded Provenance
kg_ssot-4.21.0.tar.gz 261.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kg-ssot 4.21.0
File Interpreter ABI Platform
kg_ssot-4.21.0-py3-none-any.whl Python 3 none any Details

Total release size: 809.2 kB

Release files / kg_ssot-4.21.0.tar.gz

Download URL kg_ssot-4.21.0.tar.gz
Size 261.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aadc7d898b26a216859461dc7ecf631aaabfb959b3630689dc1870fae3aac9a7
BLAKE2b-256 checksum
How to use checksums
e67710c57ca6fdd4bf9f2176cf1c2b0d03d06a6f44781852866fb744de69699b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / kg_ssot-4.21.0-py3-none-any.whl

Download URL kg_ssot-4.21.0-py3-none-any.whl
Size 547.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e06edadcf084fcf7e230e663175202491423c5b8c89c181950ed791340c81fd
BLAKE2b-256 checksum
How to use checksums
e1c9b1f7871a5ea1094a096941360f51716367f9949fc1c376142495ff93851f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for kg-ssot 4.21.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kg_ssot-4.21.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page