Ask for Rule 5.
Get Rule 5.

A retrieval layer that resolves section references exactly — hybrid semantic search only as fallback. Works with the parser you already use.

resolve "Rule 5"
query "Rule 5"
alias Rule 5§5Section V
node doc_4f2a/rule-5 (stable id)
children rule-5/5.1 rule-5/5.1a (subsections)
resolve EXACT ✓   semantic fallback SKIPPED

The failure mode

  • Vector search returns the section near the one you asked for — not the one you asked for.
  • Citations pin the wrong clause, so the answer looks sourced but isn't.
  • Your evals pass. Your users don't.

How it works

a

Index

POST a parsed doc or a raw PDF. Rule5 builds a section graph with stable IDs and every alias — Rule 5, §5, Section V — mapped to one node, and subsections (5.1, 5.1(a)) kept as children.

b

Query

Ask with a section reference or plain natural language. Same endpoint either way.

c

Resolve

Exact resolution wins deterministically. Semantic search runs only as fallback. Every response carries its resolution_path, so citations are auditable.

Example responses (v1 preview)

Illustrative output — v1 ships to founding users. Pre-rendered, not a live API.

query  "What does Article 17 require?"  — natural language

request
{ "doc_id": "gdpr_2016_679", "query": "What does Article 17 require?" }
response
{
  "resolved": {
    "node_id": "gdpr_2016_679/art-17",
    "label":   "Article 17 — Right to erasure ('right to be forgotten')",
    "match":   "exact",
    "aliases": ["Article 17", "Art. 17", "right to erasure"],
    "children": ["art-17/1", "art-17/2", "art-17/3"],
    "via":     ["nl-extract:Article 17", "alias:Art. 17"],
    "text":    "The data subject shall have the right to obtain from the controller the erasure of personal data concerning him or her without undue delay where ..."
  },
  "fallback_used": false,
  "resolution_path": ["query", "nl-extract→Article 17", "alias→art-17", "node:gdpr_2016_679/art-17"]
}

Founding access

First 20 seats

99 / year

€228/year (€19/mo) at launch

Not ready to pay? Waitlist →

Join the waitlist

No pitch. One email when v1 is live and when founding seats open.