aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/kernel/mass_formulary.ml3
-rw-r--r--lib/kernel/mass_formulary.mli16
-rw-r--r--lib/rites/rite_ef/lectionary_ef.ml38
-rw-r--r--lib/rites/rite_ef/lectionary_ef.mli14
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