Skip to content

Governance actor influence scores in sespy/network.py #14

Description

@razinkele

Source paper: Unpacking power dynamics and actor interactions across fisheries and marine protected areas governance: a comparative study of Saint Louis and Sangomar, Senegal, Maritime Studies (2026). https://doi.org/10.1007/s40152-026-00501-z
Alert week: 2026-07-14 (from LITERATURE/2026-07-14.md)

Motivation

Fisheries/MPA governance networks exhibit significant power asymmetries — some governance actors are structurally central and dominate co-management decisions, while others are peripheral despite formal participation. The cited paper unpacks these power dynamics through comparative social-ecological network analysis of two Senegalese MPA sites.

SESPy currently detects whether governance actors are linked to ecological nodes (governance_gap(), open #13), but does not quantify how influential each governance actor is within the network. Computing centrality metrics restricted to governance-typed nodes (R = Responses, M = Management in DAPSIWR(M)) would reveal dominant vs. peripheral governance actors — directly useful to MarineSABRES practitioners diagnosing co-management imbalances.

This is a distinct diagnostic from:

Proposal

Add governance_actor_influence(g) to sespy/network.py:

  1. Filter the graph to nodes with node_type in {'R', 'M'} (governance subsystem).
  2. Compute betweenness, eigenvector, and PageRank centrality on the full graph (not the subgraph), so cross-boundary influence is captured.
  3. Return a DataFrame indexed by node name with columns betweenness, eigenvector, pagerank, and a composite influence_rank (z-score sum, analogous to leverage_scores).
  4. Expose as a new collapsible table in the Network Metrics Shiny module, shown only when at least one R/M node is present.

Acceptance criteria

  • network.governance_actor_influence(g) returns a DataFrame with betweenness, eigenvector, pagerank, and influence_rank columns, indexed by node name, for all R/M-typed nodes
  • Returns an empty DataFrame gracefully when no R/M nodes are present
  • Centrality computed on the full graph (not the governance subgraph) so ecological-bridge effects are captured
  • Result exposed in the Network Metrics module as a labelled table
  • Complements (does not duplicate) the all-node leverage_scores output

Effort

Small–Medium (one new function ~25 LOC reusing existing centrality calls + module wiring). Depends on node_type attribute already required by governance_gap() (#13).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions