graph
analytics.pagerank
Compute PageRank importance scores.
strata graph pagerankdb.graphs.analytics.pagerank(graph: 'str', *, damping: 'Optional[float]' = None, max_iterations: 'Optional[int]' = None, tolerance: 'Optional[float]' = None, personalization: 'Optional[dict]' = None, budget: 'Optional[dict]' = None, as_of: 'Optional[int]' = None, as_of_time: 'Optional[TimeLike]' = None) -> 'Any'wire graph_pagerank
Computes PageRank over a consistent snapshot. Tunable damping (default 0.85), iteration bound (default 20), and convergence tolerance (default 1e-6); the response reports how many iterations actually ran. Optional personalization seeds steer both teleport and dangling mass toward weighted nodes, and the response flags `personalized: true`. Results are deterministic for a fixed graph state. 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 pagerank --helphelp(db.graphs.analytics.pagerank)
Example
Compute PageRank importance scores.
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 pagerank 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.pagerank("g").ranks)
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. |
| damping | number or null | no | Optional damping factor. Defaults to 0.85. |
| max_iterations | integer or null | no | Optional iteration bound. Defaults to 20. |
| personalization | object or null | no | Optional seed weights (node id to weight). When present, both teleport and dangling mass follow the seeds. |
| space | string or null | no | Target product space. Defaults to `"default"`. |
| tolerance | number or null | no | Optional convergence tolerance. Defaults to 1e-6. |
Returns
AnalyticsResult<GraphPagerankData>
- dataGraphPagerankData
- 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 |
| invalid_argument.engine.graph_pagerank_options | never | not_started |
| invalid_argument.engine.graph_personalization | never | not_started |
| resource_exhausted.engine.graph_analytics_budget | after_state_change | not_applicable |
| invalid_argument.executor.graph_analytics_budget | never | not_started |