Skip to content

Data and application of "Digitale Briefedition Alfred Escher"

License

Notifications You must be signed in to change notification settings

stazh/briefedition-escher

Repository files navigation

Digitale Briefedition Alfred Escher

https://www.briefedition.alfred-escher.ch/briefe/

Data and TEI Publisher App of the edition which was relaunched 2022.

Creative Commons License
Texts and data are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

The app is licensed under GNU General Public License

Development Notes

Data Conversion

The original XML data was converted to TEI using the XQuery modules available in modules/conversion. Letters were first transformed through the main conversion script and then post-processed to add a tei:correspDesc to the header, indicating the next and previous letters in the correspondence. Finding out which letters are part of a correspondence would otherwise be too time consuming. Based on this, timeline information was later extracted in a separate step.

The names of the other modules correspond to the type of data they process, i.e. places, people, abbreviations, commentaries and the bibliography.

With all data processed, another auxiliary file was created to provide fast access to letter titles. Those are displayed in various popups, so collecting them on the fly would be expensive.

Application

The app was initially generated from TEI Publisher 7 and updated later to keep up with latest Publisher developments. Following general recommendations, server-side functionality is implemented in XQuery files directly below modules.

The goal was to preserve backwards compatibility for all URLs as much as possible. To reflect the different browsing contexts for /briefe, /kontexte etc., new endpoints were added to custom-api.json and implemented in custom-api.xql and (in some cases) app.xql - unless the request is forwarded to standard TEI Publisher endpoints.

In the TEI sources, letters are identified by an @xml:id following the pattern "K_nnnnn", while users would access a letter using an ID like "Bnnnnnn". To retain this behaviour in a backwards-compatible way, the function $config:get-document was overwritten to translate the @xml:id.

All transformations from TEI to HTML are done via escher.odd, using only three small extension functions in XQuery in ext-html.xql and ext-common.xql.

Most of the webdesign is determined by escher-theme.css, which overwrites some of the TEI Publisher default styles from theme.css. The latter can thus be easily updated to newer versions of Publisher. Additional, page specific styling is applied within the corresponding HTML templates.

For browsing people and places, a new web component, pb-split-list was implemented. Likewise, pb-leaflet-map and pb-timeline were extended. All three were contributed to the tei-publisher-components distribution.

Custom javascript functions are used to:

  • show facsimile regions if user mouse overs a line in the diplomatic view
  • handle letter-by-letter navigation links
  • react to user interactions with the timeline component
  • show the CSS print view in a separate tab/window