Technical

Introduction

The Solemne application is a Django web application. Django is a high-level framework built on the Python programming language. The web application consists of the following parts:

  • Front-end - the 'HTML' pages that are 'served' to the user
  • Back-end - the django/python program running on the Radboud university server
  • Database - the place where the manuscripts, sermons and other information chunks are stored

Ger Groothuijsen, © 2021.

Front-end - web browser

The front-end is the user's browser. This is the system that the user interacts with first of all. The user sees HTML pages on the browser, and interacts with these pages via calls to 'Javascript' code. Whenever the user loads a HTML page, Javascript code is loaded too. Pressing buttons often results in the execution of a piece of Javascript code--something that takes place entirely on the user's browser. Some pieces of Javascript send POST or GET requests to the back-end server, resulting in dynamically updated web pages.

Data visualization on the site has been implemented using d3js, which provides svg pictures.

As for requirements - any up-to-date web browser should be able to handle this web application. The application has not been tested on all browsers, but it should at least work on Firefox and on Chrome.

Back-end - server

The back-end application is the one that makes use of the Django-Python framework. The back-end is a program running on the 'Ponyland' server park of the Radboud University. It is served through uwsgi. The framework uses a 'model-view-controller' system: the model reflects the structure of the database, the controller determines what is shown to the user when, and the view consists of the HTML files that are served.

The back-end is the place where most of the work takes place for the Solemne application. While users are served HTML files, the buttons they press trigger requests to be sent to the server. The Python functions that run there handle the requests and, if needed prepare other HTML pages that are then sent to the user's browser.

The preparation of HTML pages in the Django framework makes use of a template system. The templates contain the rough sketch of the HTML pages, and the data-dependant context provide the information to fill in the details.

Database

The Solemne application uses an SQLite database. This kind of database is contained in one file. This file resides somewhere on the server. Regular back-ups of this file assure little loss of data, should a calamity occur. (Note: the database is a relational one, but it is not a MySQL one.)

The structure of the database can best be seen by glancing through the models.py file of the Github place where the code is kept. Each class based on models.Model represents one table in the database.

Data access

The Solemne web application allows downloading data in a number of different ways.

  • Manuscript: the information of individual manuscripts, including their sermons, can be downloaded in Excel. The Excel file contains one page with information about the manuscript itself and one page where the sermons, including their hierarchy, are described (one line is one sermon).
  • Authors: the list of authors that are defined internally (json, csv or Excel).
  • Libraries: the whole list of internally defined libraries (json, csv, Excel).

Visualizations can also be downloaded, but note that the current visualizations are all quite experimental right now, and not each download function is guaranteed to work as one might want to. We are gradually working on that.

  • Overlap: the SSG overlap network (svg, png, json).
  • Transmission: the SSG transmission network (svg, png, json).
  • Co-occurrance: manuscripts in which SSGs co-occur (svg, png, json).

API access

Accessing data by a different program will be made possible in the near future.