Normalize is largely handled in the map stage via namespace apply.
Kept as a no-op success node when artifacts already carry catalog lineage,
so the graph topology (map → normalize → …) stays stable.
Source code in ontocast/stategraph/node_factories.py
| def make_normalize_ontology_node(tools: ToolBox):
"""Normalize is largely handled in the map stage via namespace apply.
Kept as a no-op success node when artifacts already carry catalog lineage,
so the graph topology (map → normalize → …) stays stable.
"""
def normalize_ontology_updates(state: AgentState) -> AgentState:
if (
not state.ontology_units
and not document_ontology_access(state).reduced_artifacts()
):
state.ontology_provenance_artifact = RDFGraph()
state.status = Status.SUCCESS
return state
# Artifacts from map already applied onto catalog bases. Ensure indexes.
artifacts = document_ontology_access(state).reduced_artifacts()
state.reduced_ontology_by_anchor = _index_ontologies_by_anchor(artifacts)
state.ontology_provenance_artifact = (
state.ontology_provenance_artifact or RDFGraph()
)
state.ontology_reduce_metrics["normalized_ontology_updates"] = len(artifacts)
state.status = Status.SUCCESS
return state
return normalize_ontology_updates
|