Profile Graph: Edges & Similarity
The graph-integration + embedding pieces of the entity-profile analytics family
(centrality, communities, and temporal trajectories ship in profile-metrics,
profile-communities, profile-temporal).
profile→REF edges (no extra deps)
aiwg corpus profile-edges
aiwg corpus profile-edges --out reports/profile-edges.txt
Builds the profile→REF edge graph from each PROF-{P,O,G,F,S}'s corpus-refs,
as first-class adjacency (byProfile + reverse byRef), reconciled against the
citation graph — edges to REFs with no analysis doc are reported as dangling,
not kept. Surfaces top profiles by linked-REF count and top REFs by linked-profile
count (cross-cutting influence). Preferred over the section9 synthetic
documentation/profiles/edges/ files.
Researcher similarity + collaboration prediction (opt-in embeddings)
# Nearest researchers to a profile
aiwg corpus profile-similar --entity PROF-P-gonzalez-joseph --top 10
# Collaboration link-prediction: similar people who have NOT co-authored
aiwg corpus profile-similar --predict-collabs --threshold 0.85
Embeds each person profile from its name + the titles of its corpus-refs
(text-embedding via the #1493 backend — opt-in @xenova/transformers), then:
--entityranks the nearest researchers by cosine similarity.--predict-collabssurfaces high-similarity pairs that share no corpus-refs (corpus-refs overlap is the co-authorship proxy) — candidate future collaborators. Lower--thresholdto surface more (people who already collaborate are correctly excluded, so a high threshold can legitimately return zero).
This is the #1501 "embeddings" slot, implemented via text embeddings rather than
a heavy node2vec/graph-embedding stack (operator decision) — one embedding
backend across the codebase, composing with aiwg index --semantic (#1493).
Without the optional dep it prints an install hint and exits.
Triggers
- "profile to REF edges" / "profile edge graph"
- "similar researchers" / "researcher similarity"
- "predict collaborations" / "collaboration link prediction"
Notes
- TS-native:
src/artifacts/corpus-tools/profile-edges.ts(port ofbuild_profile_edges.py) +profile-embed.ts(thegraph_embeddings.pyslot via text embeddings). - node2vec/structural graph embeddings remain a possible future enhancement; the text-embedding approach here covers the researcher-similarity + link-prediction use cases without the heavy ML stack.