diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/kernel/mass_formulary.ml | 3 | ||||
| -rw-r--r-- | lib/kernel/mass_formulary.mli | 16 | ||||
| -rw-r--r-- | lib/rites/rite_ef/lectionary_ef.ml | 38 | ||||
| -rw-r--r-- | lib/rites/rite_ef/lectionary_ef.mli | 14 |
4 files changed, 50 insertions, 21 deletions
diff --git a/lib/kernel/mass_formulary.ml b/lib/kernel/mass_formulary.ml index 8151720..cb3532b 100644 --- a/lib/kernel/mass_formulary.ml +++ b/lib/kernel/mass_formulary.ml @@ -1,4 +1,4 @@ -type source = Proper | Own_slug | Preceding_sunday | Common [@@deriving sexp] +type source = Proper | Own_slug | Preceding_sunday | Common | Votive [@@deriving sexp] type t = { said : Slug.t; via : source } [@@deriving sexp] let source_to_string = function @@ -6,3 +6,4 @@ let source_to_string = function | Own_slug -> "own" | Preceding_sunday -> "preceding-sunday" | Common -> "common" + | Votive -> "votive" diff --git a/lib/kernel/mass_formulary.mli b/lib/kernel/mass_formulary.mli index caea3eb..a2faf64 100644 --- a/lib/kernel/mass_formulary.mli +++ b/lib/kernel/mass_formulary.mli @@ -15,12 +15,22 @@ type source = | Own_slug (** the lectionary's entry for the day's own slug *) | Preceding_sunday (** a weekday with no proper resumes the preceding Sunday *) | Common (** a saint's assigned Common *) + | Votive + (** a Mass said IN PLACE of the day's own office's Mass, the office + itself being kept unchanged -- RG 309(a): "in Ecclesia universa, + Missae quae pro sancta Maria in sabbato, iuxta temporum + diversitatem, in Missali assignantur", corroborated by RG 431(e)'s + own classification of that Mass as "Missa votiva IV classis ... + de B. Maria Virg." The office/Mass split this constructor exists + to name is general (any rite may say a votive Mass on a day whose + OFFICE is not itself votive), even though EF's only witness today + is the RG 78/309(a) Saturday Mass of Our Lady. *) [@@deriving sexp] type t = { said : Slug.t; via : source } [@@deriving sexp] -(** The slug whose Mass is said. For {!Proper} and {!Own_slug} this is the day's - own; for {!Preceding_sunday} it is that Sunday's TEMPORAL slug; for - {!Common} it is the Common's own id. *) +(** The slug whose Mass is said. For {!Proper}, {!Own_slug} and {!Votive} + this is the day's own; for {!Preceding_sunday} it is that Sunday's + TEMPORAL slug; for {!Common} it is the Common's own id. *) val source_to_string : source -> string diff --git a/lib/rites/rite_ef/lectionary_ef.ml b/lib/rites/rite_ef/lectionary_ef.ml index 4325bed..13ff5d5 100644 --- a/lib/rites/rite_ef/lectionary_ef.ml +++ b/lib/rites/rite_ef/lectionary_ef.ml @@ -367,21 +367,33 @@ let readings ~lectionary ~commons ~observed ~temporal ~date ~temporal_at = would be dead code; placing it earlier would let it outrank a real saint's proper. - FORMULARY PROVENANCE, a genuine judgement call: {!Mass_formulary.source} - has no fifth constructor for "the RG 309(a) seasonal votive Mass", - so this is tagged [Own_slug] -- [is_bvm_saturday_office] only ever - fires when [sanctoral_office] above is false, i.e. the observed - celebration already IS the day's own temporal office (the office - deliberately reuses the ordinary ferial slug, [Temporal_ef]'s own - [bvm_saturday_names]), so [said] is genuinely "the day's own - slug" -- [Own_slug]'s own documented meaning - (mass_formulary.mli's [said] comment) -- even though the - citations themselves come from [bvm_saturday_citations]'s - season table rather than a [Lectionary.find] hit. Flagged in the - task report as an interpretation, not a specified answer. *) + FORMULARY PROVENANCE: [Votive], not [Own_slug] (CORRECTED, fix + round 1, coordinator review -- the first pass tagged this + [Own_slug] for lack of a better constructor and flagged it as a + judgement call; [Mass_formulary.source] has grown a [Votive] + case since, precisely for this branch). RG 309(a) (this + branch's own header comment above) and RG 431(e) ("in Missis + votivis IV classis ... de B. Maria Virg. quae in sabbato + celebrantur", temporal_ef.ml's own colour-chain comment quotes + it in full) both classify this Mass itself, in the Missal's own + words, as a "Missa votiva" -- a votive Mass said IN PLACE of the + day's own office's Mass, the office (RG 78, Officium sanctae + Mariae in sabbato) being kept unchanged. WITNESSED, not merely + argued: the Latin Mass Society Ordo (docs/research/ordo/lms- + ordo-2024-2025.pdf) prints this exact day as "OUR LADY on + SATURDAY IV Cl W / V Mass of BVM" -- "V" is that Ordo's own + abbreviation for Votive. + + [said] is UNCHANGED by this correction and stays the day's own + temporal slug: [is_bvm_saturday_office] only ever fires when + [sanctoral_office] above is false, i.e. the observed celebration + already IS the day's own temporal office (the office + deliberately reuses the ordinary ferial slug, [Temporal_ef]'s + own [bvm_saturday_names]) -- only [via] needed correcting, the + office/Mass split [Votive] exists to name. *) if is_bvm_saturday_office observed temporal then let said = temporal.Temporal.office.Celebration.slug in - ( Some { Mass_formulary.said; via = Mass_formulary.Own_slug }, + ( Some { Mass_formulary.said; via = Mass_formulary.Votive }, bvm_saturday_citations temporal.Temporal.season ~month:(Date.month date) ~day:(Date.day date) ) else diff --git a/lib/rites/rite_ef/lectionary_ef.mli b/lib/rites/rite_ef/lectionary_ef.mli index 2f36926..43763ff 100644 --- a/lib/rites/rite_ef/lectionary_ef.mli +++ b/lib/rites/rite_ef/lectionary_ef.mli @@ -109,10 +109,16 @@ val commons_for : commons:Commons.t -> Slug.t -> (Slug.t * Citation.t list) opti - {b Step 2} -- the day's own temporal slug in the lectionary. {!Colitur_kernel.Mass_formulary.Own_slug}, [said] that slug. The RG 309(a) Saturday votive Mass of Our Lady also answers here (structurally, - not as a fifth numbered step): it is tagged the same way, because its - own guard only ever fires when the observed celebration already IS the - day's own temporal office (the office reuses the ordinary ferial - slug) -- see the implementation comment on that branch. + not as a fifth numbered step), but is tagged + {!Colitur_kernel.Mass_formulary.Votive} instead, not [Own_slug]: RG + 309(a)/431(e) classify it, in the Missal's own words, as a "Missa + votiva" said IN PLACE of the day's own office's Mass, the office (RG + 78) itself being kept -- witnessed by the Latin Mass Society Ordo, + which prints this day's Mass as "V" (Votive). [said] is still that + slug: only the source constructor differs from an ordinary Step 2 + lookup, because the guard that reaches this branch only ever fires + when the observed celebration already IS the day's own temporal + office -- see the implementation comment on that branch. - {b Step 3} -- for a weekday whose own slug has no entry, the preceding Sunday's temporal slug (never its observed one; a Sunday is guarded out because it has no PRECEDING Sunday to resume, not because |
