Automated, auditable dating of the Babylonian Astronomical Diaries with language models and astronomical tools
Authors: Lucas Carrit Delgado Pinheiro, Yuan-Sen Ting, Jon Clindaniel, Lu Li, Yingbin Liang, Ness Shroff
Organizations: Department of Electrical and Computer Engineering, The Ohio State University, Columbus, OH 43210, USA · Department of Astronomy, The Ohio State University, Columbus, OH 43210, USA · Center for Cosmology and AstroParticle Physics (CCAPP), The Ohio State University, Columbus, OH 43210, USA · Max-Planck-Institut für Astronomie, Königstuhl 17, D-69117 Heidelberg, Germany · Computational Social Science Program, Division of the Social Sciences, The University of Chicago, Chicago, IL 60637, USA · Centre for Astrophysics and Planetary Science, Racah Institute of Physics, The Hebrew University, Jerusalem, 91904, Israel · Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA
The Babylonian Astronomical Diaries record the sky over nearly six centuries. Many tablets are broken and have lost their date formula. Experts dated many of them one tablet at a time in the standard edition, Astronomical Diaries and Related Texts from Babylonia (ADART). They used the recorded sky and other evidence, such as year formulas and royal names. Our system automates the astronomical part for all tablets with the same rules. A rule-based parser turns the recorded observations into clauses, short statements with fixed fields. A language model checks them against the text and adds observations that the parser missed. Astronomical tools test the clauses in all 701 years from 626 BCE to AD 75. The system ranks the years by how well they agree with the clauses. The system withholds published dates until its results are final, and the output lists the passages and computed positions behind each candidate year. On 120 dated tablets, the years tied at the top of the ranking include the published year in 96% of cases. For 86 of them, this top group is a single year, the published year in 84. In 119 of the 120, the reported candidate set contains it. For 56 undated entries of ADART IV, the system gives ranked candidate years. For each tablet, the results show how far astronomy alone narrows the year. An interactive page at https://tingyuansen.github.io/Babylonian_Dating/ follows each tablet and links the code, protocol and results.
Figures & tables
Figure 1: The automated workflow, with a worked example. The banner at the top names the written protocol of the rules and the held-out test ( SI Appendix , sections S2 and S8). In step 1, the parser turns a passage of the text into a clause, with its fields and marks. The language model checks it and adds the clauses that the parser missed. In step 2, astronomical tools, which agents can call through MCP, give each clause (grid row) a verdict in each candidate year. The grid shows eight clauses in eight of the 701 years. Bits uj follow from the verdicts of a row (Eq. 1 ). Only decisive clauses (orange bits), whatever their bits, decide which years stay in the strict set. Supporting clauses (blue bits) only order the years. Column T is the one year with which all decisive rows agree. Step 3 shows 91 years of the example, and each clock row marks the years with which the clauses of that clock agree. Fixed rules count the decisive clocks K that agree with each year and add up its decisive bits ID (Eq. 2 ). Year T leads on both and forms the strict set S (Eq. 3 , orange). The supporting bits IS (blue) order the years. The system then commits to one year, ranks the years or declines (Eq. 6 ).
Figure 2: A diary tablet and the information in its clauses. (a) ADART I no. −322 B (British Museum, BM 45962), a diary for 323/322 BCE that records the death of Alexander the Great. Photograph by Shaunnol, Wikimedia Commons, public domain. (b) The opening of X301322 from ADART III, one tablet line per row, colored orange for a decisive and blue for a supporting clause. Square brackets mark text that Sachs and Hunger restored. Each log-scaled bar shows the number n of years that agree with the row’s strongest clause, labeled with log2(701/n) bits (Eq. 1 gives the scoring). Gray rows hold unscored text, and their bars reach all 701 years (dashed line) at 0 bits.
Figure 3: Five decisive clauses of X301492 narrow the candidates to one year. (a) Gray ticks mark the years that each clause agrees with on its own. Blue ticks mark the running intersection, and the counts of both are at the right. The orange row is the strict set computed from K and ID , the single year 150 BCE. (b) Decisive bits ID of each candidate year. 150 BCE agrees with three clocks, and the five years with the next highest ID agree with two each.
Figure 4: Inclusion of the published year for the 120 benchmark records with decisive clauses, the 59 supporting-only records and all 179. (a) Percentage of records whose published year is among the first n candidate years, on a logarithmic axis that ends at all 701 years. A record counts at n only when each year ranked above or tied with its published year also lies within the first n . (b) Percentage of records whose published year is in the first one or two groups, each a set of tied years.
Outcome
Record and passage
Result
Parser clause modified
X300993, “Around the 6th, Mars’ last appearance in Gemini”
The parser read the appearance without its day. Review proposed day 6 from the same sentence, and the field check accepted it.
Restored mark added
X202270, “solar [eclipse”
The parser did not mark the clause as restored. Review cited the bracket before “eclipse”, and the field check accepted the mark.
Proposed change rejected
X202552, “moon was] 1 1/2 cubits behind η Tauri”
Review proposed month V from a heading in an earlier sentence. The confirming call rejected it, because the month came from another sentence.
Missed observation recovered
X301323, “the moon having passed a little to the east, it stood 3 cubits in front of Venus to the west”
The parser missed this relation, whose subject is “it”. The search found it, and code bound “it” to the Moon named earlier in the sentence.
Astronomical but unsupported
X102732, “Mercury, which had set, was not visible”
The search found an astronomical report, but the invisibility of a planet lies outside the rules. It was recorded in a separate category.
Search proposal rejected
X102812, “[… Ni] ght of the 21st”
The search proposed the Moon in front of α Virginis and cited this heading with a wrong letter. Code did not find the citation in the translation and rejected the proposal before any astronomical test.
Table S1: Examples from the review and search steps.
Clause type
Test
Window or tolerance
Example
Planet in a named sign
The planet is in the stated Babylonian sign during the month
The month
“Mars was in Sagittarius” (X301492)
First or last appearance in a sign
The planet is in the stated sign. The date of visibility is not tested
The month
“Mercury’s last appearance in the east in Libra” (X301492)
Planet station
The planet’s apparent motion along the ecliptic reverses
The month ± 20 days
“Jupiter became stationary in Aquarius” (X301492)
Station against a Normal Star
A station of the stated kind lies at the measured distance from the star
The month, or ± 2 days of a stated day, and 2∘
“when Saturn became stationary to the west, it became stationary 1 cubit behind β Geminorum” (X300873)
Planet enters a sign
The planet crosses into the stated sign, in either direction of motion
The month ± 20 days
“Mars reached Capricorn” (X301492)
Moon against a star or planet
The relation holds in ecliptic longitude
3∘
“the moon was 2 1/2 [cubits] below α Librae” (X301322)
Table S2: Astronomical rules. Each rule returns agree, contradict or untestable for one clause in one candidate year. Here the month is the Julian interval of the Babylonian month that applies to the clause. Examples are passages of the ADsD translation.
Observation type
Clauses
Testable
Years
Bits
Decisive (%)
Moon or planet against a Normal Star
2062
1330
548
0.4
1
Planet in a named sign
683
659
123
2.5
35
Moon against a planet
357
219
84
3.1
19
First appearance in a sign
229
229
436
0.7
15
Last appearance in a sign
222
222
534
0.4
0
Planet enters a sign
101
101
460
0.6
16
Table S3: Information and decisive share by observation type, for 4,010 clauses from 321 records of ADART I to III. Clauses counts all clauses of the type, and Testable those testable in at least one of the 701 years. Years and Decisive count the testable clauses, and each row has at least five of them. Years is the median number of candidate years with which such a clause agrees. Bits are log2(701/m) for the median m , while the scoring uses Eq. 1 of the main text. Decisive is the percentage of the testable clauses that meet the conditions of the decisive tier.
Observation type
Clauses
Testable
Agree
Contradict
Untestable
Agreement (%)
Moon or planet against a Normal Star
2062
1330
1224
106
732
92.0
Planet in a named sign
683
658
643
15
25
97.7
Moon against a planet
357
219
203
16
138
92.7
First appearance in a sign
229
228
219
9
1
96.1
Last appearance in a sign
222
220
207
13
2
94.1
Planet enters a sign
101
101
98
3
0
97.0
Table S4: Agreement at the published year of the 4,010 reviewed clauses from 321 dated records of ADART I to III. A testable clause receives agree or contradict at the published year. Agreement is 100× agree / testable. For the parser clauses alone, from 316 records, 2,169 of 2,313 testable clauses agree (93.8%).
Quantity
Symbol
What it is
How it is used
Verdict
vj(y)
Agree, contradict or untestable, for clause j in candidate year y
Basis of all later quantities
Bits
uj
log2(Cj/Aj) , from the numbers of testable and agreeing years of clause j (Eq. 1 )
Summed in ID or IS , shared equally among clauses with identical verdicts
Tier
Decisive if of a decisive type, unrestored, not marked as unobserved, and securely dated or tested over its whole year (section S5), and supporting otherwise
Only decisive clauses decide which years stay in the strict set
Clock
c , K(y)
Mars, Jupiter, Saturn, lunar eclipses, or the solar year. K(y) counts the clocks that agree with year y (Eq. 2 )
Counts independent agreement, apart from bits
Summed bits
ID(y) , IS(y)
Summed bits of the agreeing decisive or supporting clauses (Eq. 2 )
ID forms the strict set, and IS only orders
Contradictions
NC(y)
Number of source statements that contradict the year
Only order the years
Table S5: The quantities of steps 2 and 3, in the order in which the system uses them for each tablet. Equation numbers refer to the main text.
Figure S1: Sensitivity of the benchmark for the 120 records with decisive clauses, with the baseline values as dashed orange lines. (a) Published year in the first group, with all tied groups kept. (b) Median number of years in that group, on a logarithmic axis. (c) Published year in the strict set, on an axis that starts above zero. Each row changes one convention, removes one rule or clock, or changes one scoring policy. Group headers mark the six kinds of change, and section S7 defines each row. The row “Fixed Delta T shift” shifts ephemeris time, separately from the three eclipse trials of the baseline.
Test volume
Records
First group
First three groups
Strict set
Median strict set
ADART I
33
31 (94%)
33 (100%)
33 (100%)
9 years
ADART II
26
25 (96%)
26 (100%)
26 (100%)
49.5 years
ADART III
61
59 (97%)
60 (98%)
60 (98%)
17 years
All three rounds
120
115 (96%)
119 (99%)
119 (99%)
15.5 years
Rules from all volumes
120
115 (96%)
119 (99%)
119 (99%)
15 years
ADART IV addenda
12
11 (92%)
11 (92%)
11 (92%)
64.5 years
Table S6: Held-out test by volume. Each of the first three rows dates the benchmark records of one volume with rules set on the other two. Rates are for the records with decisive clauses, as in the main text. All three rounds pools the three test volumes. Rules from all volumes repeats the rates of the main text, where the rules saw all three volumes. The last row gives the registered test on the ADART IV addenda that neither join nor duplicate a record of ADART I to III.
Figure S2: Strict candidate sets of the 56 ADART IV entries that keep a decisive clause. Each row is one entry, from the narrowest set at the top to the widest at the bottom, in the order of Table S7 . Dark marks are strict candidates over the 701 years. Marks that repeat at a fixed spacing come from one clock, such as Jupiter, which returns to a sign about every 12 years.
Entry
Page
Museum number
Clocks
∣S∣
∣L1∣
Groups
805
539
BM 99671
Jupiter, Saturn
21
21
L1 : 21 years, L2 : 75 years, L3 : 115 years
303
274
BM 35863
Saturn †
52
52
L1 : 52 years, L2 : 649 years
853
567
MNB 1877
Mars, Saturn
54
20
L1 : 20 years, L2 : 34 years, L3 : −433 , −228 , 9
264
252
BM 35685
Mars, Saturn
56
56
L1 : 56 years, L2 : 28 years, L3 : 411 years
209
214
BM 35294
Mars, Saturn
57
57
L1 : 57 years, L2 : 27 years, L3 : 411 years
837
558
Rm 780
Mars, Saturn
58
58
L1 : 58 years, L2 : 35 years, L3 : 378 years
Table S7: Ranked candidate years of the 56 ADART IV entries with a decisive clause, in the order of Fig. S2 . Clocks names the clocks of the decisive clauses, and a dagger marks the three entries with a decisive clause that has a month. ∣S∣ and ∣L1∣ count the years in the strict set and in the first group. Groups gives the size of each of the first three groups, or its years when it holds at most ten. Years are in astronomical numbering, so that −149 is 150 BCE. The repository gives all years of each group.
We introduce a probabilistic approach for dating historical manuscript pages from visual features alone. Instead of aggregating centuries into classes as is standard in the previous literature, we pose dating as an evidential deep regression problem over a continuous year axis, allowing our neural network to output a full predictive distribution with decomposed aleatoric and epistemic uncertainty in a single forward pass. Our architecture combines an EfficientNet-B2 backbone with a Normal-Inverse-Gamma (NIG) output head trained with a joint negative-log-likelihood and evidence-regularization objective. On the DIVA-HisDB benchmark (150 pages, 3 medieval codices, 151,936 patches), our model scores a test MAE of 5.4 years, well below the 50-year century-label supervision granularity, with 93% of patches within 5 years and 97% within 10 years. Our approach achieves PICP=92.6%, the best calibration among all compared methods, in a single forward pass, outperforming MC Dropout (PICP=88.2%, 50 passes) and Deep Ensembles (PICP=79.7%, 5 models) at 5× lower inference cost. Uncertainty decomposition shows aleatoric uncertainty is a strong predictor of dating error (Spearman ρ=0.729), and a selective prediction about the most certain 20% of patches can provide 0.5 years MAE. We show that predicted uncertainty increases as image degradation worsens, spatial decomposition maps explain which script regions cause aleatoric uncertainty, and page-level aggregation reduces MAE to 4.5 years with ρ=0.905 between uncertainty and page-level error.
Text detection is a crucial task in the analysis of historical documents. While datasets and benchmarks exist for text detection in manuscripts and maps, the study of text in mathematical diagrams has received little attention. To address this, we introduce a large-scale, diverse, open-access dataset of 948 historical astronomical diagrams containing 10,940 oriented polygonal text regions. Our dataset spans ten centuries (8th to 18th) and seven main linguistic traditions: Arabic and Persian (115), Chinese (332), Byzantine (233), Latin (185), Hebrew (48), and Sanskrit (35). It captures a wide range of diagram styles and textual content, from symbols to multi-line paragraphs. Each text instance is annotated with ordered polygons that precisely delineate text regions and encode the reading direction. In addition, we annotated the 2,293 regions in Latin diagrams with 20 class labels. We evaluated several strong baselines on our dataset, including TESTR, DeepSolo++, and Poly-DETR, a simple extension of DINO-DETR that we design to predict ordered polygon vertices. Poly-DETR achieves state-of-the-art performance on the MTHv2 and cBAD2019 benchmarks and provides a solid, simple baseline on our dataset. Code and dataset available online.
Zeynep Sonat Baltacı, Raphaël Baena, Fei Meng +4
LIGM, ENPC, IP Paris, Univ Gustave Eiffel, CNRS, Marne-la-Vallée, France · LTE, CNRS, PSL-Observatoire de Paris, SU, EIDA Project
History is not preserved in complete, continuous form. Accounts of a person's activities, relationships and historical contexts are scattered across texts, chapters and narrative perspectives; historians must retrieve, identify and compare these materials to reconstruct temporal sequences and verify them against sources. Here we present AI Historian (AIH), an AI agent system that helps historians organize person-time evidence from dispersed biographical narratives. It takes source sentences as evidence units, identifies people and temporal cues, verifies candidate cross-text associations and infers comparable temporal ranges while preserving traceable source-text evidence. We evaluated AIH on six Shiji cases concerning Liu Bang, Xiang Yu and Xiao He. AIH Agent achieved a temporal-localization MicroIoU of 86.2%, compared with 81.3% for human-only annotation and 17.1% for direct large-language-model prompting; it required about 14 min, versus 1 h 32 min for human-only annotation. We further applied AIH to the Twenty-Four Histories and other ancient Chinese histories, ancient Japanese and Korean histories, and modern and contemporary historical materials, and released the results through Westlake Historian. These results indicate that AIH can reduce the cost of organizing historical materials at scale while turning connections obscured by chapter-based narration into traceable, revisable research questions for collaborative testing.