---
title: nexyron.abstraction_graph.refresh
url: https://nexyron.tech/docs/cypher/procedures/catalog-and-projections/nexyron-abstraction-graph-refresh
description: nexyron.abstraction graph.refresh materializes the abstraction catalog into the normal LPG store.
---

# nexyron.abstraction_graph.refresh

## Generic Description

`nexyron.abstraction_graph.refresh` materializes the abstraction catalog into the normal LPG store.

```cypher
CALL nexyron.abstraction_graph.refresh()
YIELD active_node_count, active_edge_count
RETURN active_node_count, active_edge_count
```

Catalog and projection procedures manage projected graphs, aggregate views, procedure metadata, and abstraction graph projections used by analytical workflows.

## Consumer-Level Explanation

Use this when real abstractions and source-grounded knowledge assertions must behave like ordinary graph data. After refresh, active abstractions are nodes with the `__AbstractionArtifact` and `__AbstractionActive` labels, and live knowledge assertions between knowledge-capable abstractions are stored as normal relationships using their declared relationship type. The allowed knowledge assertion endpoint kinds are `ACTOR`, `EVENT`, `STAGE`, `SOCIETY`, `ENVIRONMENT`, and `LENS`. Reports, analysis runs, wiki pages, models, and rulesets are artifact/provenance records; those artifact records are not projected as knowledge assertion endpoints.

That means ordinary Cypher can inspect and aggregate the abstraction graph:

```cypher
MATCH (n:__AbstractionArtifact)
WHERE n.abstraction_status = 'active'
RETURN n.artifact_kind, count(n)
```

## Conceptual Explanation

The catalog remains the source of truth. The materialized graph is a read model for traversal, reporting, graph data-quality work, and algorithm projection.

Concept-only abstractions with no `source_query` are still materialized. They receive `source_backed = false`, but they are real LPG nodes in the abstraction graph read model. Source-backed abstractions receive `source_backed = true`.

Removed catalog items are not deleted from the graph. They are marked `abstraction_status = 'stale'`, lose the `__AbstractionActive` label, and keep their old properties for auditability.

## More Detailed Explanation

In practical queries, start by deciding the row grain you want after the call: one row per node, one row per path, one row per registry object, one row per artifact, or one row per summary. Then keep that grain explicit with `YIELD` and named projections. That is the difference between a useful planner-facing example and a vague call that downstream tooling cannot safely compose. For contract-driven procedures, the executable examples on these pages intentionally inspect procedure metadata unless the required named artifacts are created in the same example.

## Advanced Example

```cypher
CREATE ABSTRACTION ACTOR Kid DESCRIPTION 'Child concept';
CREATE ABSTRACTION ENVIRONMENT IceCream DESCRIPTION 'Product concept';
CALL nexyron.knowledge_assertion_register({
  name: 'KnowledgeAssertion:Kid:IceCream:relate',
  edge_type: 'RELATE_TO',
  source_kind: 'ACTOR',
  source_name: 'Kid',
  target_kind: 'ENVIRONMENT',
  target_name: 'IceCream',
  description: 'Kids like ice cream.'
});

CALL nexyron.abstraction_graph.refresh();

MATCH (k:__AbstractionArtifact)-[x:RELATE_TO]->(p:__AbstractionArtifact)
WHERE x.abstraction_status = 'active'
RETURN k.name, p.name, x.description, x.source_backed
```

## Real Use Cases

-   Run abstraction graph data-quality reports with normal Cypher aggregation.
-   Inspect source-grounded knowledge assertions in the same graph read model as real abstractions.
-   Traverse knowledge-capable abstractions through knowledge assertions while keeping analysis-run, report, wiki, model, ruleset, and lens-to-artifact lineage in artifact metadata.
-   Keep stale abstraction materializations visible without letting them enter active projections.

## Real Limitations And Tradeoffs

-   This is a materialized read model. The catalog is still authoritative.
-   Refresh is explicit, so newly registered catalog items appear in the LPG mirror after this procedure runs.
-   Stale rows are retained. Filter on `abstraction_status = 'active'` or use `__AbstractionActive` when you only want current abstraction graph data.
