{
  "kind": "documentation",
  "format": 1,
  "verified": "0.1.2",
  "note": "Reference text, not instructions. 20 problems relate solves, each mapped to the capability, the pages and recipes that cover it, a recommended data model where one applies, and the recorded run that verifies it (verify is null where no recorded run does yet). Generated from https://relatedb.ai/docs/concepts/problems-relate-solves/, whose section #<id> is each entry's citation; verified against relate 0.1.2. Intents are example phrasings, not an exhaustive list, and an empty match means the catalog has no entry, not that relate cannot do it.",
  "url": "https://relatedb.ai/docs/concepts/problems-relate-solves/",
  "capabilities": [
    {
      "id": "agent-memory",
      "title": "Agent memory",
      "problem": "Give an agent memory that survives restarts, which a later session can recall by meaning and by connection.",
      "capability": "A durable store the agent's process opens itself, with uniqueness constraints and `MERGE` for one node per entity, `SUPERSEDES` chains for corrections, and vector `SEARCH` for recall.",
      "intents": [
        "give my agent long-term memory",
        "remember facts across agent sessions",
        "persistent memory for an LLM agent",
        "store what the agent learned in a graph",
        "recall past conversations by meaning",
        "a memory layer for my chatbot agent"
      ],
      "surfaces": [
        "python",
        "node",
        "cli",
        "mcp",
        "agents",
        "cypher"
      ],
      "schema": {
        "title": "Recommended data model for agent memory: entities, the episodes that mention them, and facts with their evidence",
        "description": "An Episode MENTIONS the Entity nodes it names. A Fact is ABOUT one or more entities and comes FROM the Episode that is its evidence. A newer Fact SUPERSEDES the one it replaced in the same slot, so a correction keeps the history.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for agent memory: entities, the episodes that mention them, and facts with their evidence\n  accDescr {\n    An Episode MENTIONS the Entity nodes it names. A Fact is ABOUT one or more\n    entities and comes FROM the Episode that is its evidence. A newer Fact\n    SUPERSEDES the one it replaced in the same slot, so a correction keeps the\n    history.\n  }\n  Episode((\"<b>Episode</b><br/>id · session · at · text\")) -- \"<b>MENTIONS</b>\" --> Entity((\"<b>Entity</b><br/>key · name\"))\n  Fact((\"<b>Fact</b><br/>text · slot · embedding<br/>validFrom · validTo\")) -- \"<b>ABOUT</b>\" --> Entity\n  Fact -- \"<b>FROM</b>\" --> Episode\n  Fact -- \"<b>SUPERSEDES</b>\" --> Fact\n  class Entity l3\n  class Episode l2\n  class Fact l4"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-agent-memory-light.svg",
      "verify": {
        "ref": "agent-memory#recall",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#agent-memory",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/model-agent-memory/",
          "https://relatedb.ai/docs/get-started/agent-memory/",
          "https://relatedb.ai/docs/guides/integrations/langgraph/",
          "https://relatedb.ai/docs/guides/integrations/claude-agent-sdk/",
          "https://relatedb.ai/docs/guides/integrations/langchain/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/agent-memory/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/search/",
          "https://relatedb.ai/docs/reference/storage/formats/"
        ],
        "verify": "https://relatedb.ai/cookbook/agent-memory/#cell-recall"
      }
    },
    {
      "id": "tool-call-provenance",
      "title": "Tool-call provenance",
      "problem": "Find out which tool call wrote a fact in an agent's memory, which calls read it since, and what failed calls left behind.",
      "capability": "Each tool call recorded as a node in the same graph, by the same statement as the call, linked to every node it wrote or returned and guarded by `NODE KEY` and relationship property constraints.",
      "intents": [
        "audit what my agent wrote to memory",
        "trace which tool call created this fact",
        "provenance for agent tool calls",
        "log agent tool calls in the graph they touched",
        "lineage of a fact in agent memory"
      ],
      "surfaces": [
        "cypher",
        "agents"
      ],
      "schema": {
        "title": "Recommended data model for tool-call provenance: the agent's memory and the trace of every call beside it",
        "description": "A Session HAS_CALL each of its ToolCall nodes, with a timestamp. A ToolCall records its sequence number, tool name, status and row count, and TOUCHED the Entity and Fact nodes it wrote or returned. A Fact is ABOUT an Entity.",
        "mermaid": "flowchart TB\n  accTitle: Recommended data model for tool-call provenance: the agent's memory and the trace of every call beside it\n  accDescr {\n    A Session HAS_CALL each of its ToolCall nodes, with a timestamp. A\n    ToolCall records its sequence number, tool name, status and row count,\n    and TOUCHED the Entity and Fact nodes it wrote or returned. A Fact is\n    ABOUT an Entity.\n  }\n  Session((\"<b>Session</b><br/>id\")) -- \"<b>HAS_CALL</b><br/>ts\" --> ToolCall((\"<b>ToolCall</b><br/>seq · name · status<br/>rows · error\"))\n  ToolCall -- \"<b>TOUCHED</b>\" --> Entity((\"<b>Entity</b><br/>key · kind\"))\n  ToolCall -- \"<b>TOUCHED</b>\" --> Fact((\"<b>Fact</b><br/>text\"))\n  Fact -- \"<b>ABOUT</b>\" --> Entity\n  class Session l1\n  class ToolCall l2\n  class Entity l3\n  class Fact l4"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-tool-call-provenance-light.svg",
      "verify": {
        "ref": "tool-call-provenance#lineage",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#tool-call-provenance",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/model-agent-memory/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/tool-call-provenance/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/"
        ],
        "verify": "https://relatedb.ai/cookbook/tool-call-provenance/#cell-lineage"
      }
    },
    {
      "id": "agent-trajectory-timeline",
      "title": "Agent trajectory timeline",
      "problem": "Log every step an agent takes and read the last few, the page before them, and everything since a cutoff, in the right order every time.",
      "capability": "Steps on a timestamped relationship whose integer sort key relationship property type and existence constraints enforce, read newest first with `ORDER BY`, `LIMIT` and `SKIP`.",
      "intents": [
        "log every step my agent takes",
        "page through an agent's recent actions",
        "keep an ordered history of agent tool calls",
        "newest agent steps across all sessions",
        "token budget per agent session"
      ],
      "surfaces": [
        "cypher",
        "agents"
      ],
      "schema": {
        "title": "Recommended data model for an agent trajectory: a session's steps, each calling one tool",
        "description": "A Session links to each of its Step nodes by a STEP relationship that carries an integer timestamp, a sequence number and a token count. Each Step has a kind, text and time, and a CALLED relationship to the Tool it used.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for an agent trajectory: a session's steps, each calling one tool\n  accDescr {\n    A Session links to each of its Step nodes by a STEP relationship that\n    carries an integer timestamp, a sequence number and a token count. Each\n    Step has a kind, text and time, and a CALLED relationship to the Tool it\n    used.\n  }\n  Session((\"<b>Session</b><br/>id\")) -- \"<b>STEP</b><br/>ts (integer) · seq · tokens\" --> Step((\"<b>Step</b><br/>id · kind · text · at\"))\n  Step -- \"<b>CALLED</b>\" --> Tool((\"<b>Tool</b><br/>name\"))\n  class Session l1\n  class Step l2\n  class Tool l3"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-agent-trajectory-timeline-light.svg",
      "verify": {
        "ref": "agent-trajectory-timeline#latest",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#agent-trajectory-timeline",
        "guides": [],
        "recipes": [
          "https://relatedb.ai/cookbook/agent-trajectory-timeline/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/"
        ],
        "verify": "https://relatedb.ai/cookbook/agent-trajectory-timeline/#cell-latest"
      }
    },
    {
      "id": "bi-temporal-facts",
      "title": "Bi-temporal facts",
      "problem": "Answer both what was true on a date and what the agent believed on that date, after late corrections and rejected decisions.",
      "capability": "Two time ranges on every fact, valid time and record time, written with `datetime()` and `MERGE` so nothing is deleted, and queried with chained comparisons.",
      "intents": [
        "what did the agent believe on a given day",
        "what was true on a date in my agent's memory",
        "track late corrections without losing history",
        "bitemporal data model in a graph",
        "as-of queries over a decision log"
      ],
      "surfaces": [
        "cypher",
        "agents"
      ],
      "schema": {
        "title": "Recommended data model for bi-temporal facts: decisions about entities, the decisions they replace, and reviews",
        "description": "A Decision is ABOUT an Entity and carries two time ranges: validFrom and validTo for when it held, recordedAt and closedAt for when it was believed. A Decision SUPERSEDES the one it replaces, and a Review REJECTS a Decision.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for bi-temporal facts: decisions about entities, the decisions they replace, and reviews\n  accDescr {\n    A Decision is ABOUT an Entity and carries two time ranges: validFrom and\n    validTo for when it held, recordedAt and closedAt for when it was believed.\n    A Decision SUPERSEDES the one it replaces, and a Review REJECTS a\n    Decision.\n  }\n  Decision((\"<b>Decision</b><br/>id · text · validFrom · validTo<br/>recordedAt · closedAt\")) -- \"<b>ABOUT</b>\" --> Entity((\"<b>Entity</b><br/>name\"))\n  Decision -- \"<b>SUPERSEDES</b>\" --> Decision\n  Review((\"<b>Review</b><br/>by · at · reason\")) -- \"<b>REJECTS</b>\" --> Decision\n  class Decision l1\n  class Entity l2\n  class Review l3"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-bi-temporal-facts-light.svg",
      "verify": {
        "ref": "bitemporal-decisions#as-of",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#bi-temporal-facts",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/model-agent-memory/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/bitemporal-decisions/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/",
          "https://relatedb.ai/docs/reference/cypher/types-and-values/#temporal-types"
        ],
        "verify": "https://relatedb.ai/cookbook/bitemporal-decisions/#cell-as-of"
      }
    },
    {
      "id": "geospatial-memory",
      "title": "Geospatial memory",
      "problem": "Let an agent answer what is near here, what is nearest, what is inside this map box, and where it went recently near a place.",
      "capability": "WGS-84 points stored as properties, distances in metres with `point.distance`, map boxes with `point.withinBBox`, and a `POINT` index, in the same graph as the rest of the memory.",
      "intents": [
        "places within 2 km of a location",
        "nearest places to the user",
        "geo-aware memory for a travel agent",
        "which places are inside this map box",
        "where did the agent go recently near here"
      ],
      "surfaces": [
        "cypher",
        "agents"
      ],
      "schema": {
        "title": "Recommended data model for geospatial memory: agents visit places, and places are in cities",
        "description": "An Agent VISITED a Place, and each visit records a timestamp and a sequence number. A Place has a name, a kind and a location point, and is IN a City.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for geospatial memory: agents visit places, and places are in cities\n  accDescr {\n    An Agent VISITED a Place, and each visit records a timestamp and a\n    sequence number. A Place has a name, a kind and a location point, and is\n    IN a City.\n  }\n  Agent((\"<b>Agent</b><br/>id\")) -- \"<b>VISITED</b><br/>ts · seq\" --> Place((\"<b>Place</b><br/>name · kind · loc\"))\n  Place -- \"<b>IN</b>\" --> City((\"<b>City</b><br/>name\"))\n  class Agent l1\n  class Place l2\n  class City l3"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-geospatial-memory-light.svg",
      "verify": {
        "ref": "nearby-places#within",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#geospatial-memory",
        "guides": [
          "https://relatedb.ai/docs/guides/cypher/geospatial/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/nearby-places/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/",
          "https://relatedb.ai/docs/reference/cypher/functions/#spatial-functions"
        ],
        "verify": "https://relatedb.ai/cookbook/nearby-places/#cell-within"
      }
    },
    {
      "id": "hybrid-retrieval-for-rag",
      "title": "Hybrid retrieval for RAG",
      "problem": "Retrieve the passages that answer a question by meaning and by keyword at once, then follow links to the context around them.",
      "capability": "Vector and full-text indexes queried with the `SEARCH` clause, fused by reciprocal rank in one Cypher statement, with a graph hop from each hit to its related nodes.",
      "intents": [
        "hybrid search for retrieval-augmented generation",
        "combine vector and keyword search",
        "semantic search over my notes",
        "reciprocal rank fusion in one query",
        "graph RAG over my documents",
        "store embeddings and search them",
        "nearest neighbors by embedding"
      ],
      "surfaces": [
        "cypher",
        "python",
        "node",
        "agents"
      ],
      "schema": {
        "title": "Recommended data model for hybrid retrieval: notes about topics, some of which record a decision",
        "description": "A Note has text, a timestamp and an embedding, and is ABOUT a Topic. A Note that records a decision also has a DECIDED relationship to the Topic, carrying the decision's text and timestamp.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for hybrid retrieval: notes about topics, some of which record a decision\n  accDescr {\n    A Note has text, a timestamp and an embedding, and is ABOUT a Topic. A\n    Note that records a decision also has a DECIDED relationship to the Topic,\n    carrying the decision's text and timestamp.\n  }\n  Note((\"<b>Note</b><br/>id · text · ts<br/>embedding\")) -- \"<b>ABOUT</b>\" --> Topic((\"<b>Topic</b><br/>name\"))\n  Note -- \"<b>DECIDED</b><br/>text · ts\" --> Topic\n  class Note l1\n  class Topic l2"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-hybrid-retrieval-for-rag-light.svg",
      "verify": {
        "ref": "hybrid-recall#fuse-vector",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#hybrid-retrieval-for-rag",
        "guides": [
          "https://relatedb.ai/docs/guides/cypher/vector-search/",
          "https://relatedb.ai/docs/guides/cypher/full-text-and-hybrid-search/",
          "https://relatedb.ai/docs/guides/migrate/from-a-vector-store/",
          "https://relatedb.ai/docs/guides/integrations/llamaindex/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/hybrid-recall/",
          "https://relatedb.ai/cookbook/codebase-context-graph/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/search/"
        ],
        "verify": "https://relatedb.ai/cookbook/hybrid-recall/#cell-fuse-vector"
      }
    },
    {
      "id": "entity-resolution",
      "title": "Entity resolution",
      "problem": "Merge two messy exports that list the same customers spelled differently into one record per company, with doubtful pairs left for a person.",
      "capability": "Normalized keys, bigram similarity and IDF-weighted scores computed in Cypher over records, entities and tokens, with `SAME_AS` and `POSSIBLE_MATCH` relationships for the decisions.",
      "intents": [
        "deduplicate customer records",
        "match the same company across two exports",
        "fuzzy matching of names in Cypher",
        "merge duplicate entities in a graph",
        "review queue for uncertain matches"
      ],
      "surfaces": [
        "cypher",
        "cli"
      ],
      "schema": {
        "title": "Recommended data model for entity resolution: records, the entities they resolve to, and the words that match them",
        "description": "A Record from either export RESOLVES_TO an Entity. An Entity HAS_TOKEN the words of its name, and tokens are SIMILAR to one another. Between two entities, SAME_AS holds a scored match and POSSIBLE_MATCH a doubtful pair left for review.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for entity resolution: records, the entities they resolve to, and the words that match them\n  accDescr {\n    A Record from either export RESOLVES_TO an Entity. An Entity HAS_TOKEN\n    the words of its name, and tokens are SIMILAR to one another. Between two\n    entities, SAME_AS holds a scored match and POSSIBLE_MATCH a doubtful pair\n    left for review.\n  }\n  Record((\"<b>Record</b><br/>id · name · domain<br/>city · key\")) -- \"<b>RESOLVES_TO</b>\" --> Entity((\"<b>Entity</b><br/>key · cluster\"))\n  Entity -- \"<b>HAS_TOKEN</b>\" --> Token((\"<b>Token</b><br/>text · idf\"))\n  Token -- \"<b>SIMILAR</b><br/>dice\" --> Token\n  Entity -- \"<b>SAME_AS</b><br/>score\" --> Other((\"<b>Entity</b><br/>another entity\"))\n  Entity -- \"<b>POSSIBLE_MATCH</b><br/>score · reason\" --> Other\n  class Record l1\n  class Entity,Other l3\n  class Token l4"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-entity-resolution-light.svg",
      "verify": {
        "ref": "entity-resolution#score",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#entity-resolution",
        "guides": [
          "https://relatedb.ai/docs/guides/cypher/import-csv/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/entity-resolution/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/"
        ],
        "verify": "https://relatedb.ai/cookbook/entity-resolution/#cell-score"
      }
    },
    {
      "id": "codebase-context-graph",
      "title": "Codebase context graph",
      "problem": "Give a coding agent answers to multi-hop questions about a codebase, such as what replaced a design decision or what builds on a module.",
      "capability": "Crates, design records and their sections as one graph, IDF-weighted full-text `SEARCH` to find where to start, and bounded quantified path patterns to follow the links.",
      "intents": [
        "context graph for a coding agent",
        "which modules depend on this crate",
        "what replaced this design decision",
        "search a codebase's architecture records",
        "multi-hop questions about a repository"
      ],
      "surfaces": [
        "cypher",
        "agents",
        "mcp"
      ],
      "schema": {
        "title": "Recommended data model for a codebase context graph: crates, design records and their sections",
        "description": "A Crate DEPENDS_ON other crates and CITES design records (Doc). Each Doc HAS_CHUNK sections; a Chunk MENTIONS crates and CITES docs, and a Doc SUPERSEDES an earlier one.",
        "mermaid": "flowchart TB\n  accTitle: Recommended data model for a codebase context graph: crates, design records and their sections\n  accDescr {\n    A Crate DEPENDS_ON other crates and CITES design records (Doc). Each Doc\n    HAS_CHUNK sections; a Chunk MENTIONS crates and CITES docs, and a Doc\n    SUPERSEDES an earlier one.\n  }\n  Crate((\"<b>Crate</b><br/>name · description\")) -- \"<b>DEPENDS_ON</b>\" --> Crate\n  Crate -- \"<b>CITES</b>\" --> Doc((\"<b>Doc</b><br/>path · title · status\"))\n  Doc -- \"<b>HAS_CHUNK</b>\" --> Chunk((\"<b>Chunk</b><br/>id · heading · text\"))\n  Chunk -- \"<b>MENTIONS</b>\" --> Crate\n  Chunk -- \"<b>CITES</b>\" --> Doc\n  Doc -- \"<b>SUPERSEDES</b>\" --> Doc\n  class Crate l1\n  class Doc l2\n  class Chunk l3"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-codebase-context-graph-light.svg",
      "verify": {
        "ref": "codebase-context-graph#storage",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#codebase-context-graph",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/connect-over-mcp/",
          "https://relatedb.ai/docs/guides/extensions/git-to-graph/",
          "https://relatedb.ai/docs/guides/extensions/fs-to-graph/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/codebase-context-graph/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/search/",
          "https://relatedb.ai/docs/reference/cypher/patterns/#quantified-path-patterns"
        ],
        "verify": "https://relatedb.ai/cookbook/codebase-context-graph/#cell-storage"
      }
    },
    {
      "id": "dependency-analysis",
      "title": "Dependency analysis",
      "problem": "Find which known advisories a package can reach and through which chain, and what goes away when a dependency is dropped.",
      "capability": "Resolved dependency graphs as nodes and relationships, quantified path patterns and `SHORTEST` for reachability and chains, and `COUNT` and `EXISTS` subqueries for blast radius.",
      "intents": [
        "which vulnerabilities can my package reach",
        "blast radius of a dependency",
        "what breaks if I drop this dependency",
        "fail CI on a reachable advisory",
        "transitive dependency analysis"
      ],
      "surfaces": [
        "cypher",
        "cli"
      ],
      "schema": {
        "title": "Recommended data model for dependency analysis: package versions, what they depend on, and the advisories that affect them",
        "description": "A Version DEPENDS_ON other Version nodes, and each DEPENDS_ON relationship records its version requirement. Any Version can be AFFECTED_BY an Advisory, which has an id, a title and a score.",
        "mermaid": "flowchart LR\n  accTitle: Recommended data model for dependency analysis: package versions, what they depend on, and the advisories that affect them\n  accDescr {\n    A Version DEPENDS_ON other Version nodes, and each DEPENDS_ON\n    relationship records its version requirement. Any Version can be\n    AFFECTED_BY an Advisory, which has an id, a title and a score.\n  }\n  Version((\"<b>Version</b><br/>key · name · version\")) -- \"<b>DEPENDS_ON</b><br/>requirement\" --> Version\n  Version -- \"<b>AFFECTED_BY</b>\" --> Advisory((\"<b>Advisory</b><br/>id · title · cvss3\"))\n  class Version l2\n  class Advisory l5"
      },
      "schema_url": "https://relatedb.ai/docs/concepts/problems-relate-solves/schema-dependency-analysis-light.svg",
      "verify": {
        "ref": "dependency-blast-radius#reachable",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#dependency-analysis",
        "guides": [
          "https://relatedb.ai/docs/guides/cli/scripting/",
          "https://relatedb.ai/docs/guides/agents/use-in-ci/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/dependency-blast-radius/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/",
          "https://relatedb.ai/docs/reference/cli/exit-codes-and-errors/",
          "https://relatedb.ai/docs/reference/cypher/patterns/#quantified-path-patterns",
          "https://relatedb.ai/docs/reference/cypher/composing-clauses/#subquery-expressions"
        ],
        "verify": "https://relatedb.ai/cookbook/dependency-blast-radius/#cell-reachable"
      }
    },
    {
      "id": "text-to-cypher",
      "title": "Text-to-Cypher",
      "problem": "Let a model turn a question into a Cypher statement over a graph whose schema it can read, and check the statement before it runs.",
      "capability": "The schema as data from the `db.schema` procedures and the MCP `get_schema` tool, `EXPLAIN` to plan a statement without running it, and read-only opens that refuse writes.",
      "intents": [
        "text to Cypher for my graph",
        "let an LLM write Cypher queries",
        "natural language questions over a graph",
        "give the model the graph schema",
        "validate a generated Cypher query before running it"
      ],
      "surfaces": [
        "cypher",
        "mcp",
        "cli",
        "agents"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "reference/cypher/differences-from-neo4j#schema",
        "kind": "docs-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#text-to-cypher",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/text-to-cypher/",
          "https://relatedb.ai/docs/guides/cypher/tune-a-query/",
          "https://relatedb.ai/docs/guides/agents/connect-over-mcp/",
          "https://relatedb.ai/docs/guides/integrations/openai-agents-sdk/",
          "https://relatedb.ai/docs/guides/integrations/mastra/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/codebase-context-graph/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/differences-from-neo4j/",
          "https://relatedb.ai/docs/reference/cypher/overview/",
          "https://relatedb.ai/docs/reference/errors/",
          "https://relatedb.ai/docs/reference/cypher/schema-clauses/#schema-procedures",
          "https://relatedb.ai/docs/reference/cypher/procedures/#schema-procedures",
          "https://relatedb.ai/docs/reference/cypher/explain-and-profile/"
        ],
        "verify": "https://relatedb.ai/docs/reference/cypher/differences-from-neo4j/#cell-schema"
      }
    },
    {
      "id": "graph-queries-over-mcp",
      "title": "Graph queries over MCP",
      "problem": "Give a coding agent or an agent framework a graph it can query through MCP, without letting it change the data.",
      "capability": "`relate serve --mcp stdio` on a store opened `--read-only`, which lists the `read_cypher` and `get_schema` tools and leaves out `write_cypher`.",
      "intents": [
        "MCP server for a graph database",
        "let Claude Code query my graph",
        "read-only graph tool for an agent",
        "connect Cursor to a local graph",
        "graph tools for the Claude Agent SDK"
      ],
      "surfaces": [
        "mcp",
        "agents",
        "cli"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "guides/integrations/claude-agent-sdk#options",
        "kind": "docs-sample"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#graph-queries-over-mcp",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/connect-over-mcp/",
          "https://relatedb.ai/docs/guides/serve/mcp/",
          "https://relatedb.ai/docs/guides/integrations/claude-agent-sdk/",
          "https://relatedb.ai/docs/guides/agents/agent-safety/",
          "https://relatedb.ai/docs/guides/integrations/pydantic-ai/",
          "https://relatedb.ai/docs/guides/integrations/openai-agents-sdk/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/server/mcp/",
          "https://relatedb.ai/docs/reference/cli/serve/",
          "https://relatedb.ai/docs/reference/cli/flags/#relate-serve",
          "https://relatedb.ai/docs/reference/errors/#mcp-read-query-only"
        ],
        "verify": "https://relatedb.ai/docs/guides/integrations/claude-agent-sdk/#register-the-server-with-the-sdk"
      }
    },
    {
      "id": "embedded-graph-in-an-app",
      "title": "Embedded graph in an app",
      "problem": "Add a graph database to an application without running, securing or paying for a database server.",
      "capability": "The engine as a library in the application's process, through the Python, Node.js, Rust, Java, Go and Swift clients, the C ABI or the WebAssembly build.",
      "intents": [
        "embedded graph database for Python",
        "graph database inside my Node.js app",
        "SQLite for graphs",
        "Cypher without a database server",
        "in-process graph database library",
        "graph database in the browser"
      ],
      "surfaces": [
        "python",
        "node",
        "browser",
        "rust",
        "java",
        "go",
        "swift",
        "c"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "get-started/python#program",
        "kind": "docs-sample"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#embedded-graph-in-an-app",
        "guides": [
          "https://relatedb.ai/docs/get-started/python/",
          "https://relatedb.ai/docs/get-started/node/",
          "https://relatedb.ai/docs/get-started/rust/",
          "https://relatedb.ai/docs/get-started/java/",
          "https://relatedb.ai/docs/get-started/go/",
          "https://relatedb.ai/docs/get-started/swift/",
          "https://relatedb.ai/docs/get-started/browser/",
          "https://relatedb.ai/docs/guides/embed/python/",
          "https://relatedb.ai/docs/guides/embed/node/",
          "https://relatedb.ai/docs/guides/embed/rust/",
          "https://relatedb.ai/docs/guides/embed/c/",
          "https://relatedb.ai/docs/guides/embed/java/",
          "https://relatedb.ai/docs/guides/embed/go/",
          "https://relatedb.ai/docs/guides/embed/swift/",
          "https://relatedb.ai/docs/guides/embed/browser/",
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/",
          "https://relatedb.ai/docs/guides/migrate/from-sqlite/",
          "https://relatedb.ai/docs/guides/migrate/from-kuzu/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/api/",
          "https://relatedb.ai/docs/reference/api/python/",
          "https://relatedb.ai/docs/reference/api/javascript/",
          "https://relatedb.ai/docs/reference/api/rust/",
          "https://relatedb.ai/docs/reference/api/c/",
          "https://relatedb.ai/docs/reference/api/java/",
          "https://relatedb.ai/docs/reference/api/go/",
          "https://relatedb.ai/docs/reference/api/swift/",
          "https://relatedb.ai/docs/reference/api/wasm/",
          "https://relatedb.ai/docs/reference/storage/formats/",
          "https://relatedb.ai/docs/reference/limitations/"
        ],
        "verify": "https://relatedb.ai/docs/get-started/python/#put-it-together"
      }
    },
    {
      "id": "offline-and-sandboxed-use",
      "title": "Offline and sandboxed use",
      "problem": "Run a graph database where an agent works isolated, with no network after setup and nothing sent anywhere.",
      "capability": "A single binary that needs no network once installed with usage metrics off (`DO_NOT_TRACK=1`), stores that are files in the workspace, and network access visible on the command line.",
      "intents": [
        "graph database in an agent sandbox",
        "run without network access",
        "air-gapped graph database",
        "use relate in Docker with no egress",
        "turn off telemetry for an agent"
      ],
      "surfaces": [
        "cli",
        "docker",
        "agents"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "guides/agents/run-in-a-sandbox#step-1",
        "kind": "cli-step"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#offline-and-sandboxed-use",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/run-in-a-sandbox/",
          "https://relatedb.ai/docs/guides/agents/agent-safety/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/privacy-and-telemetry/",
          "https://relatedb.ai/docs/reference/security/",
          "https://relatedb.ai/docs/reference/cli/telemetry/",
          "https://relatedb.ai/docs/reference/cli/upgrade/",
          "https://relatedb.ai/docs/reference/cli/extension/"
        ],
        "verify": "https://relatedb.ai/docs/guides/agents/run-in-a-sandbox/#verify"
      }
    },
    {
      "id": "single-file-graph",
      "title": "Single-file graph",
      "problem": "Keep a whole graph in one file that can be copied, attached, checked in or handed to another program.",
      "capability": "The `.rl` store: one file holding the snapshot and the write-ahead log, created on the first open, compacted by `relate clone`, and read into memory with `--load`.",
      "intents": [
        "store a graph in a single file",
        "ship a graph database with my app",
        "share a graph as one file",
        "portable graph database file format",
        "check a graph into git as one file"
      ],
      "surfaces": [
        "cli",
        "python",
        "node"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "guides/storage/choose-a-store-layout#open-layouts",
        "kind": "docs-sample"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#single-file-graph",
        "guides": [
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/",
          "https://relatedb.ai/docs/guides/storage/backup-and-restore/",
          "https://relatedb.ai/docs/guides/storage/clone-and-convert/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/storage/formats/",
          "https://relatedb.ai/docs/reference/cli/clone/"
        ],
        "verify": "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/#open-a-store-from-python-or-nodejs"
      }
    },
    {
      "id": "diffable-memory",
      "title": "Diffable memory",
      "problem": "Keep an agent's memory in the repository, so each session's changes show up in a pull request as a diff a person can review.",
      "capability": "A directory store whose checkpoint writes the graph as text, one `graph.json` with the `json` codec or one note per node with `markdown`, and `MERGE` writes that replay to no change.",
      "intents": [
        "review agent memory changes in a pull request",
        "keep agent memory in git",
        "diff a graph between commits",
        "human-readable graph storage format",
        "store a graph as markdown notes"
      ],
      "surfaces": [
        "cli",
        "agents"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "bitemporal-decisions#retry",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#diffable-memory",
        "guides": [
          "https://relatedb.ai/docs/guides/agents/diffable-memory/",
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/",
          "https://relatedb.ai/docs/guides/storage/obsidian-vault/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/bitemporal-decisions/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/storage/formats/#codecs",
          "https://relatedb.ai/docs/reference/storage/wal-and-checkpoints/"
        ],
        "verify": "https://relatedb.ai/cookbook/bitemporal-decisions/#cell-retry"
      }
    },
    {
      "id": "schema-as-files",
      "title": "Schema as files",
      "problem": "Let an agent or a reviewer read a store's indexes and constraints from a file instead of opening the database, and see a schema change as a text diff.",
      "capability": "A text copy of the schema under `.cypherlite/schema/`, with `schema.cypher` holding one `CREATE` statement per index and constraint, rewritten at every checkpoint and checked at every open.",
      "intents": [
        "read the graph schema without opening the database",
        "review schema changes in a pull request",
        "indexes and constraints as text files",
        "schema migrations visible in git"
      ],
      "surfaces": [
        "cli",
        "agents"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "reference/storage/formats#step-2",
        "kind": "cli-step"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#schema-as-files",
        "guides": [
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/",
          "https://relatedb.ai/docs/guides/storage/schema-as-files/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/storage/formats/",
          "https://relatedb.ai/docs/reference/storage/wal-and-checkpoints/",
          "https://relatedb.ai/docs/reference/cypher/schema-clauses/"
        ],
        "verify": "https://relatedb.ai/docs/reference/storage/formats/#wide-column-parquet"
      }
    },
    {
      "id": "fresh-graph-per-test-run",
      "title": "Fresh graph per test run",
      "problem": "Give every test or CI run its own graph, built from a fixture and thrown away afterwards, with results a script can check.",
      "capability": "The in-memory store, the default, gone when the process exits; `--load` to read a fixture store into memory; envelope output and typed exit codes for the script that checks it.",
      "intents": [
        "in-memory graph database for tests",
        "test fixtures for a graph",
        "run graph queries in CI",
        "throwaway database per test",
        "gate a build on a Cypher query"
      ],
      "surfaces": [
        "cli",
        "python",
        "node"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "dependency-blast-radius#gate",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#fresh-graph-per-test-run",
        "guides": [
          "https://relatedb.ai/docs/guides/cli/scripting/",
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/#start-in-memory",
          "https://relatedb.ai/docs/get-started/python/",
          "https://relatedb.ai/docs/guides/agents/use-in-ci/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/dependency-blast-radius/",
          "https://relatedb.ai/cookbook/migration-rehearsal/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cli/exit-codes-and-errors/",
          "https://relatedb.ai/docs/reference/cli/flags/"
        ],
        "verify": "https://relatedb.ai/cookbook/dependency-blast-radius/#cell-gate"
      }
    },
    {
      "id": "migration-rehearsal",
      "title": "Migration rehearsal",
      "problem": "Check that a data migration changed only what it was meant to, before it runs on the real graph.",
      "capability": "A fingerprint of the graph taken in Cypher before the migration, probes that compare it afterwards, and `relate clone` or `--load` to run the migration on a copy.",
      "intents": [
        "test a graph data migration",
        "check what a migration changed",
        "rehearse a migration on a copy",
        "catch data lost in a migration"
      ],
      "surfaces": [
        "cypher",
        "cli"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "migration-rehearsal#verdict",
        "kind": "cookbook-cell"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#migration-rehearsal",
        "guides": [
          "https://relatedb.ai/docs/guides/storage/backup-and-restore/",
          "https://relatedb.ai/docs/guides/agents/agent-safety/#back-up-before-a-write",
          "https://relatedb.ai/docs/guides/migrate/from-neo4j/"
        ],
        "recipes": [
          "https://relatedb.ai/cookbook/migration-rehearsal/"
        ],
        "reference": [
          "https://relatedb.ai/docs/reference/cypher/overview/",
          "https://relatedb.ai/docs/reference/cli/clone/"
        ],
        "verify": "https://relatedb.ai/cookbook/migration-rehearsal/#cell-verdict"
      }
    },
    {
      "id": "neo4j-subgraph-mirror",
      "title": "Neo4j subgraph mirror",
      "problem": "Work on a slice of a Neo4j or Aura graph locally, offline or in a test, and copy changes back when they are ready.",
      "capability": "`relate pull`, which copies the graph elements a query returns from Neo4j or Aura into a local store, and `relate push`, which copies a scoped subgraph back with a `--dry-run` plan.",
      "intents": [
        "copy a Neo4j subgraph to my laptop",
        "local copy of an Aura database",
        "pull data from Neo4j into a file",
        "push a local graph to Neo4j",
        "work offline on Neo4j data"
      ],
      "surfaces": [
        "cli",
        "bolt",
        "http"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "guides/neo4j/push-to-neo4j#step-3",
        "kind": "cli-step"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#neo4j-subgraph-mirror",
        "guides": [
          "https://relatedb.ai/docs/guides/neo4j/pull-from-neo4j/",
          "https://relatedb.ai/docs/guides/neo4j/push-to-neo4j/",
          "https://relatedb.ai/docs/guides/migrate/from-neo4j/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/cli/pull/",
          "https://relatedb.ai/docs/reference/cli/push/",
          "https://relatedb.ai/docs/reference/cypher/differences-from-neo4j/",
          "https://relatedb.ai/docs/concepts/where-relate-fits/"
        ],
        "verify": "https://relatedb.ai/docs/guides/neo4j/push-to-neo4j/#give-each-label-a-merge-key"
      }
    },
    {
      "id": "shared-store-across-processes",
      "title": "Shared store across processes",
      "problem": "Let an agent and an application, or several readers, use the same graph without corrupting it or blocking each other.",
      "capability": "One writer per store, enforced by a lock; `--read-only` opens beside the writer on a directory store; `--read-only=live` to follow its commits; or one `relate serve` process.",
      "intents": [
        "two processes using the same graph",
        "share a graph between my app and an agent",
        "read a graph while another process writes it",
        "storage locked error",
        "several clients on one embedded store"
      ],
      "surfaces": [
        "cli",
        "http",
        "bolt",
        "mcp"
      ],
      "schema": null,
      "schema_url": null,
      "verify": {
        "ref": "guides/operate/two-processes-one-store#step-2",
        "kind": "cli-step"
      },
      "urls": {
        "page": "https://relatedb.ai/docs/concepts/problems-relate-solves/#shared-store-across-processes",
        "guides": [
          "https://relatedb.ai/docs/guides/operate/two-processes-one-store/",
          "https://relatedb.ai/docs/guides/storage/choose-a-store-layout/",
          "https://relatedb.ai/docs/guides/storage/read-only-and-follow/",
          "https://relatedb.ai/docs/guides/serve/http-query-api/",
          "https://relatedb.ai/docs/guides/serve/bolt/",
          "https://relatedb.ai/docs/guides/integrations/crewai/"
        ],
        "recipes": [],
        "reference": [
          "https://relatedb.ai/docs/reference/storage/formats/",
          "https://relatedb.ai/docs/reference/cli/exit-codes-and-errors/",
          "https://relatedb.ai/docs/reference/cli/serve/"
        ],
        "verify": "https://relatedb.ai/docs/guides/operate/two-processes-one-store/#see-what-the-second-process-gets"
      }
    }
  ]
}
