Policy Intelligence·2025·Built
    Policy Intelligence

    NormaGraph

    Policy reasoning as a structured graph, not prose

    PythonNeo4jLangChainFastAPIOpenAI APIPostgres (provenance)
    0.91
    Retrieval precision@8
    85%
    Conflict pairs flagged (eval)
    100%
    Citations grounded in graph (eval)
    3
    Avg. hops for decisions

    NormaGraph applies a Decision Graph abstraction to regulatory and policy corpora: deontic statements become typed nodes (obligation, prohibition, permission), actors and artifacts become entities, and cross-references become edges. Retrieval is orchestrated: vector search proposes candidates; graph constraints decide admissibility.

    This is not "RAG with extra steps." It is a system where meaningful inference requires structure—conflicts are detected by graph patterns, not by hoping an LLM notices contradictions in prose.

    Focus areas:

    • Structured extraction with human-in-the-loop validation for high-stakes clauses.
    • Conflict detection via constrained subgraph matching.
    • Traceable answers: every conclusion cites a path in the graph.
    The challenge

    Policy work fails when teams treat documents as flat text. Contradictions, scope, and exceptions hide in structure—footnotes, cross-articles, and superseding clauses.

    The challenge is to combine scalable ingestion with deterministic reasoning primitives so stakeholders can trust automated analysis.

    Approach
    1. Layout-aware parsing segments documents into hierarchy (parts, sections, clauses).

    2. Extraction to graph: Map clauses to normative atoms with provenance edges back to source spans.

    3. Hybrid retrieval: Embeddings narrow search; graph traversals enforce validity (jurisdiction, time, entity type).

    4. Conflict surfacing: Run pattern queries for incompatible obligations and rank by severity and evidence strength.

    System architecture
    Corpus
    Extraction
    Norm graph
    Vector index
    Graph reasoning
    Audit UI
    Input
    Process
    Model
    Storage
    Output
    Failure modes
    • 01

      Extraction errors poison the graph—human validation gates and confidence scores are mandatory.

    • 02

      Novel cross-jurisdictional interactions may be absent from training corpora—explicit unknowns over fake precision.

    • 03

      Graph size can explode—subgraph scopes and archival partitions keep queries tractable.

    Trade-offs
    • 01

      Chose symbolic graph reasoning over end-to-end neural QA for auditability.

    • 02

      Higher labeling burden during ingestion; lower risk downstream.

    • 03

      Conservative retrieval improves precision at the expense of recall on edge cases.

    Implementation details

    conflict_query.cypher

    Detect incompatible obligations on the same actor/action

    sql
    conflict_query.cypher
    sql
    1 
    Ownership

    Designed

    Defined the Decision Graph abstraction, extraction schema, and conflict-query library.

    Implemented

    Built Neo4j modeling, hybrid retrieval orchestration, and API surfaces for analysts.

    Scrapped

    Pure LLM chain-of-thought for legal conclusions—unacceptable without structural guarantees.