SPB Git

spb/wp44_uqo

Public

WP44: Part VIII v3 graph figures/tables; API-increment attribution corrected

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Nov 4, 2026) parent f6af7f1 Browse files

6 changed files +170 −56

modified manuscript/main.pdf +0 −0

Binary file not shown.

modified manuscript/sections/part08_networks.tex +93 −56
@@ -1,6 +1,7 @@
1 % part08_networks.tex — Part VIII, Scientific Knowledge Networks (Agent L/I, 2026-11-03). 1 % part08_networks.tex — Part VIII, Scientific Knowledge Networks (Agent L/I, 2026-11-03).
2 % Every corpus number is a macro from tables/numbers.tex or appears in a generated table (tables/make_tables.py). 2 % Every corpus number is a macro from tables/numbers.tex or appears in a generated table (tables/make_tables.py).
3−% Result files: results/bibliometrics/*.csv (corpus v2, 2026-11-03 18:0x) and results/graph/cited_age_yearly.csv (v1, pending v2). 3+% Result files: results/bibliometrics/*.csv (corpus v2, 2026-11-03 18:0x) and results/graph/*.csv (corpus v3 graph, 2026-11-03 18:44;
4+% tables tab_field_flows, tab_reference_coverage, tab_cited_age regenerated from them by tables/make_tables.py, Agent L/M).
4 5
5 \section{Scope and reading rules} 6 \section{Scope and reading rules}
6 \label{sec:net-scope} 7 \label{sec:net-scope}
@@ -20,8 +21,8 @@ Part~III (Section~\ref{sec:data-eligibility}), so that ``computer science'' mean
20 OpenAlex-primary-field and arXiv \texttt{cs} works after the exclusions of the PRISMA flow, and the indicators 21 OpenAlex-primary-field and arXiv \texttt{cs} works after the exclusions of the PRISMA flow, and the indicators
21 inherit the boundary decisions and the affiliation completeness of that corpus. Second, the two periods of the 22 inherit the boundary decisions and the affiliation completeness of that corpus. Second, the two periods of the
22 protocol are unequal in length and in completeness: the baseline runs from January 2018 to the end of 23 protocol are unequal in length and in completeness: the baseline runs from January 2018 to the end of
23−November 2022, the post period from December 2022 to the snapshot of October 2026 completed by the API 24+November 2022, the post period from December 2022 to the snapshot of October 2026 (the API increment of
24−increment, and the last year of the post period is partial for the reasons set out in 25+Part~III is archived but not yet merged into the analytical corpus), and the last year of the post period is partial for the reasons set out in
25 Section~\ref{sec:data-dates}. Tables by year therefore carry 2026 as an incomplete row, and the fixed-window 26 Section~\ref{sec:data-dates}. Tables by year therefore carry 2026 as an incomplete row, and the fixed-window
26 citation statistics of Section~\ref{sec:net-citations} are complete only up to the publication years flagged in 27 citation statistics of Section~\ref{sec:net-citations} are complete only up to the publication years flagged in
27 Table~\ref{tab:citation_windows}. Third, the comparison of periods is descriptive. The protocol states the 28 Table~\ref{tab:citation_windows}. Third, the comparison of periods is descriptive. The protocol states the
@@ -401,7 +402,7 @@ three years falls from \CitationWindowsYearlyTwoZeroOneEightShareUncitedThreeSix
401 citing population produces: each publication year is cited by the following two years' output, and that output 402 citing population produces: each publication year is cited by the following two years' output, and that output
402 grows, so later cohorts receive more citations at equal exposure \citep{bornmann2015growth}. The reversal in 403 grows, so later cohorts receive more citations at equal exposure \citep{bornmann2015growth}. The reversal in
403 2023 is the first sign of right truncation in the window, since the third calendar year of the 2023 cohort 404 2023 is the first sign of right truncation in the window, since the third calendar year of the 2023 cohort
404−is 2025, for which the increment of Part~III is complete but the slower channels of indexing are not; it is 405+is 2025, for which the slower channels of indexing (and citation extraction) are not complete; it is
405 flagged in the table and is the reason the 2024 row, whose window is formally incomplete, is not used. 406 flagged in the table and is the reason the 2024 row, whose window is formally incomplete, is not used.
406 407
407 The Gini coefficient of $c^{(36)}$ is the inequality statistic named, with a deviation in window length 408 The Gini coefficient of $c^{(36)}$ is the inequality statistic named, with a deviation in window length
@@ -506,48 +507,76 @@ H4 predicts that the share of citations crossing area boundaries rises in the po
506 defines two levels at which flows are measured: between the taxonomy categories of this study, through the 507 defines two levels at which flows are measured: between the taxonomy categories of this study, through the
507 flow matrices of equation~\eqref{eq:flow}, and between the corpus and the rest of the literature, through the 508 flow matrices of equation~\eqref{eq:flow}, and between the corpus and the rest of the literature, through the
508 external edge set of Section~\ref{sec:m-citgraph}, whose cited works are typed by their OpenAlex field. Only 509 external edge set of Section~\ref{sec:m-citgraph}, whose cited works are typed by their OpenAlex field. Only
509−the second level is available at the time of writing, and only from the first version of the corpus: the 510+the second level is available at the time of writing. Figure~\ref{fig:field_inflows} and
510−graph tables of \texttt{results/graph/} are being regenerated for corpus v2, and the field-flow file was not 511+Table~\ref{tab:field_flows} are generated from the current graph tables of \texttt{results/graph/}
511−present when this part was written. Figure~\ref{fig:field_inflows}, generated from the v1 file, is 512+(\texttt{field\_flows\_yearly.csv}, corpus v3), and Table~\ref{tab:reference_coverage}, from
512−described here qualitatively, and every quantitative statement about it is \pending{v2 graph}. 513+\texttt{reference\_coverage\_yearly.csv}, gives the denominators on which every share in this section rests:
514+the declared references of the eligible works of each citing year, the share of them that resolve to an
515+OpenAlex record, and the split of the resolved references into internal and external edges.
513 516
514 \begin{figure}[htbp] 517 \begin{figure}[htbp]
515 \centering 518 \centering
516 \includegraphics[width=0.95\textwidth]{fig_field_inflows.pdf} 519 \includegraphics[width=0.95\textwidth]{fig_field_inflows.pdf}
517 \caption{Share of the resolved references of eligible works, by citing year, that point to works inside the 520 \caption{Share of the resolved references of eligible works, by citing year, that point to works inside the
518−corpus and to works outside it by cited OpenAlex field (seven largest external fields). Generated from the 521+corpus and to works outside it by cited OpenAlex field (seven largest external fields). Generated by
519−corpus v1 file \texttt{results/graph/field\_flows\_yearly.csv}; to be regenerated for v2.} 522+\texttt{figures/make\_figures.py} from \texttt{results/graph/field\_flows\_yearly.csv} (corpus v3); the
523+values are in Table~\ref{tab:field_flows}.}
520 \label{fig:field_inflows} 524 \label{fig:field_inflows}
521 \end{figure} 525 \end{figure}
522 526
523−The figure separates the references of each citing year into those that point inside the corpus, that is, to 527+Table~\ref{tab:reference_coverage} is read first because it conditions the rest. The number of declared
524−computer-science works published from 2018 onward, and those that point outside it, by the cited work's 528+references per eligible work rises through the baseline and falls again in the last three citing years, the
525−field. Its dominant feature is mechanical and must be read first: the share of references pointing inside the 529+2026 row being the shortest; this is the right-truncation of reference lists (recent records are indexed
526−corpus rises steeply with the citing year, and the share pointing to computer science outside the corpus 530+before their reference lists are complete) rather than a change in citing practice, and it means that the
527−falls by the same amount, because the corpus starts in 2018 and a work published in 2018 cannot cite inside 531+shares of the last two rows of every table in this section are computed on fewer references per work than
528−it except at age zero, whereas a work published in 2026 has eight years of corpus to cite. The two 532+the earlier rows. The share of declared references that resolve to an OpenAlex record is nearly constant
529−computer-science curves together are approximately flat, and their sum is the share of references that 533+from 2018 to 2024 and higher in 2025--2026; the recent cohorts carry fewer parsed references per work (the
530−stay within the field. The curves of the other fields are what the flow question is about, and they are 534+reference-extraction channels of OpenAlex lag publication), and the references that are already parsed for
531−nearly flat over the window: engineering is the largest external field and declines slowly, the social 535+them resolve more often. The difference describes how the database was assembled, not what authors cite, and
532−sciences, mathematics, medicine, psychology and decision sciences each hold a few per cent of references 536+it is the reason the flow statistics are expressed as shares of resolved references, as the methodology requires.
533−with no visible change of direction in the post period, and medicine is the only external field whose share 537+The internal share of resolved references rises steeply with the citing year, and this is the mechanical
534−rises slightly at the end of the window. On the v1 evidence the field-level version of H4 is not supported: 538+feature of Figure~\ref{fig:field_inflows} that must be read before any other: the corpus starts in 2018, so a
535−the boundary-crossing share of computer-science references toward other OpenAlex fields does not rise 539+work published in 2018 cannot cite inside it except at age zero, whereas a work published in 2026 has eight
536−after 2022, and the slow decline of the engineering share continues a trend visible in the baseline. 540+years of corpus to cite. The share of references pointing to computer science outside the corpus, which is
537− 541+mostly pre-2018 computer science, falls as the internal share rises.
538−This is a weaker statement than the one H4 makes, and the difference should be kept in view. The 542+
539−hypothesis concerns boundaries \emph{within} computer science (systems toward AI, security toward AI, 543+The two computer-science columns of Table~\ref{tab:field_flows} do not, however, sum to a constant. Their
540−human--computer interaction toward AI), and a field whose sub-areas converge on a common set of methods 544+sum, the share of references that stay within the field, rises in every citing year of the window, and its
541−may well cite less outside the field, not more, as its internal frontier absorbs the attention that used to 545+complement, the share of references that cross into another OpenAlex field (column `Other fields'), falls in
542−go to mathematics or engineering. The flat external shares are therefore compatible with H4 and with its 546+every year, in the baseline years as in the post years and at a comparable pace on either side of the 2022
543−negation, and only the category flow matrices can decide between them. What the field-level curves do 547+boundary. Engineering, the largest external field, accounts for the greater part of the decline;
544−establish is a boundary condition for the interdisciplinarity literature: the diversity indices of 548+mathematics, decision sciences, physics and psychology decline slowly; the social sciences are stable; and
545−Section~\ref{sec:m-diversity}, whether Rao--Stirling or Leinster--Cobbold, will be computed over a reference 549+medicine is the only field among the seven whose share rises, so that by the end of the window it is the
546−distribution whose external component is small and stable, so that any change they detect will come from 550+second largest external destination after engineering. On this evidence the field-level version of H4 is
547−the internal component. \citet{porter2009interdisciplinarity} found, for six fields over three decades, that 551+not supported: the boundary-crossing share of computer-science references toward other fields does not rise
548−interdisciplinarity measured on references rose slowly and mostly through neighbouring fields; the 552+after 2022, it continues to fall, and no change of pace is visible at the boundary.
549−computer-science curves are consistent with that pattern and do not show the acceleration that the 553+
550−foundation-model narrative would predict. 554+Two reservations qualify the direction, though not the absence of a break. The first is a classification
555+boundary. The eligible corpus is the CS core of Part~III, that is, works with a computer-science topic
556+whatever their primary field, so a post-2018 engineering work with a computer-science topic is an internal
557+edge while its pre-2018 counterpart is an external edge typed as engineering; as the corpus lengthens, part
558+of what used to be counted as a flow to engineering or mathematics is re-counted as internal, and the
559+decline of the external shares is to that extent mechanical. The field-flow file does not type internal
560+edges by the cited work's primary field, so the size of this effect cannot be removed here; a flow table
561+that types every resolved reference, internal or external, by primary field would be the correction, and it
562+is noted for the director. The second is that H4 concerns boundaries \emph{within} computer science
563+(systems toward AI, security toward AI, human--computer interaction toward AI), and a field whose sub-areas
564+converge on a common set of methods may well cite less outside the field, not more, as its internal
565+frontier absorbs the attention that used to go to engineering or mathematics. A falling external share is
566+therefore compatible with H4 and with its negation, and only the category flow matrices can decide between
567+them. What the field-level table does establish is a boundary condition for the interdisciplinarity
568+literature: the diversity indices of Section~\ref{sec:m-diversity}, whether Rao--Stirling or
569+Leinster--Cobbold, are computed over a reference distribution whose external component is shrinking
570+smoothly, so that any change they detect at the 2022 boundary will come from the internal component.
571+\citet{porter2009interdisciplinarity} found, for six fields over three decades, that interdisciplinarity
572+measured on references rose slowly and mostly through neighbouring fields; the computer-science columns show
573+the neighbouring fields (engineering, mathematics, decision sciences) losing share and a non-neighbouring
574+one (medicine) gaining it, and they do not show the acceleration that the foundation-model narrative would
575+predict.
576+
577+\begingroup\renewcommand{\small}{\footnotesize}\setlength{\tabcolsep}{3pt}\input{tables/tab_reference_coverage}\endgroup
578+
579+\begingroup\renewcommand{\small}{\footnotesize}\setlength{\tabcolsep}{2.5pt}\input{tables/tab_field_flows}\endgroup
551 580
552 \subsection{The age of cited work} 581 \subsection{The age of cited work}
553 \label{sec:net-age} 582 \label{sec:net-age}
@@ -563,24 +592,26 @@ turnover is expected to be fastest, and \citet{frank2019citationgraphs} found th
563 become more self-referential and more recent-leaning over the 2010s. 592 become more self-referential and more recent-leaning over the 2010s.
564 593
565 Figure~\ref{fig:cited_age} and Table~\ref{tab:cited_age} give the distribution of the age of cited works, the 594 Figure~\ref{fig:cited_age} and Table~\ref{tab:cited_age} give the distribution of the age of cited works, the
566−citing year minus the cited work's publication year, for the resolved references of eligible works. The 595+citing year minus the cited work's publication year, for the resolved references of eligible works, read
567−cited-age file is the one graph table available at the time of writing, and it is a v1 file; the table will 596+from the corpus v3 file \texttt{results/graph/cited\_age\_yearly.csv}, which is built on the same edge sets as
568−be regenerated from the v2 file by the same script and its values are \pending{v2 graph}. On the v1 597+Table~\ref{tab:reference_coverage}. The mode of citation age is two years in every citing year (visible in
569−distribution, the mode of citation age is two years in every citing year, the mean falls monotonically from 598+the figure, where every curve peaks at the same abscissa); the mean age falls in every citing year from 2018
570−2018 to 2025, the median falls from six to five years, the share of references to works at most five years 599+to 2026; the median falls over the baseline years and is constant from 2021 onward; the share of
571−old rises by more than ten points over the window, and the share to works more than ten years old falls by 600+references to works at most five years old rises by roughly the amount by which the share of references to
572−about the same amount. The shift is steady and does not accelerate at the 2022 boundary; the post-period 601+works more than ten years old falls; and the share of references to works at most two years old rises less,
573−curves in the figure continue the movement of the baseline curves. A small share of references point to 602+and mostly during the baseline years. The shift is steady and does not accelerate at the 2022 boundary; the
603+post-period curves in the figure continue the movement of the baseline curves, and the year-to-year changes
604+of the mean in the table are of the same order before and after it, if anything smaller after. A small share of references point to
574 works dated after the citing work, which arises from preprints cited before their published version carries 605 works dated after the citing work, which arises from preprints cited before their published version carries
575−a later date and from year-only dates; this share falls over the window as the corpus's own dates become 606+a later date and from year-only dates; this share falls to zero over the window as the corpus's own dates
576−first-appearance dates, and is excluded from the age statistics. 607+become first-appearance dates, and it is excluded from the age statistics.
577 608
578 \begin{figure}[htbp] 609 \begin{figure}[htbp]
579 \centering 610 \centering
580 \includegraphics[width=0.95\textwidth]{fig_cited_age.pdf} 611 \includegraphics[width=0.95\textwidth]{fig_cited_age.pdf}
581 \caption{Distribution of the age of cited works (citing year minus cited year, 0 to 30 years) for five 612 \caption{Distribution of the age of cited works (citing year minus cited year, 0 to 30 years) for five
582−citing years. Generated from the corpus v1 file \texttt{results/graph/cited\_age\_yearly.csv}; to be 613+citing years. Generated by \texttt{figures/make\_figures.py} from
583−regenerated for v2.} 614+\texttt{results/graph/cited\_age\_yearly.csv} (corpus v3); summary statistics in Table~\ref{tab:cited_age}.}
584 \label{fig:cited_age} 615 \label{fig:cited_age}
585 \end{figure} 616 \end{figure}
586 617
@@ -589,9 +620,14 @@ with \citet{verstak2014giants} for this field and this window, with one reservat
589 coverage of OpenAlex imposes. If the probability that a reference string resolves to an OpenAlex record is 620 coverage of OpenAlex imposes. If the probability that a reference string resolves to an OpenAlex record is
590 higher for recent, DOI-bearing works than for older ones, as \citet{culbert2025openalexcoverage} report in 621 higher for recent, DOI-bearing works than for older ones, as \citet{culbert2025openalexcoverage} report in
591 their comparison with Web of Science and Scopus, then the resolved references are biased toward youth, and a 622 their comparison with Web of Science and Scopus, then the resolved references are biased toward youth, and a
592−constant true age distribution would appear to become younger as the resolvable share rises. The reference 623+constant true age distribution would appear to become younger as the resolvable share rises.
593−coverage table of the methodology (declared, internal and external references by year) is the control for 624+Table~\ref{tab:reference_coverage} is the control. The resolved share is nearly constant from 2018 to 2024,
594−this and is part of the pending v2 graph; the age shift is reported here as observed, not as corrected. 625+so over those years a resolution bias toward recent works would shift the level of the age distribution but
626+not its trend; the fall of the mean and of the over-ten-year share between 2018 and 2024 is therefore not an
627+artefact of a rising resolvable share. The 2025 and 2026 rows are different: their resolved share is higher
628+and their reference lists shorter (right-truncation), and the small further decline of the mean age in those
629+two rows should not be read on its own. The age shift is reported here as observed within the resolved
630+references, not as corrected for the composition of the unresolved ones, which cannot be typed.
595 631
596 \begingroup\renewcommand{\small}{\footnotesize}\setlength{\tabcolsep}{3.5pt}\input{tables/tab_cited_age}\endgroup 632 \begingroup\renewcommand{\small}{\footnotesize}\setlength{\tabcolsep}{3.5pt}\input{tables/tab_cited_age}\endgroup
597 633
@@ -668,9 +704,10 @@ hypothesis that the available tables test.
668 704
669 H4 (convergence) is not testable in its stated form, which concerns citation flows between areas of the 705 H4 (convergence) is not testable in its stated form, which concerns citation flows between areas of the
670 ontology and the modularity of the area network; those statistics await the classification. Its field-level 706 ontology and the modularity of the area network; those statistics await the classification. Its field-level
671−counterpart, the share of computer-science references that cross into other OpenAlex fields, is flat over the 707+counterpart, the share of computer-science references that cross into other OpenAlex fields, falls through
672−window on the v1 graph (Section~\ref{sec:net-flows-fields}), which neither supports nor contradicts the 708+the window with no change of pace at the boundary (Table~\ref{tab:field_flows},
673−within-field convergence the hypothesis describes. 709+Section~\ref{sec:net-flows-fields}), part of the fall being a mechanical consequence of the corpus
710+boundary; it neither supports nor contradicts the within-field convergence the hypothesis describes.
674 711
675 H5 (concentration) has two components. The citation-inequality component is stated for AI categories and is 712 H5 (concentration) has two components. The citation-inequality component is stated for AI categories and is
676 pending; its aggregate counterpart gives a Gini of three-year citations that falls through the baseline and 713 pending; its aggregate counterpart gives a Gini of three-year citations that falls through the baseline and
modified manuscript/tables/TABLES.json +18 −0
@@ -233,5 +233,23 @@
233 "./results/bibliometrics/indexing_lag.csv" 233 "./results/bibliometrics/indexing_lag.csv"
234 ], 234 ],
235 "rows": 9 235 "rows": 9
236+ },
237+ {
238+ "file": "tab_reference_coverage.tex",
239+ "caption": "Reference coverage by citing year: declared, resolved, internal and external references of eligible works.",
240+ "label": "tab:reference_coverage",
241+ "sources": [
242+ "./results/graph/reference_coverage_yearly.csv"
243+ ],
244+ "rows": 9
245+ },
246+ {
247+ "file": "tab_field_flows.tex",
248+ "caption": "Destination of the resolved references of eligible works by citing year: inside the corpus, computer science outside it, and the seven largest other OpenAlex fields (per cent of resolved references).",
249+ "label": "tab:field_flows",
250+ "sources": [
251+ "./results/graph/field_flows_yearly.csv"
252+ ],
253+ "rows": 9
236 } 254 }
237 ] 255 ]
\ No newline at end of file
added manuscript/tables/tab_field_flows.tex +20 −0
@@ -0,0 +1,20 @@
1+% generated by tables/make_tables.py from ./results/graph/field_flows_yearly.csv
2+\begin{table}[htbp]\centering\caption{Destination of the resolved references of eligible works by citing year: inside the corpus, computer science outside it, and the seven largest other OpenAlex fields (per cent of resolved references).}\label{tab:field_flows}
3+\begin{threeparttable}\small
4+\begin{tabular}{lrrrrrrrrrr}
5+\toprule
6+\textbf{Year} & \textbf{Inside} & \textbf{CS out} & \textbf{Other} & \textbf{Eng.} & \textbf{Soc.} & \textbf{Med.} & \textbf{Math.} & \textbf{Dec.} & \textbf{Psy.} & \textbf{Phys.} \\
7+\midrule
8+2018 & 2.36 & 48.04 & 49.61 & 17.57 & 4.11 & 2.93 & 3.93 & 3.13 & 2.36 & 2.37 \\
9+2019 & 9.13 & 42.91 & 47.96 & 16.52 & 4.00 & 3.03 & 3.72 & 2.99 & 2.34 & 2.33 \\
10+2020 & 17.35 & 36.57 & 46.08 & 14.93 & 4.01 & 3.44 & 3.51 & 2.73 & 2.17 & 2.22 \\
11+2021 & 25.21 & 31.07 & 43.72 & 13.04 & 4.01 & 3.73 & 3.34 & 2.55 & 2.09 & 2.12 \\
12+2022 & 31.89 & 25.32 & 42.79 & 12.48 & 4.09 & 3.79 & 2.92 & 2.38 & 2.11 & 2.05 \\
13+2023 & 38.55 & 21.47 & 39.98 & 11.49 & 4.01 & 3.60 & 2.60 & 2.17 & 2.01 & 1.92 \\
14+2024 & 43.81 & 17.68 & 38.51 & 11.01 & 3.74 & 3.70 & 2.37 & 2.01 & 1.90 & 1.79 \\
15+2025 & 48.66 & 14.62 & 36.73 & 10.04 & 3.47 & 3.99 & 2.23 & 1.92 & 1.97 & 1.81 \\
16+2026 & 53.06 & 12.94 & 34.00 & 8.39 & 3.66 & 4.12 & 1.90 & 1.88 & 2.08 & 1.62 \\
17+\bottomrule
18+\end{tabular}
19+\begin{tablenotes}\footnotesize\item Shares of all resolved references of the citing year. Inside: cited work is an eligible work (computer science, 2018--2026); CS out: cited work outside the corpus whose primary OpenAlex field is Computer Science (field 17; mostly pre-2018 work); Other: all remaining external references, including those without a field. The seven field columns are the largest components of `Other': Eng. = Engineering (OpenAlex field 22), Soc. = Social Sciences (33), Med. = Medicine (27), Math. = Mathematics (26), Dec. = Decision Sciences (18), Psy. = Psychology (32), Phys. = Physics and Astronomy (31). The rise of the inside-corpus share is mechanical: the corpus starts in 2018, so later citing years have more corpus to cite. The 2026 row is incomplete.\end{tablenotes}
20+\end{threeparttable}\end{table}
added manuscript/tables/tab_reference_coverage.tex +20 −0
@@ -0,0 +1,20 @@
1+% generated by tables/make_tables.py from ./results/graph/reference_coverage_yearly.csv
2+\begin{table}[htbp]\centering\caption{Reference coverage by citing year: declared, resolved, internal and external references of eligible works.}\label{tab:reference_coverage}
3+\begin{threeparttable}\small
4+\begin{tabular}{lrrrrrrr}
5+\toprule
6+\textbf{Year} & \textbf{Works} & \textbf{Declared refs.} & \textbf{Refs./work} & \textbf{Resolved (\%)} & \textbf{Internal} & \textbf{External} & \textbf{Internal (\%)} \\
7+\midrule
8+2018 & 642{,}849 & 11{,}636{,}120 & 18.10 & 91.38 & 250{,}426 & 10{,}382{,}501 & 2.36 \\
9+2019 & 695{,}369 & 13{,}742{,}477 & 19.76 & 90.90 & 1{,}140{,}570 & 11{,}351{,}646 & 9.13 \\
10+2020 & 709{,}083 & 15{,}693{,}875 & 22.13 & 90.83 & 2{,}472{,}715 & 11{,}781{,}999 & 17.35 \\
11+2021 & 711{,}244 & 18{,}149{,}160 & 25.52 & 90.12 & 4{,}123{,}503 & 12{,}233{,}358 & 25.21 \\
12+2022 & 699{,}548 & 17{,}415{,}217 & 24.89 & 90.16 & 5{,}007{,}511 & 10{,}694{,}227 & 31.89 \\
13+2023 & 785{,}194 & 19{,}017{,}108 & 24.22 & 90.06 & 6{,}602{,}036 & 10{,}524{,}219 & 38.55 \\
14+2024 & 901{,}654 & 19{,}707{,}017 & 21.86 & 90.70 & 7{,}830{,}508 & 10{,}044{,}195 & 43.81 \\
15+2025 & 1{,}065{,}828 & 18{,}600{,}370 & 17.45 & 94.27 & 8{,}532{,}009 & 9{,}003{,}120 & 48.66 \\
16+2026 & 901{,}651 & 9{,}809{,}537 & 10.88 & 99.81 & 5{,}195{,}458 & 4{,}595{,}776 & 53.06 \\
17+\bottomrule
18+\end{tabular}
19+\begin{tablenotes}\footnotesize\item Works: eligible works of the year (including works with no reference list); Declared: entries of their OpenAlex \texttt{referenced\_works} lists; Resolved: declared references that resolve to an OpenAlex record (internal = cited work in the eligible corpus; external = cited work outside it), as a share of the declared count; Internal (\%): internal share of resolved references. The resolved share of 2025--2026 is higher than in earlier years because the recent cohorts carry fewer parsed references per work (reference extraction lags publication) and the parsed ones resolve more often; it describes the database, not citing behaviour. The 2026 row is incomplete.\end{tablenotes}
20+\end{threeparttable}\end{table}
modified tables/make_tables.py +19 −0
@@ -202,6 +202,25 @@ def tables_part08():
202 rows.append({"Year": str(y), "Works": int(g.n.sum()), "Lag, Jan. (d)": float(jan.lag_days_p50.iloc[0]) if len(jan) else float("nan"), "Lag, June (d)": float(jun.lag_days_p50.iloc[0]) if len(jun) else float("nan"), "Within 90 d (%)": 100 * g.n_indexed_within_90d.sum() / g.n.sum(), "After 180 d (%)": 100 * g.n_indexed_after_180d.sum() / g.n.sum()}) 202 rows.append({"Year": str(y), "Works": int(g.n.sum()), "Lag, Jan. (d)": float(jan.lag_days_p50.iloc[0]) if len(jan) else float("nan"), "Lag, June (d)": float(jun.lag_days_p50.iloc[0]) if len(jun) else float("nan"), "Within 90 d (%)": 100 * g.n_indexed_within_90d.sum() / g.n.sum(), "After 180 d (%)": 100 * g.n_indexed_after_180d.sum() / g.n.sum()})
203 write("tab_indexing_lag", pd.DataFrame(rows), "The OpenAlex \\texttt{created\\_date} relative to the publication date, by publication year.", "tab:indexing_lag", [p], fmt={"Lag, Jan. (d)": "{:.0f}", "Lag, June (d)": "{:.0f}", "Within 90 d (%)": "{:.1f}", "After 180 d (%)": "{:.1f}"}, 203 write("tab_indexing_lag", pd.DataFrame(rows), "The OpenAlex \\texttt{created\\_date} relative to the publication date, by publication year.", "tab:indexing_lag", [p], fmt={"Lag, Jan. (d)": "{:.0f}", "Lag, June (d)": "{:.0f}", "Within 90 d (%)": "{:.1f}", "After 180 d (%)": "{:.1f}"},
204 note="Lag is created\\_date minus publication date; the two lag columns give the median lag in days for works published in January and in June of the year; the last two columns give the shares of the year's works whose record was created within 90 days and after 180 days of publication. The near-constant decline of the median by one month per publication month in 2018--2024 identifies a single creation date for most records (a re-ingestion), not an indexing delay; see Part III.") 204 note="Lag is created\\_date minus publication date; the two lag columns give the median lag in days for works published in January and in June of the year; the last two columns give the shares of the year's works whose record was created within 90 days and after 180 days of publication. The near-constant decline of the median by one month per publication month in 2018--2024 identifies a single creation date for most records (a re-ingestion), not an indexing delay; see Part III.")
205+ # ---- corpus v3 graph tables (appended by Agent L/M, 2026-11-03): reference coverage and field-level inflows ----
206+ p = f"{G}/reference_coverage_yearly.csv"
207+ if os.path.exists(p):
208+ d = pd.read_csv(p); d = d[(d.year >= 2018) & (d.year <= 2026)].copy(); res = d.n_internal + d.n_external
209+ t = pd.DataFrame({"Year": d.year.astype(str), "Works": d.n_works.astype(int), "Declared refs.": d.n_refs_declared.astype(int), "Refs./work": d.n_refs_declared / d.n_works, "Resolved (%)": 100 * res / d.n_refs_declared, "Internal": d.n_internal.astype(int), "External": d.n_external.astype(int), "Internal (%)": 100 * d.n_internal / res})
210+ write("tab_reference_coverage", t, "Reference coverage by citing year: declared, resolved, internal and external references of eligible works.", "tab:reference_coverage", [p], fmt={"Refs./work": "{:.2f}", "Resolved (%)": "{:.2f}", "Internal (%)": "{:.2f}"},
211+ note="Works: eligible works of the year (including works with no reference list); Declared: entries of their OpenAlex \\texttt{referenced\\_works} lists; Resolved: declared references that resolve to an OpenAlex record (internal = cited work in the eligible corpus; external = cited work outside it), as a share of the declared count; Internal (\\%): internal share of resolved references. The resolved share of 2025--2026 is higher than in earlier years because the recent cohorts carry fewer parsed references per work (reference extraction lags publication) and the parsed ones resolve more often; it describes the database, not citing behaviour. The 2026 row is incomplete.")
212+ p = f"{G}/field_flows_yearly.csv"
213+ if os.path.exists(p):
214+ d = pd.read_csv(p); d = d[(d.citing_year >= 2018) & (d.citing_year <= 2026)]; tot = d.groupby("citing_year").n.sum()
215+ names = {17: "CS", 22: "Eng.", 33: "Soc.", 27: "Med.", 26: "Math.", 18: "Dec.", 32: "Psy.", 31: "Phys."}
216+ ext = d[d.kind == "external"]; internal = d[d.kind == "internal"].groupby("citing_year").n.sum().reindex(tot.index).fillna(0)
217+ byf = ext.pivot_table(index="citing_year", columns="cited_field_id", values="n", aggfunc="sum").reindex(tot.index).fillna(0)
218+ cs = byf[17.0] if 17.0 in byf.columns else 0 * tot
219+ t = pd.DataFrame({"Year": [str(y) for y in tot.index], "Inside": 100 * internal.values / tot.values, "CS out": 100 * cs.values / tot.values, "Other": 100 * (tot.values - internal.values - cs.values) / tot.values})
220+ for fid in [22, 33, 27, 26, 18, 32, 31]:
221+ t[names[fid]] = 100 * (byf[float(fid)].values if float(fid) in byf.columns else 0) / tot.values
222+ write("tab_field_flows", t, "Destination of the resolved references of eligible works by citing year: inside the corpus, computer science outside it, and the seven largest other OpenAlex fields (per cent of resolved references).", "tab:field_flows", [p], fmt={c: "{:.2f}" for c in t.columns[1:]},
223+ note="Shares of all resolved references of the citing year. Inside: cited work is an eligible work (computer science, 2018--2026); CS out: cited work outside the corpus whose primary OpenAlex field is Computer Science (field 17; mostly pre-2018 work); Other: all remaining external references, including those without a field. The seven field columns are the largest components of `Other': Eng. = Engineering (OpenAlex field 22), Soc. = Social Sciences (33), Med. = Medicine (27), Math. = Mathematics (26), Dec. = Decision Sciences (18), Psy. = Psychology (32), Phys. = Physics and Astronomy (31). The rise of the inside-corpus share is mechanical: the corpus starts in 2018, so later citing years have more corpus to cite. The 2026 row is incomplete.")
205 224
206 225
207 if __name__ == "__main__": 226 if __name__ == "__main__":
208 227
Menu

Theme