Divinum Officium Technical (original) (raw)

Technical Information

[Databases] [Programs] [Special characters] [Exceptions] [Conditionals]

This part of the help manual is written explicitly for encouraging anyone interested in the topic to write his/her own system, using whatever he/she wants from these ideas. It is also meant to provide a general overview of how Divinum Officium and Sancta Missa are internally structured.
Following the provisions of the MIT License, and in accordance with the wishes of the late Laszlo Kiss, the only restriction is that we at The Divinum Officium Project have no legal responsibility for any errata, and the ideas cannot be copyrighted, limiting our rights or the access of others to the same ideas.

Top

Databases

The databases are files, which contain the text of the Breviary. For easier understanding and handling, they are organized into folders. All files use UTF-8 encoding. If adding files, please be aware of this, as it can and will effect the appearance of text.

The top level folders are folders for the languages (Latin, English, French, etc.). The basic rule is that if a file is missing for a specific (modern) language, the program automatically selects the language text from the English. (Exception: Hyphenated language folders (e.g., Polski-Newer) first select the un-hyphenated folder of that language first.

Each language folder contains the same set of subfolders, which represents the parts of the printed breviary volumes: Psalterium, Tempora, Sancti, Commune. For technical reasons, there are separate folders for the Psalterium and for the Martyrologium. Folders marked "M" are used to display the Monastic version of the Office. Whenever separate files in the "M"-folders are unnecssary, the script defaults to that same folder without "M".

The style and punctuation used within the text is that of the 1962 liturgical books (i.e. natalicio is preferred to natalitio, abicere to abjicere, etc.), with the exception that one space is used between sentences, and no space is placed before a colon or other punctuation. In accordance with the principles sent to the typographers of the 1960 editiones typicae, the letter J in the 1960 rubrics is transformed to the letter I. (Sacrae Congregatio Rituum, "Ordinationes ad librorum liturgicorum editores", 26.VI.1960) The code is capable of automatically making certain typographical and rubrical changes to account for these and other variations in the 1960 rubrics.

The files itself usually are converted into hash elements, e.g. [Ant Matutinum], [Capitulum Nona], etc.

The key is enclosed within square brackets [ ... ] which is a separate line followed by the body of the element. For instance, [Ant 2] refers to the Benedictus antiphon at Lauds, while [Lectio93] normally refers to the 9th (hagiographical) reading of a commemorated saint (pre-1960), which became the 3rd reading at Matins on 3rd class feasts under 1960 rubrics.

These elements are read and composed by the code.

The folder and files can be viewed within the GitHub repository, which shows the files in the following folders in the directory ~/, ~/horas/ and, subsequently, ~/horas/Latin/ (or any modern language):

Top

Programs

The programs are written in Perl 5.6 and generate HTML. Environment variables: The following program files are used:

Main Perl Scripts

Auxiliary Perl Scripts

.txt Files

Top

Special characters

All .txt files employ special characters to properly format the Hours. Each of them, with the exception of the ~ tilde sign, has to be set in the beginning of a line.

C1 : Common of Apostle C1a : Common of Evangelists C1v : Vigil of Apostle
C2 : Common of One Martyr-Bishop C2a : Common of One Martyr (not a bishop)
C2b : Common of One Martyr-Pope (variations from 1942)
C3 : Common of Several Martyr-Bishops C3a : Common of Several Martyrs (not bishops)
C3b : Common of Several Martyr-Popes (variations from 1942)
C4 : Common of Confessor, Bishop or Pope C4a : Common for a Bishop-Doctor of the Church
C4b : Common of Confessor-Popes (variations from 1942) C4b-2 : Common of Doctor-Popes (variations from 1942)
C5 : Common of Confessor not Bishop C5a : Common for Doctor of the Church (not a bishop)
C5b : Common of Abbots
C6 : Common of One Virgin Martyr C6a : Common of a Virgin
C6b : Common of Several Virgins
C7 : Common of a Holy Woman Martyr C7a : Common of a Widow
C7b : Common of Several Holy Women Martyrs
C8 : Common of the Dedication of a Church C9 : Office of the Dead
C10 : Office of the Blessed Virgin for Saturday C11 : Common for the Blessed Virgin Mary
C12 : Little Office of the Blessed Virgin Mary other : reference to Proper office
-1 added to the name : Alternative Mass/Oration p added to the name : Eastertime Office

Top

Exceptions

Many of the files in the Latin Tempora or Sancti folders have an entry: Rule. There are the exceptions from those rules built into the Ordinarium and the Psalterium and represented by the files in those folders. A usual [Rule] item looks like:

[Rule] ex C4; Psalmi Dominica Antiphones horas 9 lectiones

Each rule is a separate line and exact spelling is required, except for capitalization.

Rule item Description Example Use case
ex file everything that is not in the Proprium is taken from the named file from the Commune or from the file in the Tempora or Sancti folder ex C2;ex Pasc0-0;ex Sancti/05-08
vide file like above, but only the Matins lections and the Lauds & Vespers antiphons, versum, & oratio are taken from the named file.
mtv Changing the third verse in Iste confessor hymn vide C4a;mtv Sancti/01-14
Psalmi Dominica The Sunday psalm set is used, except if the psalm is explicitly indicated as being proper in the Proprium file. Sancti/01-01
Psalmi minores ex Psalterio The minor hours are using the ferial psalms. Sancti/05-31
Feria Te Deum Te Deum is sung at the end of Matins even on a Feria. Sancti/01-02
Festum Domini Under Rubrics 1960, such a feast still trumps any minor Sunday. Sancti/01-06
Antiphonas horas Laudes antiphons are used for the minor hours: Ant 1 => Prima Ant 2 => Tertia Ant 3 => Sexta Ant 5 => Nona Sancti/01-06
9 lectiones12 lectiones Matins with 9 (or 12) lessons, i.e., 3 nocturns. Sancti/01-06SanctiM/01-06
Doxology=season Doxology of Hymns changes according to the season. Doxology=Epi Sancti/01-06
Psalm5 Vespera=ddd The last psalm in (2nd) Vespers is the named one. Psalm5 Vespera=116Psalm5 Vespera3=113 Sancti/01-06
omit group list Skip the named item. Omit ad Matutinum Incipit Invitatorium Hymnus Sancti/01-06
limit group list Special (hard coded) rules for the named items (on all Souls and Triduum Sacrum).
Minores sine antiphona Minor hours are prayed without an antiphon (e.g., Triduum).
Lectio1 temporaLectio1 OctNat Replacing 1st Nocturn readings according to the rules in the Octaves of Epiphany and Nativity. Sancti/01-07Sancti/12-31
scriptura1960 Under Rubrics 1960, 1st Nocturn lessons are taken from occuring scripture. Sancti/08-29
No ordinal vespera Prevents a feast to win or be commemorated at second/first vespers no secunda vespera Sancti/01-12
(OC)Papa(e))(CMD)=name Provides the name for a C(onfessor), M(artyr), or D(octor) Pope(s) in the O(ffice) or C(ommemorated) OPapaM=Hygínum;CPapaC=Marcum; deprecated
Sub unica concl Joining Prayers under one conclusio (esp. Peter + Paul) Sancti/01-18
in d Nocturno Lectiones ex Commune in dd loco Taking lessons from the respective place in the Commons. in 3 Nocturno Lectiones ex Commune in 3 loco; Sancti/02-05
Una antiphona Major hours are prayed under one antiphon (e.g., Paschal tide).
1 nocturn Matins of one nocturn only (e.g., Paschal octave).
3 lectiones Ferial style Matins under Monastic rules (e.g., dies infra Octavam).
Capitulum Versum 2 [_hour spec_] Capitulum is substituted with the [Versum 2] item from the Propria. This occurs at all hours other than Compline if hour spec is omitted, at Lauds and Vespers if_hour spec_ is ad Laudes et Vesperas, and at Lauds only if hour spec is ad Laudes tantum. Tempora/Pasc0-0

Top

Conditionals

The database files contain various types of conditional statements in parentheses which enables the scripts to access the hash elements for various rubrical structures and for various dynamic cases such as what Feria a day occurs on. The general format for such conditionals is as follows:

stopword condition scope descriptor instruction
_(optional)_sideindeverosedatqueattamen (optional subject) predicate [& aut(et/nisi)...](tempore) nativitiasrubrica tridentinaferia 3 aut feria 6commune C11 et commune C10 nisi rubrica monasticamissa tertiadie Sabbato Sancto_(etc.)_ _(optional)_loco hujus versusloco horum versuumhic versushi versus _(optional)_dicitur _(semper)_dicuntur _(semper)_omittituromittuntur

Conditions can be broken into various sub-conditions. et and nisi bind stronger than aut. Note that nisi is essentially identical to et except everthing that follows until the next aut must not be true.

Each conditional can have forward and backward scope. The stopwords si and deinde have forward scope. The other stopwords have implicit backward scope unless combined with dicitur semper or dicuntur semper. For nesting purposes, the stopwords have increasing "weight" in the given order.

The instructions omittitur and omittuntur force backwards scope and prevent any forward scope. The singular goes back until the last line break, which in the DO database can also be given by a "joiner line", i.e., a single underscore _. The plural goes back as far as possible unless stopped explictly by a forward scoped statement.

The instructions dicitur and dicuntur force forward scope but do allow backward scope unless followed by semper. The extent of the scope depends on the scope descriptor:

To fully embrace the power of conditionals, please have a look at this (indented) example from the beginning of Ordinarium/Completorium.txt

#Incipit $benedictio Completorium $Amen

#Lectio brevis

$Adjutorium nostrum (rubrica 196) $examen (atque dicuntur semper) $Pater noster (rubrica cisterciensis) $Ave Maria (deinde dicitur) $Confiteor $Misereatur (sed rubrica cisterciensis omittitur) (deinde dicitur) $Indulgentiam (sed rubrica Ordo Praedicatorum aut rubrica cisterciensis omittitur) $Converte nos (atque rubrica altovadensis omittuntur)

(rubrica cisterciensis) $clara voce $Deus in adjutorium (deinde dicitur) &Alleluia (sed rubrica cisterciensis omittitur)

The Incipit and Lectio brevis are part of all versions. So is the versicle Adjutorium nostrum. The rubric about Examination of Conscience has been introduced by Rubricarum Instructum only. The Ave Maria is prayed only in the Cistercian rite. The Confiteor and Misereatur are omitted in the Cistercian rite with the deinde dicitur separating this part from the Pater noster which is still prayed in the Cistercian version. Similarly, the Idulgentiam is not said in the Dominican and Cistercian rites whereas the Converte nos is. In the Reduced version of the Cistercian rite used in the Abbatia B.M.V. de Altovado, however, everything from the Pater noster to the Converte nos has to be omitted but not the Adjutorium nostrum. Therefore, the "stronger" stopword atque is used for nesting purposes.

[Programs] [Databases] [Special characters] [Exceptions] [Conditionals]

T.A.D.M.N.