graph
analytics.cdlp
Detect communities via label propagation.
strata graph cdlpdb.graphs.analytics.cdlp(graph: 'str', *, direction: 'Optional[str]' = None, max_iterations: 'Optional[int]' = None, budget: 'Optional[dict]' = None, as_of: 'Optional[int]' = None, as_of_time: 'Optional[TimeLike]' = None) -> 'Any'wire graph_cdlp
Detects communities by label propagation over a consistent snapshot: every node repeatedly adopts the most common label among its neighbors until labels stabilize or the iteration bound (default 10) is reached. Every node maps to its community representative node id. Propagation direction defaults to `both`. Accepts an optional snapshot budget and `as_of` for time travel.
Analytics commands compute over a consistent snapshot of the visible graph and return a complete result payload in one response. They accept optional snapshot budgets and an `as_of` timestamp for time travel; results are deterministic for a fixed graph state.
To see the complete help for this command, run:
strata graph cdlp --helphelp(db.graphs.analytics.cdlp)
Example
Community detection by label propagation.
strata graph create gstrata graph add-node g astrata graph add-node g bstrata graph add-node g cstrata graph add-edge g a knows bstrata graph add-edge g b knows cstrata graph cdlp g
_ = db.graphs.create("g")_ = db.graphs.add_node("g", "a")_ = db.graphs.add_node("g", "b")_ = db.graphs.add_node("g", "c")_ = db.graphs.add_edge("g", "a", "knows", "b")_ = db.graphs.add_edge("g", "b", "knows", "c")sorted(db.graphs.analytics.cdlp("g").labels)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| graph | string | yes | Graph name. |
| as_of | integer or null | no | Read as of a position on the logical commit timeline - the `timestamp` from `history` output, not the `version`, and never a calendar date. Reads the graph state visible at that timeline position. To read as of a real time, use `as_of_time` instead. |
| as_of_time | integer or null | no | Read as of a real time: a wall-clock instant in microseconds since the Unix epoch (UTC), as reported by `committed_at` on a write ack or on any `history` row. Resolves to the commit at or before that instant, and fails rather than guessing if the instant falls outside the branch's recorded history. Mutually exclusive with `as_of`. |
| branch | string or null | no | Target branch. Defaults to the executor handle branch. |
| budget | any | no | Optional snapshot size bounds. Defaults to the engine limits. |
| direction | any | no | Optional propagation direction. Defaults to both. |
| max_iterations | integer or null | no | Optional iteration bound. Defaults to 10. |
| space | string or null | no | Target product space. Defaults to `"default"`. |
Returns
AnalyticsResult<GraphCdlpData>
- dataGraphCdlpData
- typestring
Errors
Recover by code. Retry policy and commit outcome come from the shipped error registry.
| Code | Retry | Commit outcome |
|---|---|---|
| failed_precondition.engine.runtime_closed | never | not_started |
| not_found.engine.branch | never | not_applicable |
| invalid_argument.engine.product_space | never | not_started |
| invalid_argument.engine.graph_name | never | not_started |
| not_found.engine.graph | never | not_applicable |
| resource_exhausted.engine.graph_analytics_budget | after_state_change | not_applicable |
| invalid_argument.executor.graph_analytics_budget | never | not_started |