Information for MoEML Programmers
This document is currently in draft. When it has been reviewed and proofed, it will
be
published on the site.
Please note that it is not of publishable quality yet.
Information for MoEML Programmers
¶Introduction
This documentation provides basic information for programmers
needing to work on the MoEML infrastructure and build process. It
covers programming languages used, code organization, software
requirements, the static build process, and tips and tricks for
working more efficiently on the code.
The MoEML project consists of source
data—a large collection of TEI-encoded XML files along with other
resources such as images, stylesheets and scripts—along with
a substantial codebase whose job is to check, validate and diagnose
problems with the source data, and eventually to build it into a
complete static website for deployment. The codebase is currently
organized in a rather haphazard way, largely for historical reasons,
and still includes many components from previous incarnations
of the project which are no longer relevant. Figuring out which
bits of the repository are responsible for which types of
functionality can be difficult. This document should help to
clarify some of these issues, pending a proper purge and
reorganization of the codebase.
¶Organization of the SVN Repository
As mentioned above, the organization of the software
repository is somewhat confusing for two reasons: first,
the repo size is large, and we don’t want to force regular
encoders to download the whole thing. This means the data
component of the repo needs to be self-sufficient in some
ways, so programming code and resources are included there
which would be better placed elsewhere in a perfect world.
Secondly, the project has gone through many phases in which
different components were used (Cocoon, eXist, even PHP)
so there are remnants of stuff which really should be
reorganized.
These are the important areas for programmers:
-
backup_schemas
contains copies of schemas which the build process would normally download from the web, to ensure we have the latest versions. When the download fails, these are used in order to allow the build to proceed. -
db
is confusingly named, because it was once part of an eXist XML db folder structure. It contains the following comonents:-
agas
contains the image files used in the Agas Map page. -
data
contains all the TEI XML and related files (images, binary documents) which form the intellectual content of the project. Because this is where encoders work, this folder also includes the project schemas (inrng
, although the schema constraints are created in ODD and Schematron, and then build into RNG). This folder also includes autilities
folder with some important build components, in particular the diagnostics code and the schema build code. -
redirects
currently contains only one file, an XML file calledredirects.xml
where we specify how to handle ids (which are tied to URLs) which need to be retired. We specify where each retired id should be redirected to, so that pages do not simply disappear from the site when new versions are released. -
site
contains site components and resources that are edited by designers and programmers, used in building the website.
-
-
ise
contains some old versions of Internet Shakespeare Edition plays which were part of an experiment to link between the two projects. The long-term status of this experiment is undecided; ignore this folder for the moment. -
jenkins
contains two components related to the build process for the project which runs on our Jenkins CI server.config.xml
is the configuration file for that build; this should be updated whenever a change is made to the build configuration on the server. The other file,moeml_log_parse_rules.txt
, is a set of rules which is used by Jenkins to determine whether a build has failed or succeeded. In the course of a normal build process, words such as error or warning may appear in the output from the process; normally these would cause the build to fail, but in some cases they are accidental (for instance, a filename may contain the word error, so this ruleset is used to refine the process to make sure it only fails when something is actually wrong. -
obsolete
is what you would expect: a place where we stash data and code files which are no longer needed. -
presentations
contains the materials for presentations made by project members that relate directly to MoEML. -
static
is the folder which contains all of the code used to build the current version of the site.-
css
has all the various CSS files used in the current XHTML5 version of the site. -
exist
contains code related to the version of the site which was hosted in the eXist XML database; this was used for version 6.3, but from version 6.4 onwards we have moved to a completely static version which does not require a backend database, so this code will eventually be moved to theobsolete
folder. -
externals
is a folder which is configured to bring in some XQuery code from other repositories, used in the eXist version of the site. This will eventually be removed. -
fonts
contains all the web fonts used in the current version of the site, and in the PDF versions of the Mayoral Shows. -
fopConfig
contains a configuration file for the FOP PDF processor which is used for generating the PDF versions of Mayoral Shows. -
js
contains a variety of JavaScript libraries used in the static website. -
ssExtras
contains two files which are used as part of the staticSearch component of the site build (described at length below). -
xsl
contains all the XSLT code used in our current build processes, to create the website and the Mayoral Show PDFs. This will be described in detail below.
static
which are not part of the svn repository; examples aresite
andstaticSearch
. These are created during the build process. -
-
utilities
contains a range of libraries and code modules some of which are essential for everything (e.g. the Saxon XSLT processor) and some of which are one-off transformations used to fix problems. Many of these files are obsolete and a cleanup of this folder is long overdue. -
workshops
contains materials used for teaching workshops for RAs on specific topics such as regular expressions and XPath.
¶Software Requirements
This is a list of software that is required for running
the various build processes. Some of it is actually stored
in the repository, and some must be installed on the
machine doing the build.
¶Software Included in the Repository
The following software is stored in the SVN
repository, so does not need to be installed locally:
-
Saxon XSLT processor (saxon-he-10.jar)
-
Schematron library for Ant (ant-schematron-2010-04-14.jar)
-
The W3C HTML validator (vnu.jar)
-
The Jing RELAXNG validator (jing.jar)
¶Software to be Installed Locally
To run the various MoEML build processes, you will need the
following software to be installed on your machine. At present
most of the build processes have to be run on *NIX systems because
they depend on command-line utilities. If you are forced to use
Windows, you’ll probably have to install the Windows Subsystem
for Linux. For running specific components of the build, you may
not need all of these applications or libs.
-
Java
-
Ant
-
ant-contrib
-
linkchecker
-
jsonlint
-
xmllint
-
svn
-
git
-
zip
-
pdftoppm
-
sensible-browser
¶MoEML’s Build Processes
The project has two distinct build processes:
-
The extended validation build (run by
build.xml
in the project root folder) -
The static site build (run by
build.xml
in thestatic
folder)
¶The Extended Validation Build
The extended validation build is designed to provide a range
of extra checks to be carried out before bothering to build the
website. It is controlled by the Ant
build.xml
file in the project root folder. It checks that:
-
all XML documents are valid (with Schematron and RELAXNG)
-
TEI code in all egXMLs in praxis is valid
-
all inline CSS is valid
-
all internal links point to something real
-
there are no duplicate ids
¶The Static Site Build
If all checks in the Extended Validation Build have completed
successfully, then Jenkins will run the static site build. This
is controlled by the Ant
build.xml
file in the
static
subfolder.
This is a long and complex process, and it takes a long time
to complete. Programmers working on the project need to
understand it well so that they can run subcomponents of the
build process in order to reproduce build errors rapidly and
fix them efficiently.
Cite this page
MLA citation
Information for MoEML Programmers.The Map of Early Modern London, edited by , U of Victoria, 26 Jun. 2020, mapoflondon.uvic.ca/for_programmers.htm.
Chicago citation
Information for MoEML Programmers.The Map of Early Modern London. Ed. . Victoria: University of Victoria. Accessed June 26, 2020. https://mapoflondon.uvic.ca/for_programmers.htm.
APA citation
MoEML Programmers. In (Ed), The Map of Early Modern London. Victoria: University of Victoria. Retrieved from https://mapoflondon.uvic.ca/for_programmers.htm.
2020. Information for RIS file (for RefMan, EndNote etc.)
Provider: University of Victoria Database: The Map of Early Modern London Content: text/plain; charset="utf-8" TY - ELEC A1 - Holmes, Martin ED - Jenstad, Janelle T1 - Information for MoEML Programmers T2 - The Map of Early Modern London PY - 2020 DA - 2020/06/26 CY - Victoria PB - University of Victoria LA - English UR - https://mapoflondon.uvic.ca/for_programmers.htm UR - https://mapoflondon.uvic.ca/xml/standalone/for_programmers.xml ER -
RefWorks
RT Web Page SR Electronic(1) A1 Holmes, Martin A6 Jenstad, Janelle T1 Information for MoEML Programmers T2 The Map of Early Modern London WP 2020 FD 2020/06/26 RD 2020/06/26 PP Victoria PB University of Victoria LA English OL English LK https://mapoflondon.uvic.ca/for_programmers.htm
TEI citation
<bibl type="mla"><author><name ref="#HOLM3"><surname>Holmes</surname>, <forename>Martin</forename>
<forename>D.</forename></name></author> <title level="a">Information for <title level="m">MoEML</title>
Programmers</title>. <title level="m">The Map of Early Modern London</title>, edited
by <editor><name ref="#JENS1"><forename>Janelle</forename> <surname>Jenstad</surname></name></editor>,
<publisher>U of Victoria</publisher>, <date when="2020-06-26">26 Jun. 2020</date>,
<ref target="https://mapoflondon.uvic.ca/for_programmers.htm">mapoflondon.uvic.ca/for_programmers.htm</ref>.</bibl>
Personography
-
Joey Takeda
JT
Programmer, 2018-present. Junior Programmer, 2015-2017. Research Assistant, 2014-2017. Joey Takeda was a graduate student at the University of British Columbia in the Department of English (Science and Technology research stream). He completed his BA honours in English (with a minor in Women’s Studies) at the University of Victoria in 2016. His primary research interests included diasporic and indigenous Canadian and American literature, critical theory, cultural studies, and the digital humanities.Roles played in the project
-
Abstract Author
-
Author
-
Author of Abstract
-
Author of Introduction
-
Author of Stub
-
CSS Editor
-
Compiler
-
Conceptor
-
Copy Editor
-
Copy Editor and Revisor
-
Data Manager
-
Date Encoder
-
Editor
-
Encoder
-
Encoder (Bibliography)
-
Geographic Information Specialist
-
Geographic Information Specialist (Agas)
-
Junior Programmer
-
Markup Editor
-
Metadata Co-Architect
-
MoEML Encoder
-
MoEML Transcriber
-
Post-conversion processing and markup correction
-
Programmer
-
Proofreader
-
Researcher
-
Second Author
-
Toponymist
-
Transcriber
-
Transcription Editor
Contributions by this author
Joey Takeda is a member of the following organizations and/or groups:
Joey Takeda is mentioned in the following documents:
-
-
Tye Landels-Gruenewald
TLG
Data Manager, 2015-2016. Research Assistant, 2013-2015. Tye completed his undergraduate honours degree in English at the University of Victoria in 2015.Roles played in the project
-
Author
-
Author of Term Descriptions
-
CSS Editor
-
Compiler
-
Conceptor
-
Copy Editor
-
Data Manager
-
Editor
-
Encoder
-
Geographic Information Specialist
-
Markup Editor
-
Metadata Architect
-
MoEML Researcher
-
Name Encoder
-
Proofreader
-
Researcher
-
Toponymist
-
Transcriber
Contributions by this author
Tye Landels-Gruenewald is a member of the following organizations and/or groups:
Tye Landels-Gruenewald is mentioned in the following documents:
-
-
Cameron Butt
CB
Research Assistant, 2012–2013. Cameron Butt completed his undergraduate honours degree in English at the University of Victoria in 2013. He minored in French and has a keen interest in Shakespeare, film, media studies, popular culture, and the geohumanities.Roles played in the project
-
Author
-
CSS Editor
-
Conceptor
-
Contributing Author
-
Copy Editor
-
Creator
-
Data Manager
-
Encoder
-
Markup Editor
-
Metadata Architect
-
Proofreader
-
Researcher
-
Transcriber
Contributions by this author
Cameron Butt is a member of the following organizations and/or groups:
Cameron Butt is mentioned in the following documents:
-
-
Sarah Milligan
SM
Research Assistant, 2012-2014. MoEML Research Affiliate. Sarah Milligan completed her MA at the University of Victoria in 2012 on the invalid persona in Elizabeth Barrett Browning’s Sonnets from the Portuguese. She has also worked with the Internet Shakespeare Editions and with Dr. Alison Chapman on the Victorian Poetry Network, compiling an index of Victorian periodical poetry.Roles played in the project
-
Author
-
Compiler
-
Copy Editor
-
Editor
-
Encoder
-
Final Markup Editor
-
Gap Encoder
-
Markup Editor
-
MoEML Transcriber
-
Researcher
-
Second Author
-
Toponymist
Contributions by this author
Sarah Milligan is a member of the following organizations and/or groups:
Sarah Milligan is mentioned in the following documents:
-
-
Kim McLean-Fiander
KMF
Director of Pedagogy and Outreach, 2015–present. Associate Project Director, 2015–present. Assistant Project Director, 2013-2014. MoEML Research Fellow, 2013. Kim McLean-Fiander comes to The Map of Early Modern London from the Cultures of Knowledge digital humanities project at the University of Oxford, where she was the editor of Early Modern Letters Online, an open-access union catalogue and editorial interface for correspondence from the sixteenth to eighteenth centuries. She is currently Co-Director of a sister project to EMLO called Women’s Early Modern Letters Online (WEMLO). In the past, she held an internship with the curator of manuscripts at the Folger Shakespeare Library, completed a doctorate at Oxford on paratext and early modern women writers, and worked a number of years for the Bodleian Libraries and as a freelance editor. She has a passion for rare books and manuscripts as social and material artifacts, and is interested in the development of digital resources that will improve access to these materials while ensuring their ongoing preservation and conservation. An avid traveler, Kim has always loved both London and maps, and so is particularly delighted to be able to bring her early modern scholarly expertise to bear on the MoEML project.Roles played in the project
-
Associate Project Director
-
Author
-
Author of MoEML Introduction
-
CSS Editor
-
Compiler
-
Contributor
-
Copy Editor
-
Data Contributor
-
Data Manager
-
Director of Pedagogy and Outreach
-
Editor
-
Encoder
-
Encoder (People)
-
Geographic Information Specialist
-
JCURA Co-Supervisor
-
Managing Editor
-
Markup Editor
-
Metadata Architect
-
Metadata Co-Architect
-
MoEML Research Fellow
-
MoEML Transcriber
-
Proofreader
-
Second Author
-
Secondary Author
-
Secondary Editor
-
Toponymist
-
Vetter
Contributions by this author
Kim McLean-Fiander is a member of the following organizations and/or groups:
Kim McLean-Fiander is mentioned in the following documents:
-
-
Janelle Jenstad
JJ
Janelle Jenstad is Associate Professor of English at the University of Victoria, Director of The Map of Early Modern London, and PI of Linked Early Modern Drama Online. She has taught at Queen’s University, the Summer Academy at the Stratford Festival, the University of Windsor, and the University of Victoria. With Jennifer Roberts-Smith and Mark Kaethler, she co-edited Shakespeare’s Language in Digital Media (Routledge). She has prepared a documentary edition of John Stow’s A Survey of London (1598 text) for MoEML and is currently editing The Merchant of Venice (with Stephen Wittek) and Heywood’s 2 If You Know Not Me You Know Nobody for DRE. Her articles have appeared in Digital Humanities Quarterly, Renaissance and Reformation,Journal of Medieval and Early Modern Studies, Early Modern Literary Studies, Elizabethan Theatre, Shakespeare Bulletin: A Journal of Performance Criticism, and The Silver Society Journal. Her book chapters have appeared (or will appear) in Institutional Culture in Early Modern Society (Brill, 2004), Shakespeare, Language and the Stage, The Fifth Wall: Approaches to Shakespeare from Criticism, Performance and Theatre Studies (Arden/Thomson Learning, 2005), Approaches to Teaching Othello (Modern Language Association, 2005), Performing Maternity in Early Modern England (Ashgate, 2007), New Directions in the Geohumanities: Art, Text, and History at the Edge of Place (Routledge, 2011), Early Modern Studies and the Digital Turn (Iter, 2016), Teaching Early Modern English Literature from the Archives (MLA, 2015), Placing Names: Enriching and Integrating Gazetteers (Indiana, 2016), Making Things and Drawing Boundaries (Minnesota, 2017), and Rethinking Shakespeare’s Source Study: Audiences, Authors, and Digital Technologies (Routledge, 2018).Roles played in the project
-
Annotator
-
Author
-
Author of Abstract
-
Author of Stub
-
Author of Term Descriptions
-
Author of Textual Introduction
-
Compiler
-
Conceptor
-
Copy Editor
-
Copyeditor
-
Course Instructor
-
Course Supervisor
-
Course supervisor
-
Data Manager
-
Editor
-
Encoder
-
Encoder (Structure and Toponyms)
-
Final Markup Editor
-
GIS Specialist
-
Geographic Information Specialist
-
Geographic Information Specialist (Modern)
-
Geographical Information Specialist
-
JCURA Co-Supervisor
-
Main Transcriber
-
Markup Editor
-
Metadata Co-Architect
-
MoEML Project Director
-
MoEML Transcriber
-
Name Encoder
-
Peer Reviewer
-
Primary Author
-
Project Director
-
Proofreader
-
Researcher
-
Reviser
-
Revising Author
-
Second Author
-
Second Encoder
-
Toponymist
-
Transcriber
-
Transcription Proofreader
-
Vetter
Contributions by this author
Janelle Jenstad is a member of the following organizations and/or groups:
Janelle Jenstad is mentioned in the following documents:
Janelle Jenstad authored or edited the following items in MoEML’s bibliography:
-
Jenstad, Janelle.
Building a Gazetteer for Early Modern London, 1550-1650.
Placing Names. Ed. Merrick Lex Berman, Ruth Mostern, and Humphrey Southall. Bloomington and Indianapolis: Indiana UP, 2016. 129-145. -
Jenstad, Janelle.
The Burse and the Merchant’s Purse: Coin, Credit, and the Nation in Heywood’s 2 If You Know Not Me You Know Nobody.
The Elizabethan Theatre XV. Ed. C.E. McGee and A.L. Magnusson. Toronto: P.D. Meany, 2002. 181–202. Print. -
Jenstad, Janelle.
Early Modern Literary Studies 8.2 (2002): 5.1–26..The City Cannot Hold You
: Social Conversion in the Goldsmith’s Shop. -
Jenstad, Janelle.
The Silver Society Journal 10 (1998): 40–43.The Gouldesmythes Storehowse
: Early Evidence for Specialisation. -
Jenstad, Janelle.
Lying-in Like a Countess: The Lisle Letters, the Cecil Family, and A Chaste Maid in Cheapside.
Journal of Medieval and Early Modern Studies 34 (2004): 373–403. doi:10.1215/10829636–34–2–373. -
Jenstad, Janelle.
Public Glory, Private Gilt: The Goldsmiths’ Company and the Spectacle of Punishment.
Institutional Culture in Early Modern Society. Ed. Anne Goldgar and Robert Frost. Leiden: Brill, 2004. 191–217. Print. -
Jenstad, Janelle.
Smock Secrets: Birth and Women’s Mysteries on the Early Modern Stage.
Performing Maternity in Early Modern England. Ed. Katherine Moncrief and Kathryn McPherson. Aldershot: Ashgate, 2007. 87–99. Print. -
Jenstad, Janelle.
Using Early Modern Maps in Literary Studies: Views and Caveats from London.
GeoHumanities: Art, History, Text at the Edge of Place. Ed. Michael Dear, James Ketchum, Sarah Luria, and Doug Richardson. London: Routledge, 2011. Print. -
Jenstad, Janelle.
Versioning John Stow’s A Survey of London, or, What’s New in 1618 and 1633?.
Janelle Jenstad Blog. https://janellejenstad.com/2013/03/20/versioning-john-stows-a-survey-of-london-or-whats-new-in-1618-and-1633/. -
Shakespeare, William. The Merchant of Venice. Ed. Janelle Jenstad. Internet Shakespeare Editions. Open.
-
Stow, John. A SVRVAY OF LONDON. Contayning the Originall, Antiquity, Increase, Moderne estate, and description of that Citie, written in the yeare 1598. by Iohn Stow Citizen of London. Also an Apologie (or defence) against the opinion of some men, concerning that Citie, the greatnesse thereof. With an Appendix, containing in Latine, Libellum de situ & nobilitate Londini: written by William Fitzstephen, in the raigne of Henry the second. Ed. Janelle Jenstad and the MoEML Team. MoEML. Transcribed. Web.
-
-
Martin D. Holmes
MDH
Programmer at the University of Victoria Humanities Computing and Media Centre (HCMC). Martin ported the MOL project from its original PHP incarnation to a pure eXist database implementation in the fall of 2011. Since then, he has been lead programmer on the project and has also been responsible for maintaining the project schemas. He was a co-applicant on MoEML’s 2012 SSHRC Insight Grant.Roles played in the project
-
Abstract Author
-
Author
-
Author of abstract
-
Conceptor
-
Encoder
-
Markup editor
-
Name Encoder
-
Post-conversion and Markup Editor
-
Post-conversion processing and markup correction
-
Programmer
-
Proofreader
-
Researcher
Contributions by this author
Martin D. Holmes is a member of the following organizations and/or groups:
Martin D. Holmes is mentioned in the following documents:
-