BibVik — Part 3: Joining structural and annotation descriptions

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

This document renders the full analysis by including each stage in sequence. Each stage is also a standalone .qmd and can be read, edited, or rendered independently. See 00_plan.qmd, 01_annotation.qmd, 02_network_structure.qmd, 03_joined_descriptions.qmd. Girvan-Newman runs separately, outside this chain entirely — see gn_analysis/README.md.

Executed analysis lives in separate files:

This document holds only the analytical plan and reasoning; no executed code.

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.


Strategy and reasoning for this analysis: see 00_plan.qmd.

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.

Detected 5 author-position gender columns:
[1] "Authors..Genders..Author.1." "Authors..Genders..Author.2."
[3] "Authors..Genders..Author.3." "Authors..Genders..Author.4."
[5] "Authors..Genders..Author.5."
Author-count distribution
n_authors n
1 223
2 61
3 25
4 18
5 38
6 1
9 1

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.

Candidate 1: strict (all-same vs. mixed)
composition_strict n
all-female 119
all-male 159
includes uncertain 6
mixed 83
Candidate 2: majority-based
composition_majority n
balanced 27
includes uncertain 6
majority-female 148
majority-male 186
Candidate 3: solo-authorship split out
composition_singleauthor_split n
all-female (multi-author) 20
all-male (multi-author) 35
includes uncertain 6
mixed 83
solo-female 99
solo-male 124

Lead-author gender, conditioned on field convention

Papers by lead convention (based on placeholder mapping above — fill in before trusting this):
lead_convention n
ambiguous 909

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


Strategy and reasoning for this analysis: see 00_plan.qmd.

Girvan-Newman is run separately, outside this document — see gn_analysis/README.md. Its output (gn_analysis/results/communities.csv) can be read in here once available; see the commented-out read-in at the end of this file.

Part 2 — Citation graph: structural descriptions

Setup

Nodes: 14331 
Edges: 24635 
Directed: TRUE 
Density: 0.0001199582 
Ghost nodes (tombstoned entries retained for edge preservation): 0 

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)

name title year generation in_degree
smith2020 Migrant Identities and Funerary Practices: An Archaeological Perspective 2020 F2 100
price2002 The Viking way: religion and war in late Iron Age Scandinavia, Uppsala. Price, Neil In press: The archaeology of seiðr: circumpolar traditions in Viking pre-Christian religion 2002 F1 75
unesco2019 Hedeby Harbour: Insights into Long Distance Trade and Maritime Practices 2019 F2 44
skre2007 Towns and Markets, Kings and Central Places in South-Western Scandinavia C. Ad 800-950 2007 F2 43
svanberg2003 Death rituals in south-east Scandinavia AD 800-1000: Decolonizing the Viking Age 2. Stockholm: Almqvist and Wiksell International. häte, Eva 2007. Monuments and minds: monument re-use in Scandinavia in the second half of the irst millennium AD 2003 F1 42
sindbaek2007 2007a. he Small World of the Vikings: Networks in Early Medieval Communication and Exchange 2007 F1 34
brink2008 Lord and Lady -Bryti and Deigja: some historical and etymological aspects of family, patronage and slavery in early Scandinavia and Anglo-Saxon England 2008 F2 32
price2010 Kings and commoners at copán: isotopic evidence for origins and movement in the classic maya period 2010 F1 26
arbman1940 Birka. Untersuchungen und Studien. 1. Die Gräber: Tafeln. Stockholm: Vitterhets-, historie-och antikvitetsakademien 1940 F2 26
price2008 Routledge, London. 2008b. Bodylore and the Archaeology of Embedded Religion: Dramatic License in the Funerals of the Vikings 2008 F1 25
barrett2008 Detecting the Medieval Cod Trade: A New Method and First Results 2008 F1 24
skre2008 Dark Age Towns: The Kaupang Case. Reply to Przemysław Urbańczyk 2008 F1 24
hedeager2011 Iron Age Myth and Materiality: An Archaeology of Scandinavia AD 400-1000. L and 2011 F1 23
feveile2006 ASR 1000 Ribelund II, in Det AEldste Ribe: Udgravninger på Nordsiden af Ribe Å 1984-2000, ed. C. Feveile. (Ribe Studier 1.2.) Aarhus: Jysk Arkaeologisk Selskab 2006 F2 23
hedeager1999 Deposition of wealth in the cultura l landscape. glyfer och arkeolog iska rum -en viinbok till jar! nordbladh 1999 F2 22
sindbaek2011 Silver economies and social ties: Long-distance interaction, long-term investments -And why the Viking Age happened 2011 F1 21
solli2002 Herskermaktens ritualer. kan mytologien sette oss på spor av riter, gjenstander og kult knyttet til herskerens intronisasjon? 2002 F1 21
gustin2004 The Coins and Weights from the Excavations 1990-1995. An Introduction and Presentation of the Material. Eastern connections. Excavations in the black earth 1990-1995. P. 2, Numismatics and metrology 2004 F2 21
zachrisson1998 Gård, gräns och gravfält, sammanhang kring ädelmetalldepåer och runstenar från vikingatid och tidigmedeltid i uppland och gästrikland. stockholm studies in archaology 15 1998 F2 21
barrett2004 Identity, gender, religion, and economy: New isotope and radiocarbon evidence for marine resource intensification in Early Historic Orkney, Scotland, UK 2004 F2 21

Most citing (by out-degree)

name title year generation out_degree
NOAUTHOR24 F1 1113
lund2021 Crossing the Maelstrom: New Departures in Viking Archaeology 2021-05-15 P 570
weissnd Stettin Os ´rodek Archeologii S ´redniowiecza Krajów Nadbałtyckich Instytut Archeologii i etnologii pAN Wien Österreichische Nationalbibliothek gEfördErt durcH F1 480
raffield2019 Playing Vikings: Militarism, hegemonic masculinities, and childhood enculturation in Viking Age Scandinavia 2019 F1 264
croix2019 Single Context, Metacontext, and High Definition Archaeology: Integrating New Standards of Stratigraphic Excavation and Recording 2019 F1 252
anchukaitis2017 Last millennium Northern Hemisphere summer temperatures from tree rings: Part II, spatially resolved reconstructions 2017 F1 226
NOAUTHOR28 Kaupanghave Qualified for Classification as Prototowns or Emporia, According to Frankish and Anglo-Saxon Terms and Models ( F1 195
gardela2018 Amazons of the North? Armed females in Viking archaeology and medieval literature 2018 F1 184
bill2019 5. The Ship Graves on Kormt – and Beyond 2019 F1 174
price2019 Vikings in Russia: Origins of the medieval inhabitants of Staraya Ladoga 2019 F1 168
price2018 Multi-Isotope Proveniencing of Human Remains from a Bronze Age Battlefield in the Tollense Valley in Northeast Germany 2018 F1 167
croix2015 The Vikings, Victims of their Own Success? A Selective View on Viking Research and its Dissemination 2015 F1 165
raffield2016 Male-Biased Operational Sex Ratios and the Viking Phenomenon: An Evolutionary Anthropological Perspective on Late Iron Age Scandinavian Raiding 2016 F1 165
raffield2018 Polygyny, concubinage and the social lives of women in Viking Age Scandinavia 2018 F1 160
solli2011 The archaeology of ice. Finds from the Frozen Past. Exhibition in Historical Museum 2011 F1 158
knudson2012 Migration and Viking Dublin: Paleomobility and paleodiet through isotopic analyses 2012 F1 156
hartman2017 Medieval Iceland, Greenland, and the New Human Condition: A case study in integrated environmental humanities 2017 F1 154
milek2012 Floor Formation Processes and the Interpretation of Site Activity Areas: An Ethnoarchaeological Study of Turf Buildings at Thvera, Northeast Iceland 2012 F1 153
skre2019 Rulership in 1st to 14th Century Scandinavia: Royal Graves and Sites at Avaldsnes and Beyond, Ergänzungsbände zum Reallexikon der Germanischen Altertumskunde 2019 F1 148
barrett2010 Rounding up the usual suspects: Causation and the Viking Age diaspora 2010 F1 146

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.

name title year betweenness
price2010 Kings and commoners at copán: isotopic evidence for origins and movement in the classic maya period 2010 0.0012
price2018 Multi-Isotope Proveniencing of Human Remains from a Bronze Age Battlefield in the Tollense Valley in Northeast Germany 2018 0.0012
carver2015 Commerce and cult: Confronted ideologies in 6th-9th-century Europe 2015 0.0012
gullbekk2014 Vestfold: A monetary perspective on the Viking Age 2014 0.0008
skre2017 Monetary practices in early medieval western Scandinavia (5th-10th centuries AD) 2017 0.0008
skre2019 Rulership in 1st to 14th Century Scandinavia: Royal Graves and Sites at Avaldsnes and Beyond, Ergänzungsbände zum Reallexikon der Germanischen Altertumskunde 2019 0.0007
baug2019 The beginning of the Viking Age in the West 2019 0.0007
ashby2015 What really caused the Viking Age? The social content of raiding and exploration. Archaeological Dialogues 2015 0.0006
hilberg2014 Viking Age Hedeby and its relations with Iceland and the North Atlantic: Communication, long-distance trade, and production 2014 0.0004
hadley2016 radiocarbon dates for the cist graves are AD 1030-1210 and AD 1025-1165 2016 0.0003
rogers2020 Non-ferrous metalworking networks in Scandinavian-influenced towns of Britain and Ireland 2020 0.0003
croix2015 The Vikings, Victims of their Own Success? A Selective View on Viking Research and its Dissemination 2015 0.0003
gardela2015 Uzbrojona kobieta z truso. Nowe rozważania nad miniaturami tzw. walkirii z epoki wikingów’ (The Armed Female from truso 2015 0.0003
price2011 Who was in Harold Bluetooth´s army? Strontium isotope investigation of the cemetery at the Viking Age fortress at Trelleborg, Denmark. Antiquity 2011 0.0003
price2014 Galgedil: Isotopic studies of a Viking cemetery on the Danish island of Funen, AD 800-1050 2014 0.0002
raffield2016 Male-Biased Operational Sex Ratios and the Viking Phenomenon: An Evolutionary Anthropological Perspective on Late Iron Age Scandinavian Raiding 2016 0.0002
perry2016 Pottery production in Anglo-Scandinavian Torksey (Lincolnshire): Reconstructing and contextualising the chaîne opératoire 2016 0.0002
sindbaek2017 Urbanism and exchange in the North Atlantic/Baltic, 600-1000 CE 2017 0.0002
raffield2014 A River of Knives and Swords’: Ritually Deposited Weapons in English Watercourses and Wetlands During the Viking Age 2014 0.0001
eriksen2013 Doors to the dead: The power of doorways and thresholds in Viking Age Scandinavia 2013 0.0001

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.

Weakly connected components: 1 
Largest WCC: 14331 nodes ( 100 % of graph)
Strongly connected components: 14302 
Largest SCC: 22 nodes

WCC size distribution

size n
14331 1

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.

Coreness distribution:

    1     2     3     4     5     6     7     8     9 
10269  1935   756   362   245   179   114   155   316 
coreness n mean_in_degree
9 316 9.38
8 155 6.70
7 114 6.20
6 179 5.31
5 245 4.68
4 362 3.95
3 756 2.99
2 1935 2.00
1 10269 1.00
name title year coreness in_degree
smith2020 Migrant Identities and Funerary Practices: An Archaeological Perspective 2020 9 100
price2002 The Viking way: religion and war in late Iron Age Scandinavia, Uppsala. Price, Neil In press: The archaeology of seiðr: circumpolar traditions in Viking pre-Christian religion 2002 9 75
unesco2019 Hedeby Harbour: Insights into Long Distance Trade and Maritime Practices 2019 9 44
skre2007 Towns and Markets, Kings and Central Places in South-Western Scandinavia C. Ad 800-950 2007 9 43
svanberg2003 Death rituals in south-east Scandinavia AD 800-1000: Decolonizing the Viking Age 2. Stockholm: Almqvist and Wiksell International. häte, Eva 2007. Monuments and minds: monument re-use in Scandinavia in the second half of the irst millennium AD 2003 9 42
sindbaek2007 2007a. he Small World of the Vikings: Networks in Early Medieval Communication and Exchange 2007 9 34
brink2008 Lord and Lady -Bryti and Deigja: some historical and etymological aspects of family, patronage and slavery in early Scandinavia and Anglo-Saxon England 2008 9 32
price2010 Kings and commoners at copán: isotopic evidence for origins and movement in the classic maya period 2010 9 26
arbman1940 Birka. Untersuchungen und Studien. 1. Die Gräber: Tafeln. Stockholm: Vitterhets-, historie-och antikvitetsakademien 1940 9 26
price2008 Routledge, London. 2008b. Bodylore and the Archaeology of Embedded Religion: Dramatic License in the Funerals of the Vikings 2008 9 25
barrett2008 Detecting the Medieval Cod Trade: A New Method and First Results 2008 9 24
skre2008 Dark Age Towns: The Kaupang Case. Reply to Przemysław Urbańczyk 2008 9 24
hedeager2011 Iron Age Myth and Materiality: An Archaeology of Scandinavia AD 400-1000. L and 2011 9 23
feveile2006 ASR 1000 Ribelund II, in Det AEldste Ribe: Udgravninger på Nordsiden af Ribe Å 1984-2000, ed. C. Feveile. (Ribe Studier 1.2.) Aarhus: Jysk Arkaeologisk Selskab 2006 9 23
hedeager1999 Deposition of wealth in the cultura l landscape. glyfer och arkeolog iska rum -en viinbok till jar! nordbladh 1999 9 22
sindbaek2011 Silver economies and social ties: Long-distance interaction, long-term investments -And why the Viking Age happened 2011 9 21
solli2002 Herskermaktens ritualer. kan mytologien sette oss på spor av riter, gjenstander og kult knyttet til herskerens intronisasjon? 2002 9 21
gustin2004 The Coins and Weights from the Excavations 1990-1995. An Introduction and Presentation of the Material. Eastern connections. Excavations in the black earth 1990-1995. P. 2, Numismatics and metrology 2004 9 21
zachrisson1998 Gård, gräns och gravfält, sammanhang kring ädelmetalldepåer och runstenar från vikingatid och tidigmedeltid i uppland och gästrikland. stockholm studies in archaology 15 1998 9 21
barrett2004 Identity, gender, religion, and economy: New isotope and radiocarbon evidence for marine resource intensification in Early Historic Orkney, Scotland, UK 2004 9 21

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.
Louvain communities: 28 
Modularity: 0.6708 
community size
3 1338
2 1252
1 1203
28 1109
14 941
17 870
7 831
10 727
8 574
12 503
24 442
4 427
22 379
15 356
23 322
6 317
20 314
25 312
18 311
11 282

Leiden communities: 31 
Modularity: 0.6971 
community size
2 1215
31 1119
6 934
3 926
13 832
23 823
21 755
14 660
8 581
5 550
9 519
20 500
15 458
28 448
11 365
30 352
24 339
7 328
25 307
17 297

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 sizes:

   1    2    3    4    5    6 
7299    8 6227  746    1   50 

Cluster profiles

cluster_kmeans n mean_pagerank mean_betweenness mean_authority mean_in_degree
6 50 9e-05 0.00001 0.11172 22.82000
2 8 8e-05 0.00089 0.01697 9.75000
4 746 8e-05 0.00000 0.02893 6.97587
3 6227 7e-05 0.00000 0.00395 1.57219
1 7299 7e-05 0.00000 0.13702 1.15372
5 1 7e-05 0.00001 0.00488 1.00000

Structural node table export

Joined Girvan-Newman communities from /Users/zackbatist/Library/CloudStorage/Dropbox/obsidian/projects/BibVik/analysis/gn_analysis/results/multi_cut/communities_round_9115.csv (fragmentation-onset round 9115 ) 
Written bibvik_node_table.csv
Rows: 14331 

Girvan-Newman communities

Computed standalone (see gn_analysis/README.md) and joined in above only if that run’s output was available at render time. Summary, size table, and plot below are shown only if a partition was found in gn_analysis/results/multi_cut/.

Choosing a stopping point. Girvan-Newman is a divisive algorithm: it removes one edge at a time, so the graph passes through every possible partition from fully connected to fully atomized, and a single partition must be chosen from that sequence to report as “the communities.” The conventional stopping rule — the round of highest modularity across the whole run — fails on this corpus: modularity keeps rising as the graph disintegrates into isolated works, peaking only once 97.5% of nodes are singleton “communities” of size one. This is a known limitation of modularity as a stopping criterion on sparse, hub-dominated citation networks rather than a fault in the computation, but it means the best-modularity partition cannot be used as reported.

Two alternative stopping criteria were evaluated directly against this corpus’s edge-removal sequence. The first, locating the sharpest single-round drop in modularity, proved unreliable here: the modularity trace is noisy throughout the heavily-fragmented tail of the run, so the single steepest drop falls in that same noisy region rather than at a meaningful transition. The second — treating the point where the count of connected components begins rising by roughly one per round, and continues doing so for a sustained run of 100 or more consecutive rounds — identifies the onset of active fragmentation directly from the graph’s own breakup behaviour, independent of modularity. This is the criterion used here. (Percolation-theory measures that track component size rather than component count — e.g. a susceptibility statistic, or the rate of decline of the giant component — were considered as complementary checks on this choice but have not yet been computed for this corpus.)

Applying the fragmentation-onset criterion to this run’s edge-removal sequence identifies six points at which the corpus’s fragmentation rate undergoes a sustained increase, not one: rounds 9,115, 9,454, 11,139, 11,860, 13,040, and 23,868. This is itself informative about the corpus’s structure — literature does not fragment into communities in one clean step, but in a series of accelerating breakups. However, these six points are not interchangeable candidates for “the” community partition:

Round Communities Singletons % singleton Largest community
9,115 199 0 0% 1,076
9,454 447 240 54% 836
11,139 1,521 1,234 81% 161
11,860 2,035 1,714 84% 96
13,040 3,122 2,786 89% 87
23,868 13,626 13,281 97% 5

Only the earliest transition (round 9,115) yields a partition with no singleton communities; every subsequent transition is already majority-singleton, worsening monotonically toward the same near-total-fragmentation state that ruled out the modularity-peak stopping rule in the first place. The corpus’s later fragmentation points therefore document how community structure dissolves rather than offering alternative, equally-valid readings of it. Round 9,115 is used below as the working partition (community_gn); the partitions at the other five points are retained in gn_analysis/results/multi_cut/ as a record of that dissolution, not as alternative community assignments.

This procedure identifies the coarsest point at which the corpus still exhibits legible community structure — it does not, on its own, establish that this is where the most meaningful structure lies. An earlier exploratory pass checked two individual communities from a nearby cut against paper titles and the study’s own annotation coding and found the groupings interpretable (a theory/ritual cluster separating cleanly from a place-names/hoards cluster within one community, for instance); that spot-check has not been extended systematically across the full partition, nor repeated at any of the other five transition points, so it supports plausibility rather than confirming that round 9,115 is uniquely correct. Readers who want a finer-grained or differently-motivated partition should treat the dendrogram below, not this flat cut, as the primary source: it preserves the full nested structure and does not require committing to one round.

Reading the dendrogram. gn_analysis/build_dendrogram.R reconstructs the complete nested merge structure from the edge-removal sequence, rather than the single flat partition above. Its construction logic was verified against hand-traced synthetic cases and reproduces the expected leaf and merge counts on this corpus. Height on the plotted tree reflects merge order rather than raw round number: because splits are unevenly spaced across the run’s ~24,600 rounds, a linear round-based axis compressed the whole tree into an unreadable band. The real round underlying each merge is preserved separately (round_at_height in the saved .rds object) for anyone who needs actual round distances rather than sequence order. The six fragmentation points identified above are not yet marked on the plotted tree.

Girvan-Newman communities: 199 
Modularity: 0.626 
community_gn size
179 1076
100 442
27 268
40 248
121 238
7 223
52 202
14 197
39 163
54 158
102 156
37 154
29 149
67 147
103 143
115 143
186 141
116 139
76 136
5 135

Girvan-Newman dendrogram

Built separately by gn_analysis/build_dendrogram.R from removal_log.csv. Not part of this render; run manually and embedded here if present. Shows the earliest split events (coarsest structure); see the script for the full split_events.csv and the .rds tree object if you want to zoom into a subtree.

Internal structure of individual communities

The round-9,115 partition and the whole-graph dendrogram above both describe the corpus at a single level: 199 communities, and one tree covering the earliest few hundred splits across all of them together. A separate question is whether any individual community has further structure worth surfacing on its own, the same kind of check performed earlier (see “Choosing a stopping point”) for two clusters against paper titles and annotation coding.

gn_analysis/build_subcluster_trees.R addresses this directly: seeded from the real round-9,115 community membership (not a re-derived or arbitrary starting point), it replays removal_log.csv separately for each of the round’s largest communities and records what happens to each one afterward. An initial version capped this replay at a fixed number of split events; that cap was itself an arbitrary choice with no basis in the data, so the script now replays each community to natural completion (full fragmentation or the end of the log) by default.

Doing so shows that, past each community’s first split, every one of the twelve largest communities collapses the same way the whole graph does: a single dominant piece sheds one node at a time for hundreds of further rounds, with no further balanced division anywhere in the sequence. Plotted as a dendrogram, this produces the same long single-branch shape for every community regardless of its size or its first split, differing only in length, so the per-community dendrogram plots turned out uninformative and are not included here (the script still writes them; see gn_analysis/results/subclusters/ if useful).

The one real signal in this data is the size of the two pieces at each community’s first split, which varies meaningfully across the twelve: most split off a single node or a small handful, but five communities (54 and 52 most balanced, then 27, 40, and 37 to a lesser extent) split into two pieces of comparable size, which is the same kind of balanced division that made the two clusters checked earlier interpretable.

Community 54’s split (111/47 nodes) is the most balanced of the twelve and the strongest remaining candidate for the kind of title/annotation check performed earlier; this has not yet been done.

Strategy and reasoning for this analysis: see 00_plan.qmd. Reads outputs of 01_annotation.qmd and 02_network_structure.qmd. Does not recompute either.

Everything in Part 1 describes the annotation data on its own terms; everything in Part 2 describes the graph 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.

df already in scope: 375 rows
node_table already in scope: 14331 rows
structural_df: 14331 rows. is_ghost values: false (class: character )
Joined cluster_table_annotated: 14339 rows
Rows with a matching annotation: 294 

Cluster structure vs. topics, methods, and sources of evidence

community_gn (Girvan-Newman, fragmentation-onset cut) is checked here against the topics, methods, and sources of evidence coded in Part 1, restricted to the 294 works with a matching annotation (F1-only; see the join above). Louvain and Leiden cluster assignments also exist from Part 2 but are not used in this section.

Coverage is thin relative to the graph as a whole: 294 annotated works out of 14,331 nodes, and within any single cluster that annotated count is often a small fraction of the cluster’s real size (the “other” grouping below hides clusters with fewer than 3 annotated works, but even the clusters shown may have only a handful of annotated works out of a much larger true membership). A prior exploratory pass on an earlier GN cut of this same corpus found 7-13 annotated nodes per cluster typical, out of hundreds of members, and treated agreement between structure and annotation as directionally suggestive rather than comprehensively verified for that reason. The same caution applies here: what follows can show that structure and coding line up somewhere, but cannot rule out that the uncoded majority of any cluster tells a different story.

The coded columns are wide, one column per topic/method/source category, valued "Primary", "Secondary", or blank. Primary and secondary are merged throughout what follows: a work counts as coded with a category at either level, matching the method used in a prior exploratory pass on an earlier GN cut of this corpus. A work can carry more than one topic, method, or source, so per-cluster percentages below do not sum to 100%; each cell shows the raw count behind its percentage for transparency.

How to read the enrichment heatmaps below. Raw coverage (what fraction of a cluster’s annotated works carry a given category) is misleading on its own: some categories are common across the whole corpus regardless of cluster — “Spatial analysis” as a method, or “Environment” as a topic, show up in most clusters simply because most works in this corpus use them, not because any one cluster is distinctively characterized by them. To separate genuine distinctiveness from corpus-wide popularity, each heatmap cell instead shows enrichment: a cluster’s coverage of a category divided by that category’s rate across the whole annotated corpus. A value of 1x means the cluster carries the category at exactly the corpus average; 2x means twice the corpus rate; 0.5x means half. White is 1x (baseline); blue is above baseline (the category is over-represented in that cluster, a real distinguishing signal); red is below baseline (under-represented). For example, if “Palaeoenvironment reconstruction” is coded in 23% of the whole corpus but 100% of cluster 52’s annotated works, that cell shows roughly 4.4x — a real signal that environmental method is disproportionately concentrated there, not just present because it’s common everywhere.

By topic

Works with both a cluster assignment and an annotation: 294 
Works with any topic coded: 284 

Girvan-Newman clusters by topic. A threshold of 3+ annotated works let through 118 of 199 clusters, unworkable at any scale. Shown here instead, in the heatmap below: the 20 clusters with the most annotated works. This is a readability choice, not a derived breakpoint; the underlying cluster sizes have a clear natural break only between the first and second-largest clusters (a drop of over 600 members), after which the size distribution tapers smoothly with no further break to justify any particular cutoff.

Coverage varies a lot by cluster (annotation is thin relative to true cluster size, per the caveat above), so each row label shows how many annotated works its percentages are based on, out of the cluster’s true total size.

By method

Same approach as the topic comparison above, applied to method.

Works with any method coded: 284 

By source of evidence

Same approach again, applied to source of evidence.

Works with any source of evidence coded: 283 

Cluster signatures: peak count and peak strength

Throughout this section, “cluster” means a Girvan-Newman graph cluster (community_gn), not a scholarly or social cluster.

The topic, method, and source enrichment findings above surface individual standout cells one at a time. This section combines them into two directly interpretable numbers per cluster, so the clusters most worth a closer look surface first instead of requiring a manual scan across three separate tables.

A peak is any category (topic, method, or source) whose 95% Wilson confidence interval on a cluster’s coverage rate lies entirely above the corpus-wide rate for that category — meaning the cluster’s coverage is higher than baseline with reasonable statistical confidence, not just a higher raw count. This adapts to sample size automatically: a cluster with only 3 annotated works needs a much larger raw enrichment to register as a peak than a cluster with 13, because a small sample’s interval is wider. This is the same criterion used in the topic, method, and source findings above (ci_lower > corpus_rate); “peak” here just names a category that already met that bar, so this section’s peak count and mean enrichment are computed directly from the same standouts listed there, not a separate pass.

For each cluster, two numbers: how many peaks it has, and how strong those peaks are on average. Neither is combined into a single score — peak count times mean enrichment is not a real, interpretable unit, and collapsing two different kinds of signal into one number invites over-reading it. Plotted directly instead: clusters with many peaks AND high average enrichment are worth reading first; a cluster with one very large but isolated peak is a different kind of finding (a strong single signal) than one with several moderate peaks (a broader, possibly more coherent pattern) — the plot keeps that distinction visible rather than flattening it. Whether a cluster’s peak categories actually cohere thematically is a judgment that requires reading them against domain knowledge of this corpus, which this plot does not attempt.

Peaks found (Wilson lower bound exceeds corpus baseline): 105 

The peak categories behind the clusters with the most peaks, shown directly rather than as a summary number:

Not yet done

Remaining planned comparisons

  • Whether centrality (in_degree, betweenness, pagerank) within a cluster 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 cluster-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

  • 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).