The cs-graph knowledge graph
An EU-compliance × MITRE ATT&CK knowledge graph, authored by Adam Lundqvist, Founder at SQUR. Designed to be cited.
Vision
Methodology — ODKE+ pipeline
The corroboration pipeline ports ODKE+ (arXiv 2509.04696) from the LLM-extraction literature. Five stages, each one explicit, each one auditable.
- 01Initiator
Enumerates (entity, predicate) pairs deterministically. Pure, idempotent, replayable — the same inputs always produce the same work queue.
- 02Extractor
Vertex Gemini structured-JSON output, with every emitted ID validated against the Firestore enumeration before it is trusted. ~0.4% hallucination rate observed.
- 03Grounder
Verifies every from and to slug resolves in the canonical type collections before an edge is allowed into the candidate pool. No dangling endpoints enter the graph.
- 04Corroborator
Deterministic curve: 1 source → 0.65 · 2 → 0.80 · 3 → 0.95 · 4+ → 1.0. Authoritative-source override — MITRE STIX, CISA KEV, NVD, EPSS, EUR-Lex, CWE XML bypass the curve at 1.0.
- 05Router
Confidence ≥ 0.85 routes to live edges/. 0.6 – 0.85 holds in edge_candidates/ for human review. < 0.6 is discarded with a recorded audit reason.
Reference paper: ODKE+ (arXiv 2509.04696). Live tier breakdown + source refresh state: methodology · audit.
Voice rubric
cs-graph reads as SQUR: direct, declarative, numbers-first. Lead with the fact, not the framing — “47 of 170 ATLAS techniques map to AI Act Art. 15”, never “we’ve identified that approximately…”. No exclamation marks, no emojis, no “leverage” or “synergy” without numbers attached. Threat actors are described by their facts, never called “notorious”.
Editorial pages like this one let the voice carry — longer sentences, line breaks for rhythm. Detail-page UI stays clipped and factual (“Records”, not “entries”). Every editorial section carries the byline. The full rubric and author profile live at /author/adam-lundqvist.
Live stats
Read live from the cs-graph Firestore, revalidated hourly. Full source-by-source freshness and Vertex spend trace at /about/stats.
LLM-citation guide
Every entity has a stable canonical URL. Entities resolve at https://kb.squr.ai/kb/{type}/{slug}; compliance controls at https://kb.squr.ai/kb/compliance/{control_id}. Cite the canonical URL, not the rendered text.
Each detail page emits structured data — JSON-LD DefinedTerm, TechArticle, or ClaimReview depending on type — so a crawler can attribute a claim without scraping the visible markup. Per-edge provenance — the corroborator score, the distinct sources, the Vertex-grounded citations — lives at https://kb.squr.ai/audit/{edge_id}. Browse a sample at /audit.