diff options
Diffstat (limited to 'lib/rites')
| -rw-r--r-- | lib/rites/rite_ef/temporal_ef.ml | 74 |
1 files changed, 73 insertions, 1 deletions
diff --git a/lib/rites/rite_ef/temporal_ef.ml b/lib/rites/rite_ef/temporal_ef.ml index bbd88ec..4aa8aea 100644 --- a/lib/rites/rite_ef/temporal_ef.ml +++ b/lib/rites/rite_ef/temporal_ef.ml @@ -154,6 +154,69 @@ let holy_name_fallback_date y = mk y 1 2 let holy_name_names = Colitur_kernel.Names.of_list [ (Colitur_kernel.Lang.of_string_exn "la", "Sanctissimi Nominis Iesu") ] +(* RG 91 entry 2 (Sacred Triduum) ranks Holy Thursday/Good Friday/Holy + Saturday above even entry 7's own I-class ferias (this file's own comment + on [privileged_feria]), but [temporal] constructs no proper NAMED office + for any of the three (ef-triduum-litanies task, Gap 1) -- they fall + through to the generic Passiontide ferial branch below like any other day + of Holy Week. The slug STAYS that generic key: RG 91 entry 2 is already + identified structurally, off the day's own Easter offset and rank + (Precedence_ef.band's own entry-2 branch), never off the slug, so + renaming it would touch precedence for no reason and would break the + lectio differential's own slug mapping for these three lectionary keys + (the same reasoning [holy_family_sunday]'s own citation above gives for + keeping "ef-time-after-epiphany-sunday-1"). What was actually missing is + IDENTITY alone, closed the same way RG 17(b)/(a) (Holy Family/Holy Name, + above) already were: Latin, not English, in [names] -- zero circularity + (an English name would mean reading missalemeum's own title text, the + oracle this exact axis is compared against, to decide colitur's own + "ground truth"). + + Both photographic scans, word for word, corroborated by the electronic + transcription's own table-of-contents-style listing at the identical + three headings (docs/research/rules-register.md; three-way agreement, no + scan-vs-transcription conflict to adjudicate here -- these three headings + sit OUTSIDE the Mass-propers body text the transcription is documented + elsewhere as missing almost all of, in a title/running-header line it + carries just the same): "FERIA QUINTA IN CENA DOMINI" / running header + "Feria V in Cena Domini" (Holy Thursday); "FERIA SEXTA / IN PASSIONE ET + MORTE DOMINI" (Good Friday -- NOT the informal "Feria VI Parasceve" the + transcription uses in passing elsewhere in an unrelated rubric; this is + the Missal's own Mass-propers section title, confirmed as the running + header on every page of that Office in both scans); "SABBATO SANCTO" + (Holy Saturday, both scans, with "I classis" printed directly beneath the + heading). + + [subject = Lord] is also set (Holy Family/Holy Name needed it only + because Precedence_ef.band's entry 14 reads [subject] to outrank a + colliding fixed feast; entry 2 here needs no such thing -- + Precedence_ef.band's own entry-2 branch tests only [rank] and the Easter + offset). Tagged anyway because it is simply true (the Last Supper, the + Passion and Death, the entombment are textbook mysteries of the Lord) and + safe: Precedence_ef.disposition's RG 112(a) branch (a mystery of the Lord + excluding a commemoration of ANOTHER mystery of the same Divine Person) + only fires when BOTH sides of an occurrence are tagged [Lord], and no + [Lord]-subject entry in data/ef/sanctoral.sexp has a fixed civil date + inside Holy Week's own movable range (earliest 19 March, latest 24 April; + the register's own subject audit lists exactly six [Lord]-tagged + entries, all fixed in January, February, August, September or November) + -- and any [Class1] sanctoral entry that DOES land there (e.g. a + transferred Annunciation) reaches Precedence_ef.disposition's EARLIER, + subject-blind "I class, not a Sunday -> Transfer" branch first + regardless, so RG 112(a)'s branch is never reached for it either way. + Measured, not merely argued: this task's own full 1583-9999 blast-radius + sweep (git archive, pre- vs post-change) shows zero + [observed]/[commemorations]/[transferred_*] difference traceable to this + tag anywhere in the domain -- see the task report. *) +let triduum_names = function + | -3 -> Some (Colitur_kernel.Names.of_list [ (Colitur_kernel.Lang.of_string_exn "la", "Feria V in Cena Domini") ]) + | -2 -> + Some + (Colitur_kernel.Names.of_list + [ (Colitur_kernel.Lang.of_string_exn "la", "Feria VI in Passione et Morte Domini") ]) + | -1 -> Some (Colitur_kernel.Names.of_list [ (Colitur_kernel.Lang.of_string_exn "la", "Sabbato Sancto") ]) + | _ -> None + let same a b = Date.compare a b = 0 (* Named temporal days: the I-class feasts of the Lord (RG 91 entries 1 and 3), @@ -731,7 +794,16 @@ let temporal d = Printf.sprintf "ef-%s-%d-%s" (season_slug_word s) (Option.value week_n ~default:0) (weekday_word d) in - build ~season:s ~slug ~colour ~rank:(ferial_rank d s) ~week:week_n ()))) + (* [triduum_names]'s own citation above: identity only, + for the three days of the Sacred Triduum -- every + other ferial day here stays unnamed, subject + Temporal, as before. *) + let subject, names = + match triduum_names (days_between easter d) with + | Some names -> (Colitur_kernel.Subject.Lord, names) + | None -> (Colitur_kernel.Subject.Temporal, Colitur_kernel.Names.empty) + in + build ~subject ~names ~season:s ~slug ~colour ~rank:(ferial_rank d s) ~week:week_n ()))) (* Independent restatement of [named]'s fixed and Easter-relative dates, paired with the slug each should carry, for civil year [y]. Deliberately |
