summaryrefslogtreecommitdiff
path: root/data/of
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-25 23:51:36 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-25 23:51:36 +0200
commit0994587b3694bb87d9a8ee32d60babf25c784acf (patch)
tree5585419d69e0b89fa839aba94ef50a3297251fbc /data/of
parent98d698b261c75a287ba3992744032babfb6ad763 (diff)
downloadcolitur-0994587b3694bb87d9a8ee32d60babf25c784acf.tar.gz
colitur-0994587b3694bb87d9a8ee32d60babf25c784acf.zip
fix(of): correct subject over-match, provenance truth, and stale hazard comment
Four fixes from fix round 2 review: classify_subject's "maria"/"b.m.v" substring test over-matched 12 saints who merely carry "Maria" in their own name (Maximilian Mary Kolbe, John Mary Vianney, Mary Magdalene among them) as Bvm. Replaced with an explicit BVM_DATES table of the 13 genuinely Marian entries. Bvm 25 -> 13. The provenance header claimed lectio is "never a source", which omitted that slugs and English names both come from it. Corrected to state exactly what does (slugs, en names) and does not (every substantive field) come from lectio. A missing lectio file used to degrade silently to a different SHA-256 with no en names and no warning; it now fails loudly. lectio's own SHA-256 is now pinned alongside the Missal PDF's. Four more entries carried a second pdftotext artifact distinct from the letter-spacing already handled -- a combining diacritic rendered as a stray spacing character (Kim Taegŏn/Chŏng Ha-sang, Đũng Lạc, Makhlūf, Kęty). Hand-repaired the same way Peter Damian was, each corroborated by the identical corruption recurring in the Missal's own index. precedence_of.ml's PHASE 3 HAZARD comment about All Souls (2 November) was asserting a gap that no longer exists now that OF sanctoral data ships. Added test_all_souls_beats_an_ordinary_sunday, which resolves the shipped All Souls entry against a real per-annum Sunday (2025-11-02) through the actual Precedence.resolve pipeline, and updated the comment to record the resolution instead of demanding it.
Diffstat (limited to 'data/of')
-rw-r--r--data/of/calendar-2002.sexp61
1 files changed, 36 insertions, 25 deletions
diff --git a/data/of/calendar-2002.sexp b/data/of/calendar-2002.sexp
index 0b4b3f0..50af02f 100644
--- a/data/of/calendar-2002.sexp
+++ b/data/of/calendar-2002.sexp
@@ -1,22 +1,33 @@
; data/of/calendar-2002.sexp -- OF (post-1970) General Roman Calendar,
; transcribed from the Missale Romanum, editio typica tertia (2002). The
-; 2002 Missal is the AUTHORITY; this file is never edited afterwards --
-; spec sec4.1. lectio's roman-calendar.ini is a cross-check only, never a
-; source (see tools/extract_of_calendar.py's own header for the full
-; source-discipline statement and every classification citation).
+; 2002 Missal is the SOLE authority for every substantive field (date, rank,
+; colour, subject, every character of `la`); this file is never edited
+; afterwards -- spec sec4.1. lectio's roman-calendar.ini supplies `en` names
+; and, when a confident match exists, the slug (an engineering key, not
+; content -- see tools/extract_of_calendar.py's own docstring, "WHAT
+; ACTUALLY COMES FROM LECTIO", for exactly what and why) -- corrected fix
+; round 2, 2026-08-25: a prior header here said lectio was "never a
+; source", which omitted slugs and was not quite true.
;
; Generator: tools/extract_of_calendar.py -- do not hand-edit; re-run against the same
-; PDF (this file is pinned, so a re-run should reproduce it byte-for-byte)
-; and diff before committing.
+; PDF AND the same lectio snapshot (its SHA-256 is pinned below; a missing
+; or different lectio file now fails loudly rather than silently changing
+; slugs/en-names/SHA-256 -- fix round 2) to reproduce this file byte-for-
+; byte, and diff before committing.
;
-; Source: docs/research/of/missale-romanum-2002.pdf
+; Source (authority): docs/research/of/missale-romanum-2002.pdf
; SHA-256: 0b458944824d2ee92854b9664f83e553af0342e0b15a9dc14b00e846405523d7
; Extracted lines (pdftotext -layout, 0-based): 3992-4461
+; Source (slugs + en names only, never content -- see above): ../lectio/internal/caldata/roman-calendar.ini
+; SHA-256: 6c6035124b126c4942719cb2c1d8db4a0f29c3747f44acaa7ad48d2bf3a29dcf
; Extraction date (UTC): 2026-08-25
;
; 208 entries. 1 entry needed letter-spacing repair
; (collapse_letterspacing's own mechanical pass, then hand-verified -- see
-; the module docstring's EXTRACTION ARTIFACT note).
+; the module docstring's EXTRACTION ARTIFACT note); 5
+; more carry a SEPARATE pdftotext artifact (a combining diacritic rendered
+; as a stray spacing character), also hand-repaired -- fix round 2, see
+; main()'s own diacritic_repairs table.
;
; Excluded, deliberately (see module docstring for the full reasoning):
; 01-01: of-mary-mother-of-god (Temporal_of.named, m=1 dd=1)
@@ -48,7 +59,7 @@
; 11-03 COLOUR colitur=White lectio=Red ['S. Martini de Porres, religiosi']
; 11-11 COLOUR colitur=White lectio=Red ['S. Martini Turonensis, episcopi']
; 12-21 COLOUR colitur=White lectio=Violet ['S. Petri Canisii, presbyteri et Ecclesiæ doctoris']
-; 12-23 COLOUR colitur=White lectio=Violet ['S. Ioannis de Ke¸ty, presbyteri']
+; 12-23 COLOUR colitur=White lectio=Violet ['S. Ioannis de Kęty, presbyteri']
; 12-29 COLOUR colitur=Red lectio=White ['S. Thomæ Becket, episcopi et martyris']
; 09-23 LECTIO-ONLY 'S. Pii de Pietrelcina, presbyteri [*]' rank=memorial slug=pio-of-pietrelcina-padre-pio-priest
; 10-11 LECTIO-ONLY 'S. Ioannis XXIII, papae' rank=optional slug=john-xxiii-pope
@@ -106,7 +117,7 @@
((slug alphonsus-maria-de-liguori-bishop-and-doctor-of-the-church)
(names ((en "Saint Alphonsus Maria de Liguori, bishop and doctor of the Church") (la "S. Alfonsi Mariae de’ Liguori, episcopi et Ecclesiae doctoris")))
(rank Memoria_obligatoria) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 12) (day 7)))
(cel
((slug ambrose-bishop-and-doctor)
@@ -116,13 +127,13 @@
((date (Fixed (month 11) (day 24)))
(cel
((slug andrew-dung-lac-and-his-companions-martyrs)
- (names ((en "Saint Andrew Dung Lac and his companions, martyrs") (la "Ss. Andreae Du˜ ng La.c, presbyteri, et sociorum, martyrum")))
+ (names ((en "Saint Andrew Dung Lac and his companions, martyrs") (la "Ss. Andreae Dũng Lạc, presbyteri, et sociorum, martyrum")))
(rank Memoria_obligatoria) (status Feast) (colour Red)
(subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 9) (day 20)))
(cel
((slug andrew-kim-taegon-priest-and-paul-chong-hasang-and-companions-martyrs)
- (names ((en "Saint Andrew Kim Taegon, priest, and Paul Chong Hasang and companions, martyrs") (la "Ss. Andreae Kim Tae-go¡ n, presbyteri, Pauli Cho¡ ng Ha-sang et sociorum, martyrum")))
+ (names ((en "Saint Andrew Kim Taegon, priest, and Paul Chong Hasang and companions, martyrs") (la "Ss. Andreae Kim Tae-gŏn, presbyteri, Pauli Chŏng Ha-sang et sociorum, martyrum")))
(rank Memoria_obligatoria) (status Feast) (colour Red)
(subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 11) (day 30)))
@@ -160,7 +171,7 @@
((slug anthony-mary-claret-bishop)
(names ((en "Saint Anthony Mary Claret, bishop") (la "S. Antonii Mariae Claret, episcopi")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 1) (day 17)))
(cel
((slug anthony-of-egypt-abbot)
@@ -178,7 +189,7 @@
((slug anthony-zaccaria-priest)
(names ((en "Saint Anthony Zaccaria, priest") (la "S. Antonii Mariae Zaccaria, presbyteri")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 7) (day 20)))
(cel
((slug apollinaris-bishop-and-martyr)
@@ -610,7 +621,7 @@
((slug jean-vianney-the-cure-of-ars-priest)
(names ((en "Saint Jean Vianney (the Curé of Ars), priest") (la "S. Ioannis Mariae Vianney, presbyteri")))
(rank Memoria_obligatoria) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 2) (day 8)))
(cel
((slug jerome-emiliani-priest)
@@ -680,7 +691,7 @@
((date (Fixed (month 12) (day 23)))
(cel
((slug john-of-kanty-priest)
- (names ((en "Saint John of Kanty, priest") (la "S. Ioannis de Ke¸ty, presbyteri")))
+ (names ((en "Saint John of Kanty, priest") (la "S. Ioannis de Kęty, presbyteri")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
(subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 12) (day 14)))
@@ -760,7 +771,7 @@
((slug louis-grignon-de-montfort-priest)
(names ((en "Saint Louis Grignon de Montfort, priest") (la "S. Ludovici Mariae Grignion de Montfort, presbyteri")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 12) (day 13)))
(cel
((slug lucy-of-syracuse-virgin-and-martyr)
@@ -778,7 +789,7 @@
((slug margaret-mary-alacoque-virgin)
(names ((en "Saint Margaret Mary Alacoque, virgin") (la "S. Margaritae Mariae Alacoque, virginis")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 11) (day 16)))
(cel
((slug margaret-of-scotland)
@@ -790,7 +801,7 @@
((slug maria-goretti-virgin-and-martyr)
(names ((en "Saint Maria Goretti, virgin and martyr") (la "S. Mariae Goretti, virginis et martyris")))
(rank Memoria_ad_libitum) (status Feast) (colour Red)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 4) (day 25)))
(cel
((slug mark-the-evangelist)
@@ -826,13 +837,13 @@
((slug mary-magdalene)
(names ((en "Saint Mary Magdalene") (la "S. Mariae Magdalenae")))
(rank Memoria_obligatoria) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 5) (day 25)))
(cel
((slug mary-magdalene-de-pazzi-virgin)
(names ((en "Saint Mary Magdalene de Pazzi, virgin") (la "S. Mariae Magdalenae de’ Pazzi, virginis")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 9) (day 21)))
(cel
((slug matthew-the-evangelist-apostle-evangelist)
@@ -850,7 +861,7 @@
((slug maximilian-mary-kolbe-priest-and-martyr)
(names ((en "Saint Maximilian Mary Kolbe, priest and martyr") (la "S. Maximiliani Mariae Kolbe, presbyteri et martyris")))
(rank Memoria_obligatoria) (status Feast) (colour Red)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 8) (day 27)))
(cel
((slug monica)
@@ -1078,7 +1089,7 @@
((slug saints-joachim-and-anne)
(names ((en "Saints Joachim and Anne") (la "Ss. Ioachim et Annae, parentum B.M.V.")))
(rank Memoria_obligatoria) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 6) (day 22)))
(cel
((slug saints-john-fisher-bishop-and-martyr-and-thomas-more-martyr)
@@ -1162,11 +1173,11 @@
((slug seven-holy-founders-of-the-servite-order)
(names ((en "Seven Holy Founders of the Servite Order") (la "Ss. septem Fundatorum Ordinis Servorum B.M.V.")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
- (subject Bvm) (citations ()) (layer of-universal))))
+ (subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 7) (day 24)))
(cel
((slug sharbel-makhluf-hermit)
- (names ((en "Saint Sharbel Makhluf, hermit") (la "S. Sarbelii Makhlu‾ f, presbyteri")))
+ (names ((en "Saint Sharbel Makhluf, hermit") (la "S. Sarbelii Makhlūf, presbyteri")))
(rank Memoria_ad_libitum) (status Feast) (colour White)
(subject Saint) (citations ()) (layer of-universal))))
((date (Fixed (month 10) (day 28)))