@@ -14,6 +14,17 @@ diffusion analysis**.
1414This is a ** Research Preview** released under the non-commercial
1515[ HNCL v1.0] ( LICENCE.md ) license (not OSI open-source).
1616
17+ ## Repo status
18+
19+ | | |
20+ | ---| ---|
21+ | ** Version** | 0.1.2 |
22+ | ** Canonical package** | ` src/she/ ` — install with ` pip install -e . ` , import as ` import she ` |
23+ | ** Maturity** | Research preview — API may change between releases |
24+ | ** Stable surface** | ` SHEHyperstructure ` , social analysis functions, temporal windowing, export |
25+ | ** Experimental** | ` src/core/ ` (legacy monolith, convolution), ` src/morse/ ` (discrete Morse) — not part of the public API |
26+ | ** Tests** | 41 passing (CI on Python 3.10–3.12) |
27+
1728## Why SHE?
1829
1930Standard graph analysis collapses every interaction to a pairwise edge.
@@ -34,23 +45,30 @@ Use SHE when:
3445SHE does not replace graph libraries. It adds a layer for the cases where
3546graphs are not enough.
3647
37- ## What v0.1 includes
48+ ## What v0.1.x includes
3849
3950** Modeling layer**
4051- ` SHEHyperstructure ` — decorated, weighted higher-order relational object
41- with entity attributes, typed relations, and bulk record ingestion
52+ with entity attributes, typed relations, and bulk ingestion ( ` from_csv ` , ` from_jsonl ` )
4253
4354** Social analysis**
4455- ` rank_diffusers ` / ` rank_entity_diffusers ` / ` rank_simplex_diffusers `
4556- ` find_bridge_simplices ` — cross-community higher-order bridges
4657- ` group_cohesion ` — structural cohesion scoring for candidate groups
4758- ` rank_influencers ` — graph centrality vs. simplex diffusion comparison
4859
60+ ** Temporal**
61+ - ` window ` / ` rolling_windows ` — hard time-range slicing
62+ - ` decay_window ` — exponential decay with configurable half-life
63+
64+ ** Export**
65+ - ` ranked_items_to_csv/json ` , ` bridges_to_csv/json ` , ` cohesion_to_csv/json `
66+
4967** Core simplicial engine**
5068- Simplicial-complex construction (wraps [ TopoNetX] ( https://github.com/pyt-team/TopoNetX ) )
5169- Graph-to-simplicial lifting via clique detection
5270- Hodge-Laplacian spectral analysis and harmonic-form extraction
53- - Diffusion centrality ranking
71+ - Diffusion centrality ranking (rank-percentile normalisation)
5472- Minimal matplotlib visualisation
5573
5674## Installation
@@ -88,27 +106,35 @@ for b in find_bridge_simplices(hs):
88106
89107## Worked use case: social-media diffusers
90108
91- ` examples/social_media_diffusers.py ` builds a two-community social scenario
109+ ` examples/social_media_diffusers.py ` builds a synthetic two-community scenario
92110where a high-degree hub dominates graph centrality, but a cross-community
93- triad is the actual diffusion engine. The example compares graph-only
94- ranking with simplex-level analysis and shows where they disagree.
111+ triad carries more weight as a higher-order structure.
95112
96113``` bash
97114python examples/social_media_diffusers.py
98115```
99116
100117Output highlights:
101- - ** Graph centrality** ranks the hub (u0) first.
102- - ** Bridge detection** surfaces the {u3, u5, u7} triad as the top
103- cross-community structure.
104- - ** Group cohesion** scores the triad as structurally tight despite
118+ - ** Graph centrality** (eigenvector on the 1-skeleton) ranks the hub (u0) first —
119+ it has the most and heaviest pairwise edges.
120+ - ** Bridge detection** (heuristic: community-span x relation weight) surfaces the
121+ {u3, u5, u7} triad as the top cross-community structure — it spans both
122+ communities and carries high group weight.
123+ - ** Group cohesion** (geometric mean of internal weight, pair density, and
124+ higher-order support) scores the triad as structurally tight despite
105125 containing no individually prominent member.
106126
127+ These are heuristic scores, not topological invariants. The point is that
128+ graph-only centrality never even sees group-level structures, while SHE makes
129+ them queryable.
130+
107131## Examples
108132
109133| Script | Description |
110134| --------| -------------|
111135| ` examples/social_media_diffusers.py ` | Graph vs. simplex ranking on a two-community scenario |
136+ | ` examples/eu_email_analysis.ipynb ` | Real-data notebook: SNAP EU Email network, temporal bridge/cohesion plots |
137+ | ` examples/temporal_diffusion_analysis.ipynb ` | Synthetic temporal scenario: bridge formation over three periods |
112138| ` examples/toy_triangle.py ` | Smallest nontrivial complex — Hodge Laplacian printout |
113139| ` examples/social_group_lift.py ` | Lift a small social graph to simplices via cliques |
114140| ` examples/group_diffusion_demo.py ` | Weighted Karate Club diffusion analysis |
0 commit comments