The School of Salamanca. Web Application
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Update privacy information. Jun 13, 2018
modules Fix statement about owner of primary source. Jul 9, 2018
resources Update oxy framework. Dec 14, 2018
services Add disclaimer on 'legal' page for English and Spanish versions; add … Jun 8, 2018
templates Make marginal notes expansible on the spot, without duplicating them. Jul 5, 2018
.gitignore Add repo.xml template and adjust tracking and package building May 18, 2018
LICENSE Initial commit Mar 1, 2018
Readme.md Check some errors in the project description. Mar 6, 2018
admin-svn.html Initial commit Mar 1, 2018
admin.html Initial commit Mar 1, 2018
author.html Initial commit Mar 1, 2018
authors.html Add explanation notes to works and authors pages May 15, 2018
build.xml Add repo.xml template and adjust tracking and package building May 18, 2018
collection.xconf Small fixes for deployment and indexing of the package. Jun 1, 2018
contact.html Initial commit Mar 1, 2018
controller.xql Small fixes. May 15, 2018
corpus-admin.xql Add (i18sed) download corpus option in works.html. Apr 25, 2018
createLists.html Initial commit Mar 1, 2018
dictionary.html Add placeholder page for dictionary Apr 25, 2018
editorialWorkingPapers.html Initial commit Mar 1, 2018
error-page.html Initial commit Mar 1, 2018
expath-pkg.xml Increment version to 1.2.1. Jul 10, 2018
guidelines.html Initial commit Mar 1, 2018
iiif-admin.xql Initial commit Mar 1, 2018
iiif-in.xql Initial commit Mar 1, 2018
iiif-out.xql Initial commit Mar 1, 2018
index.html Enable dictionary in index.html May 4, 2018
legal.html Add disclaimer on 'legal' page for English and Spanish versions; add … Jun 8, 2018
lemma.html Initial commit Mar 1, 2018
mirador.html Initial commit Mar 1, 2018
news.html Initial commit Mar 1, 2018
newsEntry.html Initial commit Mar 1, 2018
post-install.xql Limit post-install indexing to the package at hand; the data package … Jun 2, 2018
pre-install.xql Small fixes for deployment and indexing of the package. Jun 1, 2018
project.html Include changed privacy settings & information Jun 1, 2018
rdf-admin.xql Initial commit Mar 1, 2018
reindex.xql Initial commit Mar 1, 2018
render.html Initial commit Mar 1, 2018
renderTheRest.html Initial commit Mar 1, 2018
repo.xml.tpl Add repo.xml template and adjust tracking and package building May 18, 2018
robots.txt Initial commit Mar 1, 2018
search.html Initial commit Mar 1, 2018
sphinx-admin.xql Initial commit Mar 1, 2018
sphinx-client.xql Initial commit Mar 1, 2018
sphinx-out.html Initial commit Mar 1, 2018
sphinx-out.xql Initial commit Mar 1, 2018
stats.html Initial commit Mar 1, 2018
void.ttl Update void.ttl. May 2, 2018
work.html Initial commit Mar 1, 2018
workDetails.html Initial commit Mar 1, 2018
workingPaper.html Initial commit Mar 1, 2018
workingPapers.html Initial commit Mar 1, 2018
works.html Beautify corpus download field May 23, 2018

Readme.md

The School of Salamanca - The Web Application

DOI

This software package provides a XML/TEI-based digital edition environment. It has been developed as the central element of the web presence of the project "The School of Salamanca. A digital collection of sources and a dictionary of its juridical-political language" of the Academy of Sciences and Literature | Mainz, Germany. It is meant to be deployed as an application package within eXist-db and it draws upon a series of further services described in more detail below. The data files as well as other parts of the infrastructure will be published separately.

Features

Some of the particular features of this software are the following:

  • Segmentation of html files: Since the works in our edition are in some cases rather large, for the reading view we can not render them on-the-fly but do so in advance, and in the process we split them into a series of html segments that are dynamically loaded as one scrolls down ("infinite scrolling"). This makes things such as linking and cross-referencing somewhat more complicated and we have spent some effort to compensate for that. (The level at which the segmentation is done is configurable for each work individually via XML processing instructions. In this way, editors exert some measure of control over the size of the resulting chunks of text.)

  • Citation Links for sections: At all levels of text above and beginning with paragraphs, context menus are provided (indicated by means of "pointing hand" icons) that offer canonical links to the respective passage. These links are subject to a content negotiation mechanism delivering a plaintext, html or rdf (or, if applicable, image) representation of the passage, depending on the requesting client's capacities. (pdf and other formats are on the roadmap.)

  • Lemmatized fulltext search: The "Salamanca" web application provides a lemma-based search function that, for instance, when searching for "lex" also delivers results containing "leges", "legum", "legibus" etc. We have achieved this with outsourcing the search functionality from eXist-db to a Sphinxsearch server that lemmatizes texts based on a dictionary (which we are continuously improving).

  • Microservices architecture: Some of the application's functions are implemented as clients requesting data from dedicated services. Navigation between passages relies (in part) on the id service described above, search relies on an OpenSearch-compatible search service, image viewing on an iiif-conforming image and manifest service etc. For the environment that this application expects, see below.

Environment

Configuration is concentrated in a single file modules/config.xqm. This file is one of the things you will want to customize when you intend to launch the software yourself. However, at (https://www.salamanca.school), the application is also integrated with the following other servers:

  • an iiif-conformant image server (iiif image and presentation APIs)
  • an any23 service rendering rdf information in a desired serialisation
  • a sphinxsearch search server, accessed via an opensearch-compatible php interface
  • a wordpress blog

Caveats/provisos

While we consider some aspects of the software sufficiently consolidated and tests to offer them for public review, criticism and re-use, we are well aware that some other areas urgently need to be taken care of. This concerns, among others:

  • Improve documentation - inline documentation (code comments) as well as separate description of the app's workings need improvement
  • Clean up code - some obsolete code has not been commented out, let alone removed. This also concerns files (i.e. obsolete javascript libraries or xslt stylesheets). Also, not all occurrences of hardcoded, "Salamanca-specific" information has been moved to the central configuration module (modules/config.xqm) or the localisation files at data/i18n, where such things should reside.
  • Performance - when we are satisfied with everything, we want to minify js and css code. However, we also have to revise the application more generally in terms of performance. In some cases, caching routines can certainly help (in the case of the rdf lifting service, we have started working on this, but this is not working properly right now.)
  • Error handling can certainly be done in a more orderly way.

License

This software is published under the MIT license:

Copyright 2018 Ingo Caesar, David Glück, Andreas Wagner

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.