Skip to content
Peter edited this page Mar 23, 2015 · 5 revisions

This project presents a popular template that can be used for illustrate, for test, or for benchmark, by any algorithm promoted as being a "template processor".

Habemus Papam is supplied in three forms, described below:

  1. Simplified: in English (or Latin without declensions).
  2. Official: in Latin with declensions.
  3. Multilingual: in other languages, translations from latin for broadcasting, registered as written record at news media.

Rationale

Placeholder templates are the simplest kind of template systems, so, it is important for didactic goals; and as a "minimal criteria", to check if a system promoted as being "template system", is in fact it.

The "Habemus Papam" announcement rules is, probably, the oldest (circa 1534 or 1605) well-knowed and well-documented formally expressed template. It is also very popular – with revivival moments in the news media, like 2013-03-13 --, and perhaps, also the "simplest real case" of template use (more than 400 yers of use!).

Conventions

Adopting here the smallest-template-system template syntax, with default {$argument_name} placeholders.

The reference-model is the XSLT template.

Implementations

... see downloads ... under construction ...

Collaboration

Please send an e-mail or add a comment at the Wiki pages, for any correction, suggestion or add material.

Official Template

Latin is the language of the "Ancient Catholic Church", and the official announcement is only in latin. The protocol includes an entire context:

Before the first appearance of the papa at the balcony of Saint Peter's Basilica a Cardinal Protodeacons give the traditional Habemus Papam announcement in Latin.

This is the official template, expressed in plain text with placeholders in the conventions above:

Annuntio vobis gaudium magnum;
Habemus Papam:

Eminentissimum ac reverendissimum Dominum,
Dominum {$FirstName!latinAccusativeCase}
Sanctæ Romanæ Ecclesiæ Cardinalem {$LastName!latinUndeclinedForm},
qui sibi nomen imposuit {$PapalName!latinGenitiveCase}.

It is a simple placeholder template, but the placeholder resolution have some complexity.

The Habemus Papam announcement rules require to transform firstName into latin accusative case, LastName in the in the latin undeclined form, and the papal name into genitive case – extending roman numerals in words, if there were. So, the placeholders receive a format modifier, {$argument!transform}, that depends on a dictionary and a Latin orthographic framework, to implements each piped_function.

If template system have not this issue, we can delegate this transform rules to the input data supplier, and modify the template to a simplified version (see below).

Simplified template

In modern latin without declensions,

Annuntio vobis gaudium magnum;
Habemus Papam:

Eminentissimum ac reverendissimum Dominum,
Dominum {$FirstName}
Sanctæ Romanæ Ecclesiæ Cardinalem {$LastName},
qui sibi nomen imposuit {$PapalName}.

This is template use direct expansion, so is the simplest and more usual for template systems.

A Simple English version:

 I announce to you a great joy:
 We have a Pope!

 The most eminent and most reverend Lord,
 the Lord {$FirstName},
 Cardinal of the Holy Roman Church {$LastName},
 Who takes to himself the name of {$PapalName}.

Multilingual Template

As an global announcement, it must be expressed into many languages. After traditional Saint Peter's Basilica Protocol, the news media do a massive broadcasting, translating the announcement into many other languages.

A Multilingual template is a little bit more complex, and must be resolved into two stages: 1) select the language; 2) expand data in the selected template.

EN

I announce to you a great joy;
We have a Pope:
The most eminent and most reverend Lord,
Lord {$FirstName} Cardinal of the Holy Roman Church {$LastName},
Who takes for himself the name of {$PapalName}.
ES

Os anuncio un gran gozo;
Tenemos Papa:
El eminentísimo y reverendísimo Señor,
Don {$FirstName},
Cardenal de la Santa Iglesia Romana {$LastName},
Que se ha impuesto el nombre de {$PapalName}.
IT

Vi annuncio una grande gioia;
abbiamo il Papa:
L'eminentissimo e reverendissimo Signore
Signor {$FirstName},
Cardinale {$LastName} di Santa Romana Chiesa,
il quale si è imposto il nome di {$PapalName}.
...

...
PT

Anuncio-vos uma grande alegria;
Temos um Papa:
O eminentíssimo e reverendíssimo Senhor,
Dom {$FirstName}, Cardeal da Santa Romana Igreja {$LastName},
Que se impôs o nome de {$PapalName}.

See downloads for the complete multilingual template.

Note: lots of translations changed the initial puntuaction, ";" and ":", to ":" and "!". As example, the English translation will be "I announce to you a great joy: we have a Pope!". In this project, the official punctuaction is used.

Input data

PapalName Year FirstName LastName
Pope Leo XI 1605 Alessandro de' Medici
Pope Gregory XV 1621 Camillo Borghese
Pope Urban VIII 1623 Alessandro Ludovisi
Pope Alexander VII 1655 Maffeo Barberini
Pope Clement IX 1667 Fabio Chigi
Pope Clement X 1670 Giulio Rospigliosi
...
Pope Paul VI 1963 Giovanni Montini
Pope John Paul I 1978 Albino Luciani
Pope John Paul II 1978 Karol Wojtyła
Pope Benedict XVI 2005 Joseph Ratzinger
Pope Francis 2013 Jorge Bergoglio

See downloads for the complete dataset.


HISTORICAL NOTES AND SOURCES:

The first well-document record of the adoption of the Habemus Papam is from 1484, year in which it is certain that it was used for the election of Giovanni Battista Cybo, who took the name of Innocent VIII. Another date suggested is the election of pope Martin V Colonna (1417). See Italian Wikipedia references.

The first version of the list of announcement, from 1605 until today, was obtained from English Wikipedia.