BibVik Citation Analysis: Camps, Communities, and Citational Politics

Strategy, method, and analysis — working document, 2026-07-03

Status

This is a single working document combining the analytical plan with the code and outputs that carry it out. Several conceptual questions below are resolved; several concrete decisions (final scope of Girvan-Newman, whether to add directionality, which alternative unit of analysis to pursue first) are deliberately still open and marked as such. Sections without code are strategy and reasoning; sections with code are live analysis.

Starting point

The original motivating question, from the seed paper (Lund & Sindbæk 2022): does the field divide into something like two camps around the origin of the Viking Age, along lines that co-vary across gender, topic, method and sources of evidence?

This is a substantive, testable proposition from the literature — worth distinguishing from the research team’s own fieldwork-based instincts about where the data might be heading (e.g. topic/gender associations noticed informally in the field). Both are legitimate to bring to this analysis, but they carry different epistemic weight and should be kept distinct in any eventual writeup: one is a claim to confirm or complicate; the other is an interpretive lens the team brings to reading whatever the data shows.

Core methodological stance: no baseline, just independent descriptions

This is not a search for deviation from an expected or random pattern. The dataset is historically and socially situated — citation clustering along social, institutional, or intellectual lines is the expected, produced-by-history outcome, not an anomaly standing out against a null model. This is a real objection to modularity-based community detection (Louvain, Leiden), whose optimization target is explicitly “more clustered than a random graph with the same degree sequence would be.” That framing is not a neutral default for this kind of data.

The working alternative, used throughout this document: treat every computed structure — citation-graph community structure, the annotation cross-tab, per-work citer profiles, direct homophily rates — as an independent, self-contained description of the corpus, computed on its own terms with no reference point implied. None is privileged as ground truth against which another is checked. The actual analytical content is in the relationship between these descriptions once more than one exists: agreement, disagreement, partial overlap, or cross-cutting are all just facts about that relationship, not confirmations or violations of anything. This is the logic behind treating the annotation data as something to “bolt on” to a citation-structure analysis, rather than using one to validate the other, and it governs how every result below should be read.

Why Girvan-Newman over modularity methods, for the “camps” question

Louvain and Leiden are fast (near-linear time, tractable at any scale without special hardware) and were considered as a way around Girvan-Newman’s poor scalability. Both are computed below as additional independent descriptions, but neither is treated as the primary method for the “camps” question specifically, for reasons distinct from performance:

  • Their optimization target (deviation from a random-graph null model) is the wrong lens for socially/historically produced structure, per above.
  • The “camps” question is specifically about whether the graph splits cleanly, and in what order — a first split into two, each of which may or may not split further into more nuanced sub-divisions. Girvan-Newman’s hierarchical, edge-removal structure encodes exactly this nesting as a byproduct of how it runs; a flat modularity partition does not answer “is two-way division the first-order truth” as directly.

Louvain/Leiden are computed as additional, independent descriptions in their own right — not as a faster substitute for Girvan-Newman, and not as a “cross-check” implying agreement would validate either method. The two families of method ask different structural questions (dense-cluster membership vs. load-bearing bridges) and can legitimately produce different, non-comparable pictures of the same graph. Their disagreement, if any, is reported as a finding, not a discrepancy to resolve.

Girvan-Newman tractability

The problem. Full Girvan-Newman decomposition is expensive because edge betweenness centrality must be recomputed after every single edge removal — this is inherently sequential across iterations (removal i+1 depends on the graph state after removal i), so parallelizing across iterations is not possible. An earlier assessment that GN “can’t really be parallelized” on an available 84-core server is only half right.

What does parallelize. The betweenness calculation within a single iteration (Brandes’ algorithm) sums independent per-source-node contributions, and is embarrassingly parallel across those source nodes. graph-tool supports this; a networkx-based multiprocessing wrapper could achieve something similar. This would meaningfully speed up the expensive per-iteration cost, without approximating anything — every node, including low-degree ones, remains fully part of the calculation. Not yet implemented in the code below — the current implementation uses igraph::cluster_edge_betweenness() as-is, which does not parallelize the per-iteration cost. This should be revisited if runtime on the full graph proves impractical.

Rejected optimization: peeling degree-1 (leaf) nodes, or pre-filtering to a k-core, before running GN. Considered and explicitly rejected. Leaves (or low-coreness nodes generally) are cheap to strip and their community assignment could be trivially inferred afterward from their highest-degree neighbor — but this is a real approximation, not a free win:

  • Leaves attached to a neighbor whose own community assignment is itself marginal/unstable would inherit an arbitrary decision.
  • Leaf-peeling cascades: removing one leaf can drop a neighbor to degree 1, triggering further removal, which can strip small but genuine citation chains, not just pendant noise.
  • Removing leaves changes the betweenness values of the edges that remain, since leaves still contribute path endpoints to the full-graph calculation — the pruned-graph result is not guaranteed to approximate the full-graph result closely.
  • Most importantly for this project: a paper cited only once may be exactly the interesting case (niche, contested, or newly-emerging reference) for a study of citational politics, not noise to discard. Peripheral/rarely-cited nodes are data, not overhead, given the research question explicitly concerns how peripheral material relates to dominant positions.

Current direction: bounded-depth GN on the full, unfiltered graph. Rather than decomposing to individual papers, or filtering the input graph first, the edge-removal process is read off at the first several splits (e.g. first split, then the splits within each resulting side), computed on every node in the graph. This is not merely a performance compromise — the first few splits are the more interpretable structural fact for the “camps” question; full decomposition to singleton papers stops being a meaningful description of factional structure at all. This is implemented below; whether it is fast enough on the full graph without the parallelization described above has not yet been benchmarked.

Time and directionality

The F1 corpus spans a single decade — too short to usefully time-slice without each slice becoming too sparse to support reliable community detection or homophily estimates. Time-sliced structural analysis and homophily-as-a-trend-over-time were both considered and set aside for this reason, not because time is uninteresting in principle.

Directionality remains open and is a separate matter from time-slicing. The citation graph is directed (citer → cited); the community-detection methods below are run on the undirected projection (standard practice for this class of algorithm, and consistent with the centrality measures, which are computed in directed form separately). Whether “who is drawn upon vs. who does the drawing” should be built into the community-detection step itself, using directed variants of GN/Louvain/Leiden, is not yet decided.

F2 publication date at time of citation is a separate small thread worth keeping in mind: F2 works are not bound by the F1 decade and may span a much longer history. Whether the age of cited material varies systematically depending on which part of the F1 corpus is doing the citing is a fact already present in the data (publication years) without requiring any time-slicing of the corpus itself. Not yet implemented below.

The independent descriptions computed in this document

Consistent with the no-baseline stance, the analysis is organized as a set of independently computable, independently meaningful descriptions of the corpus, to be placed alongside each other rather than run in a required sequence. This document computes:

  1. Structural descriptions of the citation graph — degree, centrality (betweenness, closeness, PageRank, HITS), k-core, connected components, and community detection (Girvan-Newman, Louvain, Leiden, k-means on centrality profiles). See below.

  2. The annotation cross-tab — author gender × primary/secondary topic × primary/secondary method, across the F1 corpus. Tests whether the seed paper’s supposed tripartite co-variation is visible in the coded data at all. Computed independently of any graph work.

Not yet implemented in this document, recorded here so the plan is not lost:

  1. Per-F2-node citer profiles. For F2 works cited by multiple F1 papers, characterize the citer set using annotation data that exists only on the F1 side: gender composition, topic/method diversity, and whether the citer set is itself structurally clustered or scattered. Does not require resolving the community-detection method question and is tractable immediately once prioritized. Speaks to a genuinely different citational-politics phenomenon than the corpus-wide cross-tab: whether particular sources function as shared/foundational touchstones cited across the field’s internal divisions, or as in-group markers cited mainly within one part of it.

  2. Direct citation homophily. Do papers (or, at the author level — see “alternative units” below — authors) disproportionately cite others sharing their coded gender/topic/method characteristics? A direct join of two already-independent descriptions (citation edges, annotation data) with no algorithmic mediation in between. Likely the most immediately tractable of the not-yet-built analyses.

  3. Joining structural and annotation descriptions. Whether Girvan-Newman’s top-level split(s), Louvain communities, and Leiden communities correspond to, cut across, or ignore the coded categories; whether centrality within a community correlates with author gender even when a community’s dominant topic is not itself gender-skewed.

Extension for future consideration: alternative units of analysis

Everything in this document treats the paper as the unit of the graph (papers cite papers). This is one particular projection of a richer structure, not the only one, and is worth extending in future work — not resolved or prioritized now, but recorded so it isn’t lost:

  • Author-level graphs. Collapsing papers into authors changes what centrality means (a prolific author becomes a hub independent of any single paper’s standing) and makes author-to-author citation homophily a more natural unit than paper-to-paper for gender-citation questions. Co-authorship itself becomes an additional structural question: do co-authorships cross or reinforce whatever divisions appear elsewhere.

  • Venue-level graphs (journal, edited volume, conference proceedings, grey literature/excavation report). Likely to reveal institutional or disciplinary structure rather than intellectual structure directly, and could complicate a purely topic/gender reading — a “camp” might partly reflect which kind of venue a sub-field mostly publishes in, particularly given the corpus’s substantial non-English, non-journal material (excavation reports, conference proceedings).

  • Kind-of-work as a unit (monograph vs. article vs. excavation report vs. edited-volume chapter). Related to venue but not identical; may track disciplinary/generational norms that could explain or cross-cut part of any gender/topic pattern rather than sitting alongside it as a fully independent axis.

Each alternative unit would be, again, an independent description rather than a more “real” or authoritative one. A useful way to stress-test any finding at the paper level is to check whether it persists, sharpens, or dissolves when re-aggregated to authors or venues — if a division only appears at one level of aggregation, that is itself informative about whether the division is fundamentally about individual works, about people, or about where people publish.


Part 1 — Annotation descriptives (F1 corpus)

This section computes the annotation cross-tab entirely independently of the graph work above — no reference to citation structure, communities, or centrality. Per the no-baseline stance, this is not a check against Part 1; it stands on its own, and Part 3 (below) is where the two are placed side by side.

Publications per year

Gender by first author and all authors

Publications by gender for each year. Single-author work vs. collaborations have not yet been examined separately.

Multi-author gender composition and author order

The analyses above use first-author gender only (for the topic/method/source cross-tabs later in this document) or a flattened, order-blind pool of all author genders (the “all authors” plot). Neither captures gender composition per paper (all-male vs. all-female vs. mixed) or order within a paper, both of which are needed for the co-authorship questions raised in planning (do co-authorships cross or reinforce whatever divisions appear elsewhere; does the most senior/lead author’s gender matter independently of the full author-list composition).

Author order is genuinely ambiguous in this corpus and must be handled carefully, not with a single fixed rule. Field convention varies: first-author-as-lead is standard for excavation/fieldwork-based publications, but last-author-as-lead (PI convention) is standard for lab-based work. Which convention applies depends on the paper’s own method — one of the coded variables, not something inferable from the author list alone. The lookup below (fieldwork_lead_methods) is a placeholder mapping specific coded method categories to the convention that applies; it must be filled in with the actual method category names from the codebook before this analysis is meaningful. Left unmapped, methods default to “ambiguous” and are excluded from any lead-author-specific analysis (though still included in the order-blind composition analysis below).

This section works generically across however many Authors..Genders..Author.N. columns exist in the data — no fixed column count is assumed.

Candidate gender-composition categorizations

Several ways of collapsing a per-paper gender sequence into a single cross-tabbable category are computed side by side below, since it is not yet decided which is most useful. This is a case of comparing several independent categorization schemes against the same underlying data, not picking the “correct” one — inspect the resulting distributions before choosing.

Lead-author gender, conditioned on field convention

Gender composition by primary topic, method, and source of evidence

Unlike the first-author-only cross-tabs later in this document, this uses the composition categories above — bringing multi-author, order-aware gender data into the same kind of comparison already done for first-author gender. composition_strict is used here as a starting point; swap in composition_majority or composition_singleauthor_split to compare.

Not yet done, worth noting: the topic/method/source cross-tabs above use primary values only, same limitation as the first-author-only cross-tabs later in this document — secondary topic/method/source values are not yet brought into any gender comparison. Extending composition_topic/composition_method/composition_source to include secondary values would mean joining on both Primary and Secondary counts rather than filtering to Primary only, and deciding how to weight or display a paper that contributes to multiple topics at once.

Primary topic, in aggregate and over time

Primary method, in aggregate and over time

Primary sources of evidence, in aggregate and over time

Secondary topics by primary topic

Secondary methods by primary method

Secondary sources of evidence by primary source of evidence

Primary topic by first author gender

This is the first of the three plots most directly relevant to the seed paper’s tripartite (gender/topic/method) supposition. Normalizing each topic’s proportions against the corpus-wide gender base rate has been discussed as a follow-up refinement but not yet implemented — the raw proportions below do not yet control for the overall gender imbalance in the corpus.

Primary method by first author gender

Primary source of evidence by first author gender

Region


Part 2 — Citation graph: structural descriptions

Setup

Degree and centrality

In-degree (times cited within the corpus) and out-degree (number of works cited) capture different roles. High in-degree identifies widely-cited works — the intellectual anchors of the field. High out-degree identifies works that are heavily engaged with the literature, drawing on many sources.

Betweenness centrality identifies works that sit on many shortest paths between other works — brokers between sub-literatures. Betweenness is expensive to compute on large graphs; normalized values are reported.

PageRank assigns authority based on incoming links weighted by the authority of the linking node — conceptually similar to being cited by works that are themselves widely cited. Hub and authority scores (HITS) are complementary: hubs point to many authorities; authorities are pointed to by many hubs.

Peripheral works — low degree, low centrality by every measure below — are not treated as noise in this project. A work cited only once may be exactly the interesting case (a niche, contested, or newly emerging reference) for a study of citational politics. No node is excluded from any measure in this section on the basis of low degree.

Most cited (by in-degree)

Most citing (by out-degree)

Degree distribution

A power-law or scale-free degree distribution is characteristic of citation networks: most works are cited rarely, a small number are cited frequently. The log-log plot tests this.

Top by betweenness centrality

Works with high betweenness mediate between otherwise disconnected parts of the citation network — likely works that bridge sub-fields or periods.

Connected components

A weakly connected component (WCC) treats edges as undirected. A strongly connected component (SCC) requires paths in both directions — rare in citation networks, since citations are historically directed (a 2010 paper cannot cite a 2020 paper). The WCC structure shows how fragmented the network is; a dominant giant component indicates a well-connected literature.

WCC size distribution

K-core decomposition

The k-core of a graph is the maximal subgraph in which every node has at least k connections to other nodes within that subgraph. It is computed by iteratively removing nodes with degree below k until no further removal is possible. Nodes are assigned a coreness value equal to the highest k for which they remain in the k-core.

K-core decomposition is reported here purely as a descriptive measure — identifying which works are structurally embedded in dense mutual-citation relationships versus which sit at the periphery. It is not used below as a preprocessing filter for any other method; every peripheral node (coreness = 1, or excluded entirely from any k ≥ 2 core) remains a full participant in every other analysis in this document, including Girvan-Newman.

Reference: Alvarez-Hamelin et al. (2005). Large scale networks fingerprinting and visualization using the k-core decomposition. Advances in Neural Information Processing Systems, 18.

Community detection

Community detection here produces several independent descriptions of how the graph divides, not a single answer to be triangulated (see “Core methodological stance” above). Louvain and Leiden ask “which groups of nodes are more densely interconnected than a random graph with the same degree sequence would predict.” Girvan-Newman asks “which edges, if removed, disconnect otherwise-separate parts of the network.” These are genuinely different questions; neither validates the other.

References:

  • Blondel et al. (2008). Fast unfolding of communities in large networks. Journal of Statistical Mechanics, P10008.
  • Traag et al. (2019). From Louvain to Leiden. Scientific Reports, 9, 5233.
  • Girvan & Newman (2002). Community structure in social and biological networks. PNAS, 99(12), 7821–7826.
  • Newman (2006). Modularity and community structure in networks. PNAS, 103(23), 8577–8582.

Girvan-Newman, bounded depth, full graph, no pre-filtering

Run on the complete undirected graph — no k-core or degree-based pre-filtering (see “Girvan-Newman tractability” above for why). n_splits controls how many top-level divisions to read off, rather than decomposing to full singleton dendrogram depth. igraph::cluster_edge_betweenness() computes the full dendrogram internally; cutat() reads off the partition at a given number of communities without altering the underlying (expensive) betweenness computation — this means the implementation below does not yet save the compute cost of full decomposition; it defers that optimization (parallelized per-iteration betweenness) to future work and should be benchmarked on the full graph before assuming it is tractable as-is.

K-means clustering

K-means clusters nodes based on their centrality feature profiles rather than graph structure. It groups works that occupy similar structural positions — for example, highly-cited authorities vs. high-betweenness brokers vs. peripheral works — rather than groups that densely cite each other. This is a further independent description, not a validation of the community-detection methods above.

Cluster profiles

Structural node table export

Part 3 — Joining structural and annotation descriptions

Everything in Part 1 describes the graph on its own terms; everything in Part 2 describes the annotation data on its own terms. Neither is a baseline the other is checked against — this section places them side by side and reads the relationship, which is where the actual analytical content of this project lives.

Planned comparisons, not yet implemented:

  • Whether Girvan-Newman’s top-level split(s) (community_gn), Louvain communities (community_louvain), and Leiden communities (community_leiden) correspond to, cut across, or ignore the coded topic / method / source-of-evidence / author-gender categories from Part 2.
  • Whether centrality (in_degree, betweenness, pagerank) within a community correlates with author gender — i.e. whether the most central or bridging works within a cluster are disproportionately authored by one gender even when the cluster’s dominant topic is not itself gender-skewed in the annotation data.
  • Direct citation homophily: whether papers (or, at a future author-level aggregation, authors) disproportionately cite others sharing their coded gender / topic / method characteristics. Computable directly from the edge list and the join above; does not require any community-detection output.
  • Per-F2-node citer profiles: for F2 works with in_degree above some threshold, characterize the annotation profile (gender, topic, method) of their F1 citer set, to see whether particular sources function as shared touchstones across the field’s internal divisions or as in-group markers cited mainly within one part of it.

Open decisions (not yet resolved)

  • Whether and how to implement bounded-depth, parallelized Girvan-Newman; no benchmarking done yet on how many splits are needed for a stable, interpretable first division, or on runtime for the full-graph betweenness computation as currently implemented.
  • Whether directed variants of GN/Louvain/Leiden are worth the added complexity for this project’s specific questions.
  • Which alternative unit of analysis (author, venue, kind-of-work), if any, to pursue first, and on what timeline relative to the paper-level work in this document.
  • How explicitly to frame the seed-paper-testing angle in eventual writeups, given the PI/co-author relationship.
  • Normalizing topic/method/source proportions against the corpus-wide gender base rate, rather than reporting raw proportions.
  • Which gender-composition categorization (composition_strict, composition_majority, composition_singleauthor_split, or another) is actually the most useful for the topic/method/source cross-tabs — computed side by side, not yet chosen.
  • fieldwork_lead_methods (the mapping from coded method category to first-vs-last lead-author convention) is a placeholder and must be filled in with real codebook category names before the lead-author analysis is meaningful; currently everything defaults to “ambiguous.”
  • Secondary topic/method/source values are not yet included in any gender cross-tab (composition-based or first-author-only) — only primary values are currently compared against gender.
  • Region is not yet cross-tabbed against gender/topic/method/source (word cloud only, by design for now).