Skip to content
The School of Salamanca. Web Application
JavaScript XQuery CSS HTML XSLT
Branch: master
Clone or download
Latest commit 7edf98d Jul 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Fix title case Jun 7, 2019
docs Closes #44, fixes #46. May 27, 2019
modules Fix creation of pagination list Jul 18, 2019
resources
services Fix html links for volumes. Jun 5, 2019
templates Make image viewer links generic Jul 8, 2019
.gitignore Add repo.xml template and adjust tracking and package building May 18, 2018
LICENSE Initial commit Mar 1, 2018
Readme.md Markdown linting in readme. Nov 7, 2018
admin-svn.html Initial commit Mar 1, 2018
admin.html Adjust model for admin tools May 8, 2019
author.html Initial commit Mar 1, 2018
authors.html
build.xml Add repo.xml template and adjust tracking and package building May 18, 2018
collection.xconf Add some rdf elements to index config. Feb 1, 2019
contact.html Initial commit Mar 1, 2018
controller.xql id.s.s redirects only for entities, not services. May 28, 2019
corpus-admin.xql Closes #44, fixes #46. May 27, 2019
createLists.html Initial commit Mar 1, 2018
dictionary.html Add placeholder page for dictionary Apr 25, 2018
editorialWorkingPapers.html Initial commit Mar 1, 2018
enhance-tei.xql Closes #44, fixes #46. May 27, 2019
error-handler.xql Refine HTML delivery depending on requested resource type. Apr 26, 2019
error-page.html Fix templating of and wording in error page May 12, 2019
expath-pkg.xml Increment version to 1.4.0 Jun 7, 2019
guidelines.html Initial commit Mar 1, 2018
iiif-admin.xql Closes #44, fixes #46. May 27, 2019
iiif-in.xql Initial commit Mar 1, 2018
iiif-out.xql Resolved merge conflicts with iiif-out.xql. Aug 14, 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
news.html Initial commit Mar 1, 2018
newsEntry.html Initial commit Mar 1, 2018
post-install.xql
pre-install.xql Small fixes for deployment and indexing of the package. Jun 1, 2018
project.html
rdf-admin.xql Adjust rdf-admin timeout Jun 5, 2019
reindex.xql Closes #44, fixes #46. May 27, 2019
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
sources.html Renamings and reformatings Apr 23, 2019
sphinx-admin.xql Add timeout prolongation. Jan 18, 2019
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
viewer.html Make image viewer links generic Jul 8, 2019
void.ttl Fix controller and API. Nov 28, 2018
work.html Initial commit Mar 1, 2018
workDetails.html Partial work data in model instead of whole works (addresses #32) May 8, 2019
workingPaper.html Fix WP icon. Apr 18, 2019
workingPapers.html Fix WP icon. Apr 18, 2019
works.html Minor icon changes (sources vs. works) Apr 23, 2019

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.

Technical documentation can be found in <docs/Technical.md> and a description of the API is in <docs/API.md>.

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.

You can’t perform that action at this time.