The Digital Victorian Periodical Poetry Schema (BETA)
Schema and guidelines for encoding poems from the Digital Victorian Periodical Poetry database
The DVPP Team

Table of contents

1. The Digital Victorian Periodical Poetry Schema and Guidelines for Encoding

This document provides documentation and encoding examples for the project. The schema and documentation are in steady development, and are expected to change continuously, so check the repository for the latest versions of this document. The technical documentation is the work of the entire DVPP team, and is currently at a ‘beta’ stage, as is the digital edition site itself.

2. Using the Subversion Repository

We keep all our XML file and related documents in a Subversion Repository. This is a version-control system that ensures that every version of every file can be retrieved if necessary, and prevents one person from inadvertently overwriting changes to a file made by someone else.

Subversion runs on one of our HCMC servers, which is accessed at In order to use it, you will need to install a Subversion client on your computer, and also learn a couple of simple command-line commands. Subversion is usually abbreviated to ‘svn’.

2.1. Installing a Subversion client

How you will do this depends on which operating system you are using.

2.1.1. Install Subversion Client on Windows

Obtain a command-line client from SilkSVN. There is no cost to download the client. Make sure to download the correct version; there are versions for 32-bit and 64-bit Windows. Once the program is downloaded, install it by double-clicking the downloaded installer and following its instructions.

2.1.2. Macintosh

Though earlier Mac operating systems included Subversion command-line tools by default, recent versions do not, and you will need to install the package management tool HomeBrew and use that to install SVN. First check if you have HomeBrew installed on your computer. Go to Terminal and type brew doctor then press return. If Terminal returns Your system is ready to brew then HomeBrew is installed, and you can proceed to the second step in the list below (installing svn). If not, then you need to install Brew on your machine.

  • In Terminal, copy and paste the below command, then press the return key: /usr/bin/ruby -e "$(curl -fsSL"
  • Wait for the installation to finish, and test whether Brew has been installed by typing brew doctor then pressing return and checking for the following message: Your system is ready to brew. Note that even after a successful installation, you might need to change the path of HomeBrew. You can tell by skimming the installation output script (in Terminal). If you do need to change the path, the script will contain messages such as those below: Warning: /opt/homebrew/bin is not in your PATH. ==> Installation successful! ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: No analytics data has been sent yet (or will be during this `install` run). ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: ==> Next steps: - Add Homebrew to your PATH in /Users/usermachine/.profile: echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/usermachine/.profile eval "$(/opt/homebrew/bin/brew shellenv)" - Run `brew help` to get started You need to follow the steps recommended under ‘Next steps’. It is important to follow the messages in your own Terminal because these will be personalized to your own machine and current path.
  • Once HomeBrew has been installed on your machine, and the path set appropriately, proceed to install Subversion by typing brew install Subversion in Terminal then pressing the return key. Wait for the process to complete then test to see whether the installation was successful, by typing svn checkout into Terminal and pressing return. If you get a message saying Not enough arguments provided then the installation was successful.

If you run into some issues, try restarting Terminal (fully quitting then launching again) and start the process again – beginning with checking whether or not Subversion then HomeBrew are installed on your machine.

If you are still running into technical difficulties, please get in touch with the programmer.

2.1.3. Linux

Subversion is installed as part of a regular desktop on most Linux distributions.

2.2. Checking out the repository for the first time

Once your subversion client is installed, the first thing we need to do is to check out the repository. To do this, you need to open a terminal window:

  • On Windows, click on the Start menu and type cmd into the search box.
  • On a Mac, select Terminal from the Utilities folder in Applications.
  • On Linux, press Control + Alt + T.

Now we'll check that svn is installed and working. Type svn checkout and press return. If the terminal responses that there are Not enough arguments provided, then svn is working OK.

And now we'll check out the files from the repository into our directory. Make sure you don't forget the space and period at the end of this command:

svn checkout

This should create a new folder called dvpp and all the files from the repository should appear in it.

2.3. Using SVN in your daily work

These are the basic rules when you're working with svn:

Before you start work, update your local files:

  • Open a terminal
  • cd dvpp
  • svn update

You can leave the terminal open while you work. Then, when you're ready to commit your changes:

  • svn update
    (again, just in case anything else has been committed by someone else)
  • svn commit xml -m "A message explaining the changes you have made"

(Aside: we include ‘xml’ after the word ‘commit’ to specify that we only want to commit any changes that are in the xml folder. That way, if we've accidentally made changes to program code or other files in the repo, those changes won't be committed.)

That's basically it. If you see any warnings or error messages from svn, check that you're in the right folder in your terminal. You may also see error messages if two people have been editing the same file at the same time, and Subversion needs you to make a decision about whose changes should be kept.

2.4. Tips for using the terminal

Finding out where you are right now on Linux/Mac:


On Windows:

echo %cd%

Moving up the tree one level (Windows, Mac and Linux):

cd ../

List files in a folder on Linux/Mac:


and on Windows:


List files in a folder with full information:

ls -al

3. Working with Oxygen

Your encoding work will all be done in the Oxygen XML Editor. When you install Oxygen, there are lots of applications that come with it: Oxygen Author, Oxygen Developer, Compare Files, Compare Directories and others. But the one you want to work with is always Oxygen XML Editor, which has the blue icon with the red cross on it. Here's how to get started:

  1. Open the Oxygen XML Editor.
  2. Click on Project / Open Project...
  3. Navigate to the dvpp folder in your home directory.
  4. Choose the file dvpp.xpr.

You should see a tree of folders and files down the left of your Oxygen editor. This includes all the files in the project. You can ignore most of them. The folder that matters is the xml folder, where all the TEI files and schemas are kept.

If you expand the xml folder, you'll see a folder for each journal, and inside each journal, a folder for each year. Inside each year-folder is a TEI file for each poem, with a long filename/id which reflects what it is (pom = poem), what its database id is (3269), and what the first few words of its title are (consolation_for_mortality), giving a filename that looks like this:


If you open one of these files in Oxygen, you'll see that it has a lot of information in it already, even if it has not yet been edited or transcribed. All of that information comes from the database.

While working on a poem in Oxygen, there are three ways to view the poem. The normal working view is to look at the XML code and edit it directly. This is always the preferred approach when editing. However, once in a while, it is useful to have a look at the poem as a poem, without all the distracting angle brackets and other code. You can do this by clicking on the Author button at the bottom of the Oxygen editing window. This will show you a quick-and-dirty view of the poem as you've transcribed and encoded it. This will be helpful for checking your transcription.

When you're getting close to finishing a transcription task, you can also choose to view a fully-rendered version of the poem in your web browser. Do this by clicking on the red triangle button on the Oxygen toolbar (or, through the menus, Document / Transformation / Apply Transformation Scenario(s)). The browser view provides a number of visual signals to help you check your encoding, and tries to diagnose common encoding errors. The transformation will also check your CSS using the W3C's validator. This is what it does:

If it does not succeed, you'll see a ‘Transformation problems’ tab at the bottom of your Oxygen window, and if you then switch to the tab before it, you'll see the output from the build/validation process, which may contain something like this:

error: CSS: “margin-left”: only “0” can
be a “unit”. You must put a unit after
your number.

This should be enough of a clue for you to find the error and fix it. The line numbers are the line numbers in the HTML, though, not the XML (just as they are in the Jenkins build when similar errors happen).

3.1. Oxygen code templates

Our Oxygen project file has a number of useful keyboard shortcuts built into it, which you can use to speed up your encoding. Generally speaking, to use these, you select some text in the editor, then press the keystroke shortcut shown in the table below. The table uses the following key names:

M1 represents the Command key on MacOS X, and the Ctrl key on other platforms.
M2 represents the Shift key.
M3 represents the Option key on MacOS X, and the Alt key on other platforms.
M4 represents the Ctrl key on MacOS X, and is undefined on other platforms.
Name Description Result Keystroke
Ash (capital) Ash (capital A+E ligature) Æ M3 M2 A
ash ash (a+e ligature) æ M3 A
Capital delta Greek capital letter delta Δ M3 M2 D
Curly apostrophe Curly apostrophe M3 QUOTE
Double curly quotes Surround the selected text with curly double quotes “${selection}” M3 M2 QUOTE
Em dash Em dash M3 M
En dash En dash M3 N
Insert dropcap rendition Insert a rendition for a drop-capital <rendition xml:id="pom_xxx_incid_dropCap_1">font-size: ${xpath_eval(1.3 * ${ask('How many lines does it drop down? (enter a number)', generic, '2')})}em; display: block; float: left; margin: -0.2rem 0 0 .25rem; padding: 0 0.25rem 0 0; line-height: 1;</rendition> M1 M2 R
Insert utility renditions Insert the three most commonly-used renditions in 2022 re-encoding <rendition xml:id="pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_incid_uppercase">text-transform: uppercase;</rendition> <rendition xml:id="pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_hidden">display: none;</rendition> <rendition xml:id="pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_incid_showInline">display: inline;</rendition> M3 R
Internal rhyme Add a seg tag marking a line-internal rhyme <seg ana="dvpp:sdInRhyme">${selection}</seg>${caret} M1 M3 I
Long s Long s ſ M3 S
Lowercase and tag with hi Use with care: attempts to lowercase a title and tag it with a pointer to a rendition you must already have added. <hi rendition="#pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_incid_uppercase">${xpath_eval(let $words := (for $w in tokenize('${selection}', '\s+') return if (matches($w, '^(A|AND|THE|TO|OF|FOR)$')) then lower-case($w) else concat(substring($w, 1, 1), lower-case(substring($w, 2)))) return string-join($words, ' '))}</hi> M1 M2 H
OE ligature (capital) OE ligature (capital) ΠM3 M2 O
oe ligature (lower-case) oe ligature (lower-case) œ M3 O
Rhyme tag Tag selected text with a rhyme element <rhyme type="dvpp:rhyme${xpath_eval(if (matches('${selection}', '[aeiouy][^aeiouy]+[aeiouy]') and not(matches('${selection}', '^[^aeiouy]*[aeiouy][^aeiouy]+ed?$'))) then 'Feminine' else 'Masculine')}" label="${ask('What label?', generic, 'a')}">${selection}</rhyme>${caret} M1 M3 0
Single curly quotes Surround the selected text with curly single quotes ‘${selection}’ M1 M3 M2 QUOTE
Small-caps Tag selected text with a hi element styled to small-caps <hi style="font-variant: small-caps;">${selection}</hi>${caret} M1 M3 S
Tag 'so-called' (pseudonym etc.) Tag a name or nym as a soCalled element <soCalled>${xpath_eval(replace('${selection}', '[“"”]+', ''))}</soCalled>${caret} M1 M2 S
Tag analytic (article, poem etc.) title Tag a string as an article title, removing any quotes <title level="a">${xpath_eval(replace('${selection}', '[“"”]+', ''))}</title>${caret} M1 M2 A
Tag incidental period Tag a period which should only be shown in diplomatic view <hi rendition="#pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_hidden #pom_${xpath_eval(tokenize(ancestor::*:TEI/@xml:id, '_')[2])}_incid_showInline">.</hi> M1 M2 PERIOD
Tag journal or periodical title Tag selected text as a periodical/journal title <title level="j">${xpath_eval(replace('${selection}', '[\*]+', ''))}</title>${caret} M1 M2 J
Tag monograph title Tag selected text as a monograph title <title level="m">${xpath_eval(replace('${selection}', '[\*]+', ''))}</title>${caret} M1 M2 M
Tag quote with q Wrap a <q> tag around text and remove double quotes <q>${xpath_eval(replace('${selection}', '[“"”]+', ''))}</q>${caret} M1 M2 Q

3.2. Using ‘QuickFix’ in Oxygen

We're able to make use of the Schematron QuickFix functionality supported by Oxygen to provide some convenient encoding shortcuts. QuickFixes are listed and described below.

Basically, the way a QuickFix works is that you do something which contravenes a Schematron rule; this causes you to see a warning or an error. Then you right-click (or Control-click) on the element which is showing the error, and you will see the option to ‘Quick Fix’ in the popup menu. Click on this, and then choose the QuickFix you want to apply (usually there is only one). You can also press Alt (or Option) + 1 (the digit one) to apply a QuickFix.

3.2.1. Tagging stanzas with QuickFix

This QuickFix can add basic tagging to one or more stanzas of transcribed text. If you have the text of stanzas in a text file or in a comment, you can copy/paste it into the <div type="poem">. This will cause an error, because text is not allowed as a direct child of the <div> element. Choose the QuickFix ‘Tag this block as a stanza’ and you should see an <lg> element and <l> element appear around the text. To make this work correctly, ensure that there is one linebreak between each line in a stanza, and two linebreaks between stanzas. You may find it easier to run this process stanza by stanza.

3.2.2. Adding a <respStmt> with QuickFix

As soon as you start encoding a poem in the <div type="poem">, you will see a new warning appear, saying ‘Don't forget to insert <respStmt> elements to describe the roles played by team members in creating this file.’ You can do this with a QuickFix. Right-click (or Control-click) on the <titleStmt> element and choose the QuickFix. You will need to set the correct id for yourself in the <persName>/ref attribute (find yourself in the personography.xml file to get your xml:id), and you'll need to supply your own name.

3.2.3. Converting straight apostrophes with QuickFix

Our style guide bans the use of straight apostrophe characters in transcriptions or editorial annotations, so you will see a Schematron warning if you use one. Click on the parent element and choose the QuickFix to convert straight apostrophes to curly apostrophes.

3.2.4. Inserting a <change> element into <revisionDesc>

This QuickFix is described in The revision description.

4. Person Record Work

4.1. Part 1: Person Research and Person Tagging on XML Poem Files

Initial metadata collection is done using a spreadsheet in MS Teams. After poems have been proofed by Alison in the spreadsheet, batches of volumes are transformed into XML files by Martin. Each XML poem record needs to be tagged with the correct person id, as applicable, for poet, translator, and illustrator.

4.1.1. Step 1: Do we have the correct person already in the personography?

  • Search the personography:
    • CONTROL+F the personography listing [note this will only find what’s in the Display name field]. If no obvious hits, then...
    • Look in Search for People, which searches everything in the person records. Depending on what kind of name you’re working with and how complete it is, try the whole name (surname + first name) and then variants of the name (e.g. surname, surname + initial). Watch for married names, maiden names (née), names with variant spellings, names that are honorifics (Dean of Canterbury, Lord Highhorse).
    • Look up any pseudonyms in the Search for Poems pseudonyms field. You cannot automatically assume that pseudonyms are shared across periodicals (and even within periodicals).
  • When you find a possible match, use your judgement as to whether this is the correct person. How common/unique complete is the name? Do the birth/death dates match up (remembering that sometimes poems were published posthumously, but usually for the more canonical poets)? Have you found a person associated with the correct role (although some people worked as poets and translators, or poets and illustrators, or translators and illustrators, or even all three, don’t automatically assume this and for example assign to a poem a poet who is only known as an illustrator)?
  • If you find a record already in the personography for this person, then you can add them to the poem file. Full details of this are in Title and responsibility statements.

4.2. Part 2: Person Record Editing Guidelines

The Prosopography (historical personography) is stored in the xml/prosopography folder, and is divided into files by alphabetical letter (everyone whose surname begins with A appears in the prosopography_a.xml file). If you are researching the author, translator, or illustrator of a poem, and you cannot find them in the prosopography, then you will probably have to add a new entry. Note that each individual has only one record, whether they are a poet, a translator, and illustrator, or any combination of these. This is an example of a very rich and full person record, relating to a real person whose identity is known:

<person xml:id="ashb1sex="1">  <persName>   <forename>Joseph</forename>   <surname>Ashby-Sterry</surname>   <name type="displayName">Ashby-Sterry, Joseph</name>  </persName>  <birth when="1836"/>  <death when="1917-06-01"/>  <nationality>English</nationality>  <idno type="VIAF">34457918</idno>  <note type="shortBio">Poet, novelist, and journalist. Alternative signature: <soCalled>J. Ashby-Sterry.</soCalled> Born in London. Contributed to <title level="j">Punch</title> and <title level="j">The Graphic</title>. Author of several poetry volumes including <title level="m">Boudoir Ballads</title> (1876). Biographical information: <title level="m">Curran Index</title>; Reilly, <title level="m">Mid-Victorian Poetry</title>, p. 16. (CC, JS)</note> </person>
First is the xml:id attribute. This is created by taking the first four letters of the surname and adding a numeric value which ensures the id is unique. If you create a new person element in a prosopography file in Oxygen and type the four letters:
<person xml:id="ashb"/>
you will see a note at the bottom of the window telling you what digits to use:
NOTE: ashb2 is the next available id for the letter prefix ashb.
If you are creating a person record for the first time, add the resp attribute with your personal id so that we know you added the record:
<person xml:id="ashb2"  resp="dvpp:prs_ed_mdh"/>

The sex attribute is an impoverished method of recording what appears to be the assigned gender of the person; here we use the values from the ISO/IEC 5218 specification:

  • 0 = Not known;
  • 1 = Male;
  • 2 = Female;
  • 9 = Not applicable.

Next is the <persName>, or personal name, which contains <surname> and <forename> elements, along with a <name> type=displayName. This is what will be used for display on DVPP web pages which mention the person. It should be the most common name used by the poet/illustrator as a signature, or by which the poet is known historically, the form of [SURNAME], [FORENAMES]. If a person is usually or commonly known by their pseudonym, add it at the end of the display name in parentheses, e.g. Evans, Marian (pseudonym: “George Eliot”). Surname/First Names: the full historical names of the author/illustrator.

If there are other people with the same name, add the birth and death dates (where known) to the display name. Where dates aren’t known, add another distinguishing feature (e.g. there are two John Browns, neither of whom have known dates, so one has the display name Brown, John (Corporal). 

Honorifics are encoded before the surname using an <addName> element:
<addName type="honorific">Sir</addName>
<addName type="honorific">Dean of Canterbury</addName>
<addName type="honorific">Rev.</addName>
Note that we don’t consider ‘Esquire’ (or ‘Esq’) as an honorific. Format example: ‘First Baron’ (not 1st Baron), and add the date of coming to title in the person notes field; e.g.: ‘Became Baron Ashtown on 27 December 1800.’ For display names with Lord, Lady, etc. use their surname/first name. If honours are complicated, add essential info to notes field with dates of titles conferred (e.g. John Manners). If there is more than one aristocratic title, separate these with commas:
<addName type="honorific">Lady Dufferin, Countess of Gifford</addName>
Next there are <birth> and <death> elements. If you don’t know the birth date or the death date, don’t include the element at all. If the exact date is unclear, then you can use the precision attribute with the value low. The when attribute can take a complete or partial date, in the forms yyyy, yyyy-mm, or yyyy. If there is any uncertainty (e.g. if the source just has the baptism date), explain in the notes field. For example, this record shows an imprecise date and adds a note in the <note> element to explain that the exact date is not known:
<person xml:id="addi1sex="1">  <persName>   <forename>John</forename>   <surname>Addis</surname>   <name type="displayName">Addis, John</name>  </persName>  <birth when="1831precision="low"/>  <death when="1876"/>  <nationality>English</nationality>  <note type="shortBio">Poet. Born c. 1831. From Rustington, Sussex. Educated at Trinity College, Cambridge. Author of <title level="m">Elizabethan Echoes: or, Poems, Songs, and Sonnets</title> (1879). Biographical information: Reilly, <title level="m">Mid-Victorian Poetry</title>, p. 6. (AC)</note> </person>

If you can ascertain the nationality of the person, include it in a <nationality> element. Don’t add British as a nationality unless you really don’t know if they’re English, Scottish, Irish, or Welsh. Terms for nationality like Anglo-Irish, Anglo-French etc. are also used sparingly.

If you can find the person in VIAF, you can include their VIAF number using an <idno>tag.

Finally, you will need to add the <note>, which contains short biographical note along with any other information that you need to specify relating to uncertainty, ambiguity, and so on.

At the other end of the scale from the rich record above, there will be many cases where we know little or nothing about the poet, and a very limited record will be all that you can create:

<person xml:id="scot2sex="0">  <persName>   <forename>L. M.</forename>   <surname>Scott</surname>   <name type="displayName">Scott, L. M.</name>  </persName>  <note type="shortBio">Poet.</note> </person>
<person n="prs_3684xml:id="apro1sex="0">  <persName>   <name type="displayName">A Provincial Aspirant</name>  </persName>  <note type="shortBio">Pseudonymous poet.</note> </person>
<person n="prs_3697xml:id="albp1sex="0">  <persName>   <name type="displayName">A. L. B. (poet; <title level="j">Cornhill</title>)</name>  </persName>  <note type="shortBio">Pseudonymous poet. (AC)</note> </person>

In these cases:

  • Do not assume any metadata from their fictitious name. E.g ‘An English Lady’ is not necessarily English nor a Lady. The sex attribute will be 0 (not known).
  • Omit any elements which cannot be completed.
  • Initialised pseudonyms are given in the display name field as printed on the poem (e.g.
    A. B. C.
    C., A. B.
    ) Also, for poets and translators add the periodical and role, and for illustrators just add the role (e.g.
    A. B. C. (poet; Argosy)
    A. B. C. (translator, Argosy)
    A. B. C. (illustrator)
  • If a poet is given as ‘By the Author of xxx’: can you find the name of the author obviously, such as through the periodical volume’s contents/index or by a quick Google search? If the real name isn’t obvious, give ‘The Author of xxx’ as the display name.

4.2.1. Resources for Researching People

These are sources for researching historical people, listed in order of importance. Please bookmark these sources. You first want to google the name, and that will lead you to the best source or to an idea about where next to look (eg ODNB for British people), but don’t end with the google search. You’ll quickly be able to guess which British poets are likely to have “made it” into the ODNB or Orlando!

5. Rules for transcription

In many cases, in the DVPP project, you will not be directly transcribing from an image; instead, a rough transcription will already have been created using OCR (Optical Character Recognition) software, and your job will be to edit and correct that transcription. However, sometimes the OCR output may be very poor, or the OCR process may not be practical, so you may have to directly transcribe portions of the text. In either case, the same rules apply.

The DVPP editorial principles, guidelines and rules for transcription are very straightforward. The idea is to create a diplomatic transcription; in other words, we try to reproduce every feature of the original text as precisely as possible.

Capitalization in poem headings should be changed to title case, so that all our poem titles appear in the same format across the anthology. Also, look out for instances of small-caps; small-caps are not really capitals, they are just a decorative typographical feature. So, for instance:

You see this: A POEM FOR THE AGES
You transcribe it like this: A Poem for the Ages
You see this: A Poem for the Ages
You transcribe it like this: A Poem for the Ages

Spacing should be reproduced. It's quite common in 19th-century print texts to see spaces both before and after punctuation, where nowadays we would expect only a space after it. For example:

You see this: The heart hears angels sing, that “ Christ was born ! ”

You transcribe exactly as you see, including all the spaces, and including any errors that may have been made by the original compositor. Errors will be tagged and corrections provided later in the encoding process.

Unusual characters should be reproduced. A range of archaic and unusual glyphs may appear in your texts. All of them should be available in Unicode, so you should be able to find them by searching in the Oxygen Character Map tool (on the Edit menu). Examples are:

Long s: ſ
Ligatures: æ, œ, ff, fi, fl, ffi, ffl, ſt, st
Quotation marks: “ ” (curly double), ‘ ’ (curly single), " (straight double), ' (straight single)

Line breaks should be reproduced, even inside poetic lines. You will need to encode these later.

Original spelling should be reproduced. Sometimes we don't even notice that a word is spelled in an archaic or unusual way, and transcribe it in the modern form. Watch out for this.

Typographical decorations should not be reproduced in your transcription. This includes features such as bold, italic, and underline. We do encode these features, but we do it with CSS code later on; we don't try to do it in the actual transcription. For example:

You see this: “...And are ye all?” I whispered
You transcribe it like this: “...And are ye all?” I whispered
You see this (superscript e in archaic "ye" for "the"): ye
You transcribe it like this: ye

6. Basic poem file structure

Each poem that you encode will begin life as a basic framework with most of its metadata already included. This is generated from the relational database where all the information about poems has been collected over the last few years. This is the main structure of a poem file:

<TEI xml:id="pom_3269_consolation_for_mortality"  version="5.0" xmlns="">  <teiHeader> <!-- Lots of metadata. -->  </teiHeader>  <facsimile> <!-- Links to page-images. -->  </facsimile>  <text>   <front> <!-- Place for editorial introductory material. -->   </front>   <body> <!-- Place for the poem itself. -->   </body>   <back> <!-- Place for editorial back matter such as references. -->   </back>  </text> </TEI>

7. The teiHeader

The <teiHeader> is where metadata about the poem is stored. This includes information about the title and author (linking to the project personography), publication and licensing information for this electronic version, details of the original source publication, and a set of category references which characterize the poem according to several taxonomies the project is developing.

7.1. The title statement

7.1.1. Title and responsibility statements

Information about the title and author(s) of the poem is stored in the <teiHeader>/<fileDesc>/<titleStmt>. Here is an example:

<author ref="pros:wolc1">  <persName type="pseudo">Peter Pindar</persName> </author>

The information about the poet/author is fairly rudimentary, but it includes a link to the prosopography file, in which a full profile of the author will be available, including their canonical names. All that is required here is the ref attribute pointing to the authors id, and in cases where a pseudonym or an allonym is attached to the poem, a <persName> element with type=pseudo or type=allo holding that name. If a name used as a signature on a poem is different from the display name of the person in the prosopography, please note it in the notes field to the poem as an authorial signature variant (format:

Poem signed “#.”


In cases where attribution is not certain, you can use the cert attribute on the <author> element to specify certainty as high (75%), medium (50%), or low (25%).

  • provides attributes indicating the agent responsible for some aspect of the text, the markup or something asserted by the markup, and the degree of certainty associated with it.
    cert (certainty) signifies the degree of certainty associated with the intervention or interpretation.

In cases of uncertainty, you should provide additional information through an attribution <note> as follows (note this is to be used sparingly, for genuine cases where there is some good evidence for attribution; if the evidence us really uncertain, leave the poem without attribution):

  • When you’re 75% sure:
    Poet attribution: poem is probably by [insert display name and give reason]. (Your initials)
  • When you’re 50% sure:
    Poet attribution: poem is possibly by [insert display name and give reason]. (Your initials)
  • When you’re 25% sure:
    Poet attribution: poem is perhaps by [insert display name and give reason.] (Your initials)

7.1.2. Statements of responsibility: Illustrators and translators

Statements of responsibility (<respStmt>s) are used to encode information about illustration and translation. Each consists of a <resp> element and a <persName> element:
<respStmt>  <resp ref="resp:ill">Illustrator</resp>  <persName ref="pros:morg1"/> </respStmt>
<respStmt>  <resp ref="resp:trl">Translator</resp>  <persName ref="pros:bulw1"/> </respStmt>
As with authors, the ref attribute points to an entry in the prosopography. The <resp> element has a standard ref attribute specifying the type of responsibility provided, but it also has text content, so if a more granular description of the nature of the work is suitable for the context, it can be more specific.

7.1.3. Statements of responsibility: Work by the DVPP team Responsibility for major contributions

The <titleStmt> in the <teiHeader> also includes statements of responsibility for DVPP team contributions; this is one of two methods by which we track who has done what on each poem file; responsibility statements cover the major components of work done on a poem. Each responsibility statement includes a description of the action the person has taken, along with the date or date-range during which the work was done, along with their name, which is linked to their entry in the personography. Here is an example:

<respStmt>  <resp ref="resp:pdr">Project Director <date from="2011"/>  </resp>  <persName ref="dvpp:prs_ed_ac">Alison Chapman</persName> </respStmt> <respStmt>  <resp ref="resp:trc">Transcriber <date when="2014"/>  </resp>  <persName ref="dvpp:prs_ed_kyh">Kylee-Anne Hingston</persName> </respStmt> <respStmt>  <resp ref="resp:mrk">Encoder <date when="2014"/>  </resp>  <persName ref="dvpp:prs_ed_kyh">Kylee-Anne Hingston</persName> </respStmt> <respStmt>  <resp ref="resp:prg">Programmer <date when="2014"/>  </resp>  <persName ref="dvpp:prs_ed_mdh">Martin Holmes</persName> </respStmt>

Each responsibility assignment is done separately, so Kylee-Anne appears twice, once as transcriber and once as encoder. Note that strictly speaking, the description of the task and the person's name are redundant, since this information is available from the linked taxonomy and personography, but it's helpful to include a text description of the role, and the description can be more nuanced or detailed than the information provided by the taxonomy. The <date> element does not have any text content; the information about the date or range can be supplied through any of the dating attributes, when, notBefore, notAfter, from and to. Minor editing responsibilities

In addition to the major work (transcription and encoding), we also do lots of minor tweaks and encoding passes on poem documents. Rather than amassing large and complicated collections of <respStmt> elements, we claim credit for these by using the resp attribute on the element(s) involved in that particular work. For example, an encoder may be responsible for adding a couple of <catRef> elements to the header:
<catRef target="dvpp:illustrationAbove"  resp="dvpp:prs_ed_kaf"/> <catRef target="dvpp:illustrationCentral"  resp="dvpp:prs_ed_kaf"/>
Similarly, you may have been responsible for adding <figure> and/or <figDesc> elements to a poem already encoded by someone else:
<figure resp="dvpp:prs_ed_kaf"  ana="dvpp:fcLivingThingPersonAdultMan">  <figDesc resp="dvpp:prs_ed_sp">[description of the figure...]</figDesc> </figure>
Here one encoder has been responsible for adding the ana value on <figure>, while another has provided the figure description.

Finally, responsibility for proofing a poem is claimed using the who attribute on a <change> element in the <revisionDesc>, as explained in The revision description.

7.2. The publication statement

Every TEI file should include information which tells any potential reader or user of the file who created it and who owns it, and also provides some guidelines as to what kind of use is permitted. The information in our files is currently provisional, because we have not discussed licensing yet. When decisions are made, all publication statements in all files will be updated (or more likely linked to a single central block of information in another file).

7.3. The source description

Information about the original source publication is provided in <teiHeader>/<fileDesc>/<sourceDesc>. Here is an example:

<sourceDesc>  <bibl corresp="dvpp:bib_19">   <title level="j">Chambers's Edinburgh Journal</title>   <biblScope unit="series">4</biblScope>   <biblScope unit="volume">17</biblScope>   <biblScope unit="issue">836</biblScope>   <biblScope unit="pagefrom="16to="16">16</biblScope>   <date when="1880-01-03"/>  </bibl> </sourceDesc>

You should not directly change any of this information, since it comes from the database.

7.4. The encoding description

We currently only create or edit <encodingDesc> when doing XSS styling; see Avoiding repetitive CSS below. More information on encodingDesc will be provided in the future.

7.5. The profile description

In the <teiHeader>/<profileDesc>/<textClass> element, we provide a set of links to a range of different taxonomies that the project is developing for the description of the form, structure, and topics of the poems. Here is an example:

<profileDesc>  <textClass>   <catRef target="dvpp:authorshipAttributed"/>   <catRef target="dvpp:genreLyricElegy"/>   <catRef target="dvpp:genreLyricDescriptive"/>   <catRef target="dvpp:illustrationAbove"/>   <catRef target="dvpp:lgQuatrainTennysonian"/>   <catRef target="dvpp:layoutFractionpageonecol"/>  </textClass> </profileDesc>

These <catRef> elements have only one piece of information, in the target attribute: a pointer to a category which is defined in our taxonomies.xml file. You can look at the taxonomies.xml file to see how that works, and there is a rendering of the complete set of taxonomies below but the basic idea is that there are several taxonomies (for genre, layout, authorship etc.). Each of these taxonomies has a hierarchical structure, so for instance there is a category genreLyric, and that contains genreLyricSonnet, which in turn contains genreLyricSonnetPetrarchan. When adding <catRef>s to a file, you need only add the longest (i.e. the deepest-nested) one in the tree which applies; if you add e.g. genreLyricSonnetPetrarchan, you don't need to add genreLyric or genreLyricSonnet, because these are inherited.

Through an automated process, the taxonomies are incorporated into the project ODD file and schema, so when you add a <catRef> element and start typing its target attribute, Oxygen will prompt you with a complete list of all the available values, along with descriptions of what they mean. Try to add at least one <catRef> from each taxonomy.

Ultimately, these categories will be used to create a sophisticated search system which allows users to retrieve poems based on a wide variety of different features and characteristics.

7.6. The revision description

The <revisionDesc> element is the last component of the <teiHeader> element. It is optional, but until it is added, no document can be published. It has a mandatory attribute status, whose values can be generated, encoded, proofed, and published, and a mandatory child element <change>.

Once you have encoded a poem, you may choose to add a <revisionDesc> if you wish, but it only really becomes important when the proofing stage takes place (see Proofing and publishing). After proofing a document, you should create a <revisionDesc> that looks like this:
<revisionDesc status="proofed">  <change when="2019-06-10"   who="dvpp:prs_ed_mdh">Document is proofed.</change> </revisionDesc>
A Schematron QuickFix is available to make this easier for you. All you need to do is to add <revisionDesc> and give it the status attribute (or change the existing value to proofed), and then you can right-click on the invalid element and choose Quick Fix / Insert a change element into revisionDesc. The QuickFix will ask for your project id, then it will insert the change element with the correct values for who and when. You can then edit the content of the <change> element if you need to add any more information arising out of your proofing.

Note that the word ‘proofed’, which is equal to the value of status, appears in the text of the <change> element. This is enforced by Schematron, to ensure that any change to the status value has a corresponding <change> element to match it.

When there is no <revisionDesc> in a document, it is presumed to be either empty (no transcription or encoding), or, if it has an encoded poem, it is presumed to have the encoded status. Any document with the proofed status is ready for checking by Alison, prior to publication; any document with the published status will be shown on the next release of the website as a completed text. Unpublished documents will still appear, but will have a clear signal that they are not yet formally published.

7.7. Taxonomies and categories

This is the current set of taxonomies and categories in the project, taken from the taxonomies.xml file. These are used for various purposes, including the classification of documents using <catRef>, and the generation of value lists for attributes.


Show listing Hide listing Action required Illustrator attribution (dvpp:arIllustratorAttribution) Is this a translation? (dvpp:arQueryTranslation) Make related poem linkGroup (dvpp:arMakeRelatedPoems) Missing page image(s) (dvpp:arMissingPageImage) Needs attention (dvpp:arNeedsAttention) Poet attribution (dvpp:arPoetAttribution) Re-scan required (dvpp:arReScan) Translator attribution (dvpp:arTranslatorAttribution) Authorship Allonymous (dvpp:authorshipAllonymous)

Attributed falsely to another historical person.

Allonymous poems falsely adopt the name of a historical person as the poet. Poet attribution of allonymous poems, where we have identified authorship, is explained in the editorial notes. Anonymous (dvpp:authorshipAnonymous)

Explicitly marked as ‘anonymous’ or equivalent.

Poems in this category have the authorial signature as ‘anonymous,’ or an abbreviation for ‘anonymous.’ We designate poems without any signature at all as unsigned. Poet attribution of anonymous poems, where we have identified authorship, is explained in the editorial notes. Attributed (dvpp:authorshipAttributed)

Explicitly attributed to the author by name.

Attributed poems include an explicit authorial signature that is not obviously pseudonymous or allonymous. Pseudonymous (dvpp:authorshipPseudonymous)

Attributed to a pseudonym rather than the author’s real name.

We define pseudonymous poems generously to include a range of types of pseudonyms, including initials, fictitious names, ‘By the Author of …,’ and any signature that disguises authorship. Poet attribution of pseudonymous poems is explained in the editorial notes, where we have identified authorship, except for pseudonymous poems in Household Words that are identified from Anne Lohrli’s identification of contributors in her Household Words: A Weekly Journal 1850-1859 (University of Toronto Press, 1959). Unsigned (dvpp:authorshipUnsigned)

Lacking any attribution, but not explicitly ‘anonymous’.

Unsigned poems have no authorship signature. Poet attribution of unsigned poems, where we have identified authorship, is explained in the editorial notes, except for unsigned poems in Household Words that are identified from Anne Lohrli’s identification of contributors in her Household Words: A Weekly Journal 1850-1859 (University of Toronto Press, 1959). Components of illustrative figures Actions (dvpp:fcActions)

Verbal or physical actions being performed. Crying (dvpp:fcActionCrying)

Crying. Eating (dvpp:fcActionEating)

Eating or drinking. Embrace (dvpp:fcActionEmbrace)

Embrace among living things. Gesture (dvpp:fcActionGesture)

Non-verbal gesture. Manual Labour (dvpp:fcActionManualLabour)

An action done or performed with the hands, involving physical rather than mental exertion (OED). Praying (dvpp:fcActionPraying)

The act or practice of offering or engaging in prayer (OED). Reading (dvpp:fcActionReading)

Reading. Does not include books in illustrations that are not actively being read. Sleeping (dvpp:fcActionSleeping)

Depiction of a living thing sleeping. Speech and Song (dvpp:fcActionSpeechandSong)

Verbal utterance including speech and song. Walking (dvpp:fcActionWalking)

Walking. Includes activities such as hiking, skipping, and running. Writing (dvpp:fcActionWriting)

Writing. Concepts and Themes (dvpp:fcConceptsandThemes)

Illustrations of abstract ideas relating to broader subjects. Death (dvpp:fcConceptsandThemesDeath)

Depiction of death and/or a dead body. Can include personifications of death. Disability (dvpp:fcConceptsandThemesDisability)

A physical or mental condition that limits a person's movements, senses, or activities (OED). Domestic (dvpp:fcConceptsandThemesDomestic)

Attached to home; devoted to home life or duties; domesticated (OED). Poverty (dvpp:fcConceptsandThemesPoverty)

Depiction of extreme destitution or lack of wealth. Relationship (dvpp:fcConceptsandThemesRelationship)

Depicts a relationship among two or more living things. Familial (dvpp:fcConceptsandThemesRelationshipFamilial)

A relationship between family members. Romantic (dvpp:fcConceptsandThemesRelationshipRomantic)

Romantic relationship. Religion (dvpp:fcConceptsandThemesReligion)

Depiction of religion, faith, or spirituality. Includes religious figures and buildings. Christmas (dvpp:fcConceptsandThemesReligionChristmas)

The festival of the nativity of Christ, kept on the 25th of December (OED). Figure (dvpp:fcConceptsandThemesReligionFigure)

Illustrated religious figures such as monks, bishops, the Pope. Can include non-Christian religious figures. Sickness (dvpp:fcConceptsandThemesSickness)

Depicts a living thing with ill-health or another form of illness. Travel (dvpp:fcConceptsandThemesTravel)

Depicts the action of journeying or travelling. Wealth (dvpp:fcConceptsandThemesWealth)

Depiction of richness, extravagance, and/or opulence, generally associated with money or material items. Work (dvpp:fcConceptsandThemesWork)

Depicts a labour or work task in process. Fantasy and Supernatural (dvpp:fcFantasySupernatural)

Can include beings, objects, and themes that belong to a realm that transcends the material world; includes divine, magical, or ghostly beings (OED). Being (dvpp:fcFantasySupernaturalBeing)

A non-human entity. Angel (dvpp:fcFantasySupernaturalBeingAngel)

In Judaism, Christianity, and Islam: a celestial being considered intermediate between God and humanity; typically acting as attendant or messengers (OED). Cherub (dvpp:fcFantasySupernaturalBeingCherub)

Angelic child or baby. Fairy (dvpp:fcFantasySupernaturalBeingFairy)

Supernatural being with human form (OED). Legend (dvpp:fcFantasySupernaturalLegend)

Derives from a sacred text (e.g. the bible, a saint's life) (OED). Myth (dvpp:fcFantasySupernaturalMyth)

Traditional story, involving supernatural beings or forces, which embodies and provides an explanation for something such as the early history of a society, a religious belief, or a natural phenomenon. (OED). Object (dvpp:fcFantasySupernaturalObject)

Fantastical or supernatural object. Does not materially exist. Living thing (dvpp:fcLivingThing)

All living things, including humans, flora and fauna. Animal (dvpp:fcLivingThingAnimal)

Animal. Bird (dvpp:fcLivingThingBird)

Bird. Insect (dvpp:fcLivingThingInsect)

Insect. Person (dvpp:fcLivingThingPerson)

One or more human beings. Adult (dvpp:fcLivingThingPersonAdult)

Adult. Gender unknown or unspecified. Elder (dvpp:fcLivingThingPersonAdultElder)

Elderly person. Can be used with man and/or woman tags. Man (dvpp:fcLivingThingPersonAdultMan)

Adult Man. Woman (dvpp:fcLivingThingPersonAdultWoman)

Adult Woman. Child (dvpp:fcLivingThingPersonChild)

Child. Gender unknown or unspecified. Baby (dvpp:fcLivingThingPersonChildBaby)

Baby. Boy (dvpp:fcLivingThingPersonChildBoy)

Boy. Girl (dvpp:fcLivingThingPersonChildGirl)

Girl. Crowd (10+) (dvpp:fcLivingThingPersonCrowd)

Group of 10 or more people. Can include differents ages and genders. Historical Person (pre-Victorian) (dvpp:fcLivingThingPersonHistorical)

Pre-Victorian person(s). Can include portraits presented as historical figures. Multiple (2-9) (dvpp:fcLivingThingPersonMultiple)

Group of 2 to 9 people. Can include differents ages and genders. Portrait (dvpp:fcLivingThingPersonPortrait)

Illustration of a person that usually depicts the head and shoulders (OED). Plant (dvpp:fcLivingThingPlant)

Plant. Flower (dvpp:fcLivingThingPlantFlower)

Flower. Tree (dvpp:fcLivingThingPlantTree)

Tree. Object (dvpp:fcObject)

A material thing that can be seen, touched, or otherwise perceived (OED). Artwork (dvpp:fcObjectArtwork)

Any work of art (e.g. paintings, sculptures). Book (dvpp:fcObjectBook)

Book (also includes periodicals, bibles, sheet music). Domestic Object (dvpp:fcObjectDomestic)

Object primarily used in a domestic setting (e.g. timepieces, cookware, cutlery). Food (dvpp:fcObjectFood)

Consumable object (also includes beverages and food consumed by birds/animals). Musical Instrument (dvpp:fcObjectMusicalInstrument)

Musical instrument. Religious Object (dvpp:fcObjectReligious)

Object primarily used in a religious context. Cross (dvpp:fcObjectReligiousCross)

Religious cross. Tool (dvpp:fcObjectTool)

Object primarily used as a tool (context-dependent). Transportation (dvpp:fcObjectTransportation)

Object primarily used for transportation. Bicycle (dvpp:fcObjectTransportationBicycle)

Bicycle or related vehicle (also includes unicycles and tricycles). Boat (dvpp:fcObjectTransportationBoat)

Boat (e.g. row-boats and passenger ships). Horse (dvpp:fcObjectTransportationHorse)

Horse used for transportation. Horse-drawn Vehicle (dvpp:fcObjectTransportationHorseDrawnVehicle)

Horse-drawn vehicle (e.g. carriages and omnibuses). Train (dvpp:fcObjectTransportationTrain)

Train. Weapon (dvpp:fcObjectWeapon)

Object primarily used as a weapon (context-dependent). Setting (dvpp:fcSetting)

The environment or surroundings in which a person, thing, or scene is ‘setʼ (OED). Body of Water (dvpp:fcSettingBodyofWater)

Any body of water (e.g. pond, lake, ocean). Seascape (dvpp:fcSettingBodyofWaterSeascape)

Illustration entirely of the sea and/or shore (OED). Building (dvpp:fcSettingBuilding)

Building. Building Exterior (dvpp:fcSettingBuildingExterior)

Exterior of one building. Building Interior (dvpp:fcSettingBuildingInterior)

Interior of one building. Countryside (dvpp:fcSettingCountryside)

Illustration set in the country. Landscape (dvpp:fcSettingCountrysideLandscape)

Illustration of natural inland scenery, taken from one point-of-view, with a wide vista (OED). Domestic Setting (dvpp:fcSettingDomestic)

Domestic setting (e.g. in a home). Foreign (non-British) Setting (dvpp:fcSettingForeign)

Overtly set outside of Britain. Absence of value does not mean illustration is set in Britain. Garden (dvpp:fcSettingGarden)

Overtly cultivated natural space, often enclosed and usually adjoining a building (OED). Historical Setting (pre-Victorian) (dvpp:fcSettingHistorical)

Pre-Victorian setting. Mountain (dvpp:fcSettingMountain)

Mountain. Settlement (dvpp:fcSettingSettlement)

Human settlement. Rural Settlement (dvpp:fcSettingSettlementRural)

Rural settlement (e.g. farm, country). As opposed to urban settlement. Urban Settlement (dvpp:fcSettingSettlementUrban)

Urban settlement (e.g. town, city). As opposed to rural settlement. Cityscape (dvpp:fcSettingSettlementUrbanCityscape)

Artistic representation of a city or urban area. Genres Light verse (dvpp:genreLight)

Light verse is poetry designed to celebrate an occasion; poetry of everyday life. Has come to include folk verse, nonsense poetry, kitsch, etc. No set form, but relies on the formal conventions of poetry. Comic verse (dvpp:genreLightComic)

Comic light verse: designed to amuse. Comic ballad (dvpp:genreLightComicBallad)

Mimics the formal features of the ballad, but renders them ridiculous in some way, usually though theme; often written in ballad meter. Light epigram (dvpp:genreLightEpigram)

A short memorable piece of light verse often 2 to 4 lines that aim for a particular point or turn. Limerick (dvpp:genreLightLimerick)

Light verse in limerick form: five lines of accental verse (lines 1, 3, and 5 having 3 stresses; lines 2 and 4 having two) with a rhyme scheme of aabba. Nonsense verse (dvpp:genreLightNonsense)

Nonsense poetry often creates a fantastical world that follows its own rules and/or disrupts the conventional operation of language. Turns sillness, incomprehensibility, childishness, and triviality into virtues. Riddle (dvpp:genreLightRiddle)

Light verse in the form of a riddle. Lyric (dvpp:genreLyric)

Generic lyric: often expresses personal feeling in a concentrated form and is addressed to a private reader. Aubade (dvpp:genreLyricAubade)

Morning song, usually between two lovers, no regular form. Descriptive lyric (dvpp:genreLyricDescriptive)

Expressive lyric that describes a place or an event. Elegy (dvpp:genreLyricElegy)

Lamentation for the dead; no regular associated form. Homage lyric (dvpp:genreLyricHomage)

Tribute poem to a living person, no regular associated form. Hymn (dvpp:genreLyricHymn)

Religious song to be sung, usually self-identified, sometimes gives the tune, usually in hymn meter. Lullaby (dvpp:genreLyricLullaby)

Song for a child, soothing and repetitive, no specific form. Pastoral lyric (dvpp:genreLyricPastoral)

Expressive lyric about nature, shepherds, often antiquated and picturesque. Personal lyric (dvpp:genreLyricPersonal)

“I” voice expressive lyric. Rondeau (dvpp:genreLyricRondeau)

Closed form with 2 rhymes only; first word or first line is refrain that does not usually rhyme. Rondel (dvpp:genreLyricRondel)

13- or 14-line poem: 2 quatrains then either a quintet [13 lines] or a sestet [14 lines]. The first two lines of the first stanza are repeated as a refrain, repeating as the last lines of the second and third stanza [sometimes only the first line is repeated]. Serendade (dvpp:genreLyricSerendade)

Evening song, usually between two lovers, no regular associated form. Song (dvpp:genreLyricSong)

Self-identified as a song, as a lyric to be set to music. Triolet (dvpp:genreLyricTriolet)

Fixed form of 8 lines and 2 rhymes, and 2 refrain rhymes: ABaAabAB. Villanelle (dvpp:genreLyricVillanelle)

Closed French form: 19-line poem, 5 tercets followed by a quatrain; 1st and 3rd line of the first tercet are repeated alternately until the last stanza which includes both repeated lines. Narrative (dvpp:genreNarrative)

Narrative poetry: mixes elements of poetic form (i.e. rhyme, meter, etc.) with features commonly associated with narrative prose (i.e. linear, chronological narratives). Ballad (dvpp:genreNarrativeBallad)

Poem that tells a single story, often rooted in oral or popular culture, with impersonal statements and third person speaker; often in ballad meter; frequently presented as a translation from Breton, German, etc., especially in Once a Week. Ballade (dvpp:genreNarrativeBallade)

A fixed form of one or more triplets of 7- (or 8-) line stanzas, each ending with the same line as the refrain; sometimes there is an envoi repeating the rhymes. Dialogue (dvpp:genreNarrativeDialogue)

Poem in the form of speech. Dramatic monologue (dvpp:genreNarrativeMonologue)

Dramatic monologue: fictional or historical speaker addresses a silent listener, usually in confessional mode; also known as dramatic lyric. Epic (dvpp:genreNarrativeEpic)

A continuous narrative of heroic actions of one or more personages, often set in history. Epyllion (dvpp:genreNarrativeEpyllion)

A little epic often associated with Hellenistic topics and written in dactylic hexameters. Idyll (dvpp:genreNarrativeIdyll)

Related to the pastoral poem; conventionally applied to poems that present picturesque rural sceneray and a life of innocence and tranquillity, though this is not always the case. Narrative ode (dvpp:genreNarrativeOde)

Lyric address on a dignified or exalted subject matter, feeling, and style. Verse drama (dvpp:genreNarrativeDrama)

Verse drama; drama in poetry; no associated regular form. Verse novel (dvpp:genreNarrativeNovel)

A verse novel; a poem in novel form. Parody (dvpp:genreParody)

A parody; an imitative work sending up another, probably well-known, work. Satire (dvpp:genreSatire)

Satirical verse adopts a critical mode towards its target with the goal of censuring human folly. Sonnet (dvpp:genreLyricSonnet)

14 lines of intricate rhyme. Hybrid sonnet (dvpp:genreLyricSonnetHybrid)

A hybrid of Petrarchan and Shakespearean form. Petrarchan sonnet (dvpp:genreLyricSonnetPetrarchan)

Petrarchan (octave then sestet). Shakespearean sonnet (dvpp:genreLyricSonnetShakespearean)

Shakespearean (4 quatrains then couplet). Hashtags AC will check Chambers's archives in the NLS (dvpp:htCheckNLS)

AC will check Chambers's archives in the NLS to verify and complete the record. Faux Translation (dvpp:htFauxTranslation)

A poem that falsely claims to be a translation. Fix dates (dvpp:htFixDates)

One or more dates in the record needs to be checked and corrected; or the dates are BCE or approximate. Indexed as one poem but could be multiple poems (dvpp:htQueryRelatedPoems)

This entry is indexed as one poem but it could be indexed as more than one separate but related poems, and needs more work by AC. Make related poems (dvpp:htMakeRelatedPoems)

This poem is related to other poems in the index, and the relation fields have not yet been created and/or the relation needs to be better articulated in the xml and/or poem notes. Original language of translation is different from the language it was translated from (dvpp:htFixOriginalLanguage)

Poem is a translation of a translation. The "original language" field gives the language from which it was immediately translated, but the TEI needs to include the original language as well. (e.g. poem id 523). Person record is proofed by AC (dvpp:htPersonProofed)

Use for persons without VIAF number to indicate that the person record has been proofed by AC. Poet attribution is uncertain (dvpp:htPoetAttribution)

The poet attribution involves a degree of uncertainty. See poem notes. To be fixed in XML by Alison. Query translation (dvpp:htQueryTranslation)

This poem may be a translation; do appropriate research to establish whether this is true or not, and if true, what the original text, author, and language are. Rescan (dvpp:htReScan)

One or more page-images for this poem are of insufficient quality. The page(s) should be re-photographed. Translator attribution involves a degree of uncertainty (dvpp:htTranslAttribution)

Translator attribution involves a degree of uncertainty. See poem notes. To be fixed in XML by Alison. poetry translation from a prose original source (dvpp:htTranslProse)

Track these examples in the database using this #, adding a note to the poem record about the original author and language, and later add a TEI tag. record requires more work (dvpp:htNeedsAttention)

. Illustration placement At least one illustration occupies a full page that either precedes or follows poem text. (dvpp:illustrationPlacementFullPage)

At least one illustration occupies a full page that either precedes or follows poem text. The illustration is in portrait orientation. Note distinction from Frontispiece and FullPageRotated. At least one illustration is a frontispiece. (dvpp:illustrationPlacementFullPageFrontispiece)

At least one illustration is a frontispiece (a full-page illustration opposite the issue/volume title page). The illustration is in portrait orientation. Note distinction from FullPage and FrontispieceRotated. At least one illustration is a frontispiece and is rotated 90 degrees. (dvpp:illustrationPlacementFullPageFrontispieceRotated)

At least one illustration is a frontispiece (a full-page illustration opposite the issue/volume title page) and is rotated 90 degrees clockwise or counter-clockwise in relation to the poem text. The illustration is in landscape orientation. Note distinction from Frontispiece and FullPageRotated. At least one illustration occupies a full page that either precedes or follows poem text, and is rotated 90 degrees. (dvpp:illustrationPlacementFullPageRotated)

At least one illustration occupies a full page that either precedes or follows poem text, and is rotated 90 degrees clockwise or counter-clockwise in relation to the poem text. The illustration is in landscape orientation. Note distinction from FullPage and FrontispieceRotated. At least one illustration occupies a portion of a poem page. (dvpp:illustrationPlacementInset)

At least one illustration occupies a portion of a poem page. This catRef should only be used if none of its descendants can be applied. At least one illustration contains the poem. (dvpp:illustrationPlacementInsetContains)

At least one illustration is placed around the poem text on one periodical page, so that the illustration appears to contain the poem in part or in full. Includes illustrations that make room for the poem or a part of the poem (let in). At least one decorative border. (dvpp:illustrationPlacementInsetContainsBorder)

At least one decorative border contains or partially contains the poem, poem page, or another illustration. Excludes textual ornament borders. At least one illustration is in a complex interrelationship with poem text. (dvpp:illustrationPlacementInsetComplex)

The poem text and the illustration(s) are in a complex interrelationship, where the illustration and text appear inseparable. At least one illustration is placed above the poem text. (dvpp:illustrationPlacementInsetAbove)

At least one illustration is placed above the poem text. Note more specific values for Headpiece, HeadpieceHistoriated, and HeadpieceInhabited. At least one illustration is a headpiece. (dvpp:illustrationPlacementInsetAboveHeadpiece)

At least one illustration is a headpiece placed above the poem text. A headpiece is placed at the beginning of the poem. It is usually a rectangular illustration that runs the full width of the poem text. Can include illustrated titles. At least one illustration is a historiated headpiece. (dvpp:illustrationPlacementInsetAboveHeadpieceHistoriated)

At least one illustration is a historiated headpiece. A headpiece is placed at the beginning of the poem. It is usually a rectangular illustration that runs the full width of the poem text. A historiated headpiece depicts a scene. At least one illustration is an inhabited headpiece. (dvpp:illustrationPlacementInsetAboveHeadpieceInhabited)

At least one illustration is an inhabited headpiece. A headpiece is placed at the beginning of the poem. It is usually a rectangular illustration that runs the full width of the poem text. An inhabited headpiece includes an animal or human figure (can include mythical, legendary, or supernatural animals and human figures). At least one illustration is placed adjacent to the poem. (dvpp:illustrationPlacementInsetAdjacent)

At least one illustration is placed adjacent to the poem, to the right or left. At least one illustration is placed below the poem text. (dvpp:illustrationPlacementInsetBelow)

At least one illustration is placed below the poem text. Note more specific values for Tailpiece, TailpieceHistoriated, and TailpieceInhabited. At least one illustration is a tailpiece. (dvpp:illustrationPlacementInsetBelowTailpiece)

At least one illustration is a tailpiece. A tailpiece is placed at the end of the poem. It is usually a rectangular illustration that runs the width of the poem. At least one illustration is a historiated tailpiece. (dvpp:illustrationPlacementInsetBelowTailpieceHistoriated)

At least one illustration is a historiated tailpiece. Rectangular llustration is placed after the poem and runs the width of the poem. Depicts a scene. At least one illustration is an inhabited tailpiece. (dvpp:illustrationPlacementInsetBelowTailpieceInhabited)

At least one illustration is an inhabited tailpiece. Rectangular illustration is placed after the poem and runs the width of the poem. Includes an animal or human figure. At least one illustration is placed centrally on the page. (dvpp:illustrationPlacementInsetCentral)

At least one illustration is placed centrally on the page (placed above/below/adjacent to the poem). At least one illustration is placed within the poem. (dvpp:illustrationPlacementInsetWithin)

At least one illustration is placed within the poem, interrupting it or being surrounded by it. Poem text may appear to be formatted around the illustration. At least one illustration is rotated 90 degrees. (dvpp:illustrationPlacementInsetRotated)

At least one illustration is placed sideways to the poem, requiring rotation of the page to view. At least one illustration relates directly to the poem but appears on a preceding or following page (dvpp:illustrationPlacementRelatedPage)

At least one illustration relates directly to the poem but appears on a preceding or following page, normally within the page run of a series of related poems. The illustration can be in either portrait or landscape orientation, but it does not occupy a full periodical page. Note distinction from FullPage and Frontispiece values. Illustration type At least one caption to poem is illustrated. (dvpp:illustrationTypeCaption)

A caption can be a line from a poem, a portion of a line, or even just a word. At least one illustration is a portrait. (dvpp:illustrationTypePortrait)

At least one illustration is a portrait. An illustration of a person (or more) that usually depicts the head and shoulders. Often appears "posed". At least one illustration is a portrait of a poet. (dvpp:illustrationTypePortraitPoet)

At least one illustration is a portrait of a poet. An illustration of a poet (or more) that usually depicts the head and shoulders. Often appears "posed". At least one illustration is an illustrated initial letter or word. (dvpp:illustrationTypeInitial)

Poem has at least one illustrated initial letter, which does not appear to be generic, and can be at the beginning of the poem or throughout it. Sometimes an entire word is illustrated. Note more specific values. At least one illustration is a historiated illustrated initial letter or word. (dvpp:illustrationTypeInitialHistoriated)

Poem has at least one decorated initial letter that depicts a scene. At least one illustration is an inhabited illustrated initial letter or word. (dvpp:illustrationTypeInitialInhabited)

Poem has at least one decorated initial letter that contains a human or animal figure. At least one illustration is specifically identified as being from a photograph. (dvpp:illustrationTypePhotograph)

At least one illustration is specifically identified as being from a photograph (i.e. a reproduction of...). Facsimile of poet's signature. (dvpp:illustrationTypeSigFacsimile)

There is a facsimile of the poet's signature. Generic-appearing decoration. (dvpp:illustrationTypeTextualOrnament)

Poem has at least one decoration, which appears to be generic. Note more specific values. Includes glyphs. Generic-appearing decorative border. (dvpp:illustrationTypeTextualOrnamentBorder)

Poem, poem page, or illustration includes a generic-appearing decorative border. This value does not include plain single- or double-ruled borders, and it should not be applied when the border is the regular page-border used throughout a periodical. Note distinction from IllustrationPlacementInsetContainsBorder. Generic-appearing initial letter. (dvpp:illustrationTypeTextualOrnamentInitial)

Poem has at least one decorative initial letter, which appears to be generic, and can be at the beginning of the poem or throughout it. Note distinction from IllustrationTypeInitial. Hand-drawn lettering. (dvpp:illustrationTypeHanddrawnLettering)

Poem includes hand-drawn lettering (i.e. not printed type). Hand-drawn lettering may be present in the poem text, title, caption, and in any other text that is associated with the poem/illustration. Note more specific values for calligraphic, Gothic, and handwriting/cursive styles. Instances that do not adhere to these three specified values will fall under this broad parent value. Hand-drawn lettering in a Gothic style. (dvpp:illustrationTypeHanddrawnLetteringGothic)

Poem includes hand-drawn lettering in a Gothic style. Hand-drawn lettering in a calligraphic style. (dvpp:illustrationTypeHanddrawnLetteringCalligraphic)

Poem includes hand-drawn lettering in a calligraphic style. Hand-drawn lettering in the style of handwriting or cursive. (dvpp:illustrationTypeHanddrawnLetteringHandwriting)

Poem includes hand-drawn lettering in the style of handwriting or cursive. Multiple illustrations. (dvpp:illustrationTypeMultiPart)

The poem has multiple illustrations. Note more specific value for Series. Multiple illustrations that are related. (dvpp:illustrationTypeMultiPartSeries)

The poem has multiple illustrations that are overtly related to one another, for example in a sequential narrative. Title to poem is illustrated. (dvpp:illustrationTypeTitle)

Poem title is illustrated. Layout 1 col, full page (dvpp:layoutFullpageonecol)

Poem takes up full page; a single column. 1 col, half page (dvpp:layoutHalfpageonecol)

Poem takes up half a page; a single column. 1 col, less than half page (dvpp:layoutFractionpageonecol)

Poem takes up less than half a page; a single column. 2 col, half page (dvpp:layoutHalfpagetwocol)

Poem takes up half a page; two columns. 2 col, less than half page (dvpp:layoutFractionpagetwocol)

Poem takes up less than half a page; two columns. 2col, full page (dvpp:layoutFullpagetwocol)

Poem takes up full page; two columns. 3 col, full page (dvpp:layoutFullpagethreecol)

Poem takes up full page; three columns. 3 col, half page (dvpp:layoutHalfpagethreecol)

Poem takes up half a page; three columns. 3 col, less than half page (dvpp:layoutFractionpagethreecol)

Poem takes up less than half a page; three columns. Linegroup types Couplet (dvpp:lgCouplet)

2 lines that rhyme. Octave (dvpp:lgOctave)

8-line stanza. Ottava rima (dvpp:lgOctaveOttava)

Ottava rima; eight-line iambic stanza rhyming abababcc. Quatrain (dvpp:lgQuatrain)

4-line stanza. Ballad quatrain (dvpp:lgQuatrainBallad)

Quatrain, either abab or abcb, in iambic lines alternative 4 stresses and 3 stresses. English quatrain (dvpp:lgQuatrainEnglish)

4-line stanza which ???. Hymn common meter (dvpp:lgQuatrainHymn)

Hymn common meter; quatrain with a rhyme of abab in iambic lines of either 4:4 or 4:3. Sometimes hymnists join their quatrains, turning them into an octave. Quatrain in couplets (dvpp:lgQuatrainCouplets)

Quatrain rhyming aabb. Tennysonian quatrain (dvpp:lgQuatrainTennysonian)

Quatrain rhyming abba, as used for example in In Memoriam. Quintain (dvpp:lgQuintain)

5-line stanza. Septet (dvpp:lgSeptet)

7-line stanza. Sestet (dvpp:lgSestet)

6-line stanza. Sonnet (dvpp:lgSonnet)

14 lines of intricate rhyme. Hybrid sonnet (dvpp:lgSonnetHybrid)

A hybrid of Petrarchan and Shakespearean form. Petrarchan sonnet (dvpp:lgSonnetPetrarchan)

Petrarchan (octave then sestet). Shakespearean sonnet (dvpp:lgSonnetShakespearean)

Shakespearean (4 quatrains then couplet). Spenserian (dvpp:lgSpenserian)

Nine iambic lines, the first eight written in pentameter with the last line written in either hexameter or alexandrine; ababbcbcc rhyme scheme. Tercet (dvpp:lgTercet)

3-line stanza. Unclassified line group (dvpp:lgUnclassified)

A line group which resists categorization. Link group types Consecutive poems (dvpp:lkConsecutivePoems)

Poems published consecutively in a single issue (or, for literary annuals, a single volume) sharing the same page, but without any linked title or numbering. Linked as a series (dvpp:lkLinkedSeries)

Poems in an overtly linked series. Note that, to avoid confusing proliferation, we encode the largest set of linked groups for a poem series. For example, in the case of a set of poems published across nonconsecutive issues, we do not create linked groups for any subset of poems that are published in consecutive issues. Linked as a series in consecutive issues (dvpp:lkLinkedSeriesConsecutiveIssues)

Poems which are in a linked series in consecutive periodical issues (or, for literary annuals, in consecutive volumes), where there are no interruptions between issues. Linked as a series in non-consecutive issues (dvpp:lkLinkedSeriesNonConsecutiveIssues)

Poems which are in a linked series in periodical issues (or, for literary annuals, in volumes) which have at least one interruption between issues. Linked as a series in the same issue (dvpp:lkLinkedSeriesSameIssue)

Poems which are in a linked series in the same periodical issue, where the series does not continue beyond the issue. Multi-part poem (dvpp:lkPoemInstallments)

A single multi-part poem, by a single author and published in instalments over more than one issue (or, for literary annuals, more than one volume). Note the difference from an overtly linked series of separate poems. These are often narrative poem instalments. Poetic replies (dvpp:lkPoeticReplies)

Poems which give rise to poetic responses and the responses to them. Quoted in the same prose item (dvpp:lkSameProseItem)

Poems which are quoted in the same prose contribution. Subcollection (dvpp:lkSubcollection)

A series of poems gathered together to form a curated subcollection. The same poem published more than once (dvpp:lkSamePoem)

Duplicate poems of various types. Translations of the same poem (dvpp:lkSamePoemTranslations)

Translations of the same source poem. Print context Published in a Christmas issue (dvpp:contextChristmasIssue)

The poem appears in a Christmas issue of the periodical. Quoted in prose contribution (dvpp:contextQuotedInProse)

The poem appears as a quotation in the context of an article or other prose contribution in the periodical issue. School Aestheticism (dvpp:schoolAestheticism)

Aestheticism. Anti-decadent (dvpp:schoolAntidecadent)

Anti-decadent. Arthurian (dvpp:schoolArthurian)

Arthurian. Augustan (dvpp:schoolAugustan)

Augustan. Celtic (dvpp:schoolCeltic)

Celtic revival. Decadent (dvpp:schoolDecadent)

Decadent. Dialect (dvpp:schoolDialect)

Dialect poetry. Domestic (dvpp:schoolDomestic)

Domestic. Idyllic (dvpp:schoolIdyllic)

Idyllic. Kailyard (dvpp:schoolKailyard)

Kailyard. Medievalist (dvpp:schoolMedievalist)

Medievalist. Poetess (dvpp:schoolPoetess)

Written by or about self-identified poetesses. Pre-Raphaelite (dvpp:schoolPreraphaelite)

Pre-Raphaelite. Romantic (dvpp:schoolRomantic)

Romantic. Spasmodic (dvpp:schoolSpasmodic)

Spasmodic. Tractarian (dvpp:schoolTractarian)

Tractarian. Working class (dvpp:schoolWorkingclass)

By the working classes, including Chartist poetry. Sonic devices Anaphora: Repetition of the first word or words of a segment. (dvpp:sdAnaphora)

A sonic device in which the first component of a segment is repeated: “It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness…”. Minor variation may occur between repetitions. Epistrophe: Repetition of the last word or words in a segment. (dvpp:sdEpistrophe)

A sonic device in which the last component of a segment is repeated: “…government of the people, by the people, for the people…”. Minor variation may occur between repetitions. Internal rhyme: rhyming components within a line. (dvpp:sdInRhyme)

An instance of overt and obvious rhyme within a single line or across lines, with two words rhyming together. Refrain: Repetition of one or more lines, sentences or phrases anywhere in a poem, and often but not only at the end of a stanza. (dvpp:sdRefrain)

A sonic device in which a phrase, partial line, whole line, or multiple lines in a stanza or a sub-stanza is repeated, sometimes with minor variation, across multiple stanzas. Variant: Specifies that the tagged sonic device is not identical to its precursor, merely similar. (dvpp:sdVariant)

An additional specifier to be combined with one of the sonic device types to specify that the repetition is not identical but a variant of the original instance. Speaker Authorial (dvpp:speakerAuthorial)

Authorial voice. Fictional (dvpp:speakerFictional)

Fictional speaker. Historical (dvpp:speakerHistorical)

Historical figure as speaker. Subject Children (dvpp:subjectChildren)

Children. Childhood (dvpp:subjectChildrenChildhood)

Childhood. Children at home (dvpp:subjectChildrenDomesticity)

Relationship to parents and home; often didactic in nature. Fairy tales (dvpp:subjectChildrenFairytale)

Fairy tales. Cities (dvpp:subjectCities)

Cities. Classical (dvpp:subjectClassical)

Classical themes; the ancient world. Classical myth (dvpp:subjectClassicalMyth)

Classical myth. Hellenic (dvpp:subjectClassicalHellenic)

Ancient Greece and the Greeks. Roman (dvpp:subjectClassicalRoman)

Ancient Rome and the Romans. Comical (dvpp:subjectComical)

Comical subject or topic. Domesticity (dvpp:subjectDomesticity)

Mother and fatherhood, marriage, family reading practices. Ekphrastic (dvpp:subjectEkphrastic)

The subject of the poem is a work of art. Museum (dvpp:subjectEkphrasticMuseum)

The poem is based in or relates to a museum or a work in a museum. Gender (dvpp:subjectGender)

Poems related to Victorian conceptions of gender. AngeloftheHouse (dvpp:subjectAngeloftheHouse)

Poems that present women either as the ideal Angels of the house or as failing in the role. Death (dvpp:subjectDeath)

A poem that references death in some manner. FallenWoman (dvpp:subjectFallenWoman)

a poem discussing a woman who has been abandoned by her lover, had a child out of wedlock, etc. Fatherhood (dvpp:subjectFatherhood)

the role and responsibilities of fatherhood in the middle and working classes. Husband (dvpp:subjectHusband)

the role of the husband amoung the middle and working classes. MotherlyDuty (dvpp:subjectMotherhoodDuty)

a poem describing a woman's role or duty in life is to be a mother. New Woman (dvpp:subjectNewWoman)

late-nineteenth cenutry women questioning intsitution of conventional marriage, entering the workforce, striving for independence. ProfessionalGentleman (dvpp:subjectProfessionalGentleman)

The new model for middle-class masculinity; professions involved a particular set of ethics associated with the specialist. Wife (dvpp:subjectWife)

a poem describing a woman's role as that of wife. grief (dvpp:subjectGrief)

Grief caused by the death of another. Historical event (dvpp:subjectEvent)

The poem is about a specific historical event. Industrialization (dvpp:subjectIndustrialization)

Industrialization. Chartism (dvpp:subjectIndustrializationChartism)

Chartism (a working-class movement of political reform between 1838–1850). Factories (dvpp:subjectIndustrializationFactories)

Factories or mills. Industrial labour (dvpp:subjectIndustrializationLabour)

Industrial labour issues. Love (dvpp:subjectLove)

Love. Adultery (dvpp:subjectLoveAdultery)

Adultery. Courtship (dvpp:subjectLoveCourtship)

Courtship. Eroticism (dvpp:subjectLoveEroticism)

Eroticism. Lesbianism (dvpp:subjectLoveLesbianism)

Lesbianism. Male homosexuality (dvpp:subjectLoveMalehomosexuality)

Male homosexuality. Marriage (dvpp:subjectLoveMarriage)

Marriage. MotherlyLove (dvpp:subjectLoveMotherhood)

a poem describing mother's love for her children. Sex (dvpp:subjectLoveSex)

Sex. Nature (dvpp:subjectNature)

The natural world. Landscape (dvpp:subjectNatureLandscape)

The landscape. Pastoral (dvpp:subjectNaturePastoral)

The pastoral world. Seasons (dvpp:subjectNatureSeasons)

The seasons. Patriotism (dvpp:subjectPatriotism)

Patriotism. Petrarchanism (dvpp:subjectPetrarchanism)

Petrarchanism. Poetry (dvpp:subjectPoetry)

Poetry itself. Meta-textual (dvpp:subjectPoetryMetatextual)

Meta-textual. Politics (dvpp:subjectPolitics)

The poem is about a political event or issue. British empire politics (dvpp:subjectPoliticsEmpire)

The poem is about an event or issue related to the politics of the British Empire and/or the poet's reaction to said politics. British politics (dvpp:subjectPoliticsBritish)

The poem is about an event or issue related to British politics and/or the poet's reaction to British politics. European politics (dvpp:subjectPoliticsEuropean)

The poem is about an event or issue related to European politics and/or the poet's reaction to European politics. French politics (dvpp:subjectPoliticsEuropeanFrance)

The poem is about an event or issue related to French politics and/or the poet's reaction to French politics. German politics (dvpp:subjectPoliticsEuropeanGermany)

The poem is about an event or issue related to German politics and/or the poet's reaction to German politics;. Italian politics (dvpp:subjectPoliticsEuropeanItaly)

The poem is about an event or issue related to Italian politics, especially Garabaldi and/or the poet's reaction to Italian politics. Spanish politics (dvpp:subjectPoliticsEuropeanSpain)

The poem is about an event or issue related to Spanish politics and/or the poet's reaction to Spanish politics. Four nations politics (dvpp:subjectPoliticsFournations)

The poem is about the politics of culture of the four nations of the UK [Scotland, England, Ireland, and Wales]. Global politics (dvpp:subjectPoliticsGlobal)

The poem is about an event or issue related to global politics and/or the poet's reaction to global politics. Irish politics (dvpp:subjectPoliticsIrish)

The poem is about an event or issue related to Irish politics and/or the poet's reaction to Irish politics. Local politics (dvpp:subjectPoliticsLocal)

The poem is about a specific local political event or issue, usually related to the periodical's place of publication. Scottish politics (dvpp:subjectPoliticsScottish)

The poem is about an event or issue related to Scottish politics and/or the poet's reaction to Scottish politics. Race (dvpp:subjectRace)

Race issues. Relationships (dvpp:subjectRelationships)

Human relationships. Familial relations (dvpp:subjectRelationshipsFamilial)

Familial relations. Female relationships (dvpp:subjectRelationshipsFemale)

Female friendships. Male relationships (dvpp:subjectRelationshipsMale)

Male friendships. Religious (dvpp:subjectReligious)

Religious issues including faith (and crises of faith), acts of devotion, God's role in the world, non-Christian faiths/gods. Agnosticism (dvpp:subjectReligiousAgnosticism)

Agnosticism. Anglican (dvpp:subjectReligiousAnglican)

Anglicanism; faith founded on the Bible, apostolic succession, and the writings of the Church fathers; a number of dissenting demoninations fall under it. Atheism (dvpp:subjectReligiousAtheism)

Atheism. BroadChurch (dvpp:subjectReligiousBroadChurch)

Broad Church; moral behaviour was emphasized over spirituality. Catholic (dvpp:subjectCatholic)

Roman Catholicism; beleive in the special authority of the pope and the ability of saints to intercede on one's behalf. Evangelical (dvpp:subjectReligiousEvangelical)

Evangelical religion; leaned towards Puritanism and Methodism in doctrine; emphasized personal conversion, justification by faith, and the authority of the Bible. MuscularChristianity (dvpp:subjectReligiousMuscularChristianity)

Muscular Christianity; associated the healthy body and healthy spirit. Non-conformist (dvpp:subjectReligiousNonconformism)

Religious poetry outside the Anglican Church. Nondenominational (dvpp:subjectReligiousNondenominational)

Religious poetry not associated with any particular denomination. Scottish Free Church (dvpp:subjectReligiousFreechurch)

The Scottish Free Church. Tractarian (dvpp:subjectReligiousTractarian)

Tractarianism or the Oxford Movement; use of reserve and analogy in poetry; called for a closer following of the Church of England’s Thirty-Nine articles; stressed the doctrinal closeness of their movement with Catholicism and Catholic rituals. Science (dvpp:subjectScience)

Science. Sentimental (dvpp:subjectSentimental)

Excess of emotion and feeling. Technology (dvpp:subjectTechnology)

Technological innovations of the Victorian period. VisualTechnology (dvpp:subjectVisualTechnologies)

Camera Obscura, Panorama, Diorama, etc. Topical (dvpp:subjectTopical)

Topical issues, often something in the news cycle or the seasons. War (dvpp:subjectWar)

War and warfare. Battles (dvpp:subjectWarBattles)

Battles. Heroism (dvpp:subjectWarHeroism)

Military heroism. Sailors (dvpp:subjectWarSailors)

Poem references sailors involved in war efforts / the British Navy. Soldiers (dvpp:subjectWarSoldiers)

Soldiers. travel (dvpp:subjectTravel)

Travel between geographical locations.

8. The <facsimile> element

The <facsimile> element is currently very simple, although we may decide to make it more complex in future. It consists of a list of the page-images showing the poem:

<facsimile>  <graphic url="https://[path-to-the-image].jpg"/>  <graphic url="https://[path-to-the-image].jpg"/> </facsimile>

These are automatically generated from the relational database information. You should check that these links are correct, but other than that, there's no need to do anything here. If any of the links are wrong, fix them in the database, not in the XML file. In future, it is possible that we may decide to define <surface> and <zone> elements which specify the exact regions of each image where a poem appears.

9. The <text> element

9.1. The front matter

Any front matter for any individual poem will be created by you, the transcriber/editor/encoder. It may consist of a brief introduction to the poem, in the form of one or two paragraphs, or it might be a complete critical introduction on a much larger scale. It should be encoded in a <div> element, possibly with nested <div>s if it has multiple sections, and should consist of the usual TEI prose structures (<head>s, <p>s, <quote>s, etc.)

9.2. The back matter

The back matter will consist of any textual notes or other information that does not belong in the body of the document. However, note that you should not put footnotes in the back matter; a footnote is a TEI <note> element, which should be included in full at exactly the point in the text where you would expect to see the footnote number in a print document. See 15.2. Editorial notes for more information.

10. The body: transcribing and encoding the poem

Most of your work will be done in the <body> element of the file, transcribing, encoding and annotating the poem. This is the basic structure of this section:

<body>  <div type="poem">   <head>[The title of the poem]</head>   <lg> <!-- A complete poem will go in here a single lg element. -->    <lg type="dvpp:lgTercet">     <l>[line 1]</l>     <l>[line 2]</l>     <l>[line 3]</l>    </lg>    <lg type="dvpp:lgTercet">     <l>[line 4]</l>     <l>[line 5]</l>     <l>[line 6]</l>    </lg>   </lg>  </div> </body>

10.1. The main poem <div>

A single <div> with type=poem should enclose the entire work. If it is a cycle of poems, use type=cycle. You can use the style attribute on this <div> to describe the space within which the poem is printed. Normally, this will be a page or a column. For instance, a poem printed within a column might be encoded like this:

<div type="poemstyle="width: 23em;">  <head>A "MERCENARY" MARRIAGE</head> <!-- poem goes here. --> </div>

This specifies that the column within which the poem was printed is about 23ems wide.

10.1.1. Adding the dominant rhyme scheme to the poem div

We add rhyme to each poem <div>. This is automatically handled for poems that follow three criteria: (1) only one unique rhyme-scheme is found; (2) stanzas are less than 21 lines; and (3) there are no complicating factors. However, for any poem that does not fit that criteria, we must manually add the poem <div> rhyme following a set of principles that we have agreed upon, using the poem’s rhyme-scheme report.

The rhyme-scheme report breaks down the different patterns found across a poem’s different stanzas. Each pattern for each stanza is converted into a normalized pattern so that our process can compare them. For example, "abab" will remain "abab", but "cdcd" will convert to "abab". When you mouse over a stanza, you will see both the true rhyme pattern and the normalized rhyme pattern.

First, check the rhyme-scheme report. For poems with stanzas that follow the same rhyme pattern more than 50 percent of the time, that becomes the dominant rhyme pattern, which you can then add to the poem <div> rhyme.

Sometimes, poems will follow a pattern, but with stanzas of irregular lengths. This occurrence is common with rhyming couplets and quatrains. Because we consider these patterns meaningful (despite the differing stanza lengths), we use "aa" for the dominant rhyme pattern in cases where there are stanzas of differing lengths comprised of rhyming couplets (for example, poem 12481), and “abab” or "-a-a" for the dominant rhyme pattern in cases where there are stanzas of differing lengths comprised of quatrains (for example, poem 7785). Keep in mind that our dominant rule still applies here, so if a poem follows "aa" more than 50 percent of the time, "aa" will be the dominant rhyme pattern.

In some cases, some rhyme patterns will be a subset of another pattern. For example, a poem might be a mixture of "abab" and "-a-a". In these cases, the dominant rhyme scheme will be "-a-a" as "abab" is a subset of "-a-a". Similarly, sometimes a rhyme will repeat itself within a stanza which changes the dominant rhyme-scheme results. For example, poem 4541 has two stanzas where one is "ababcdcdefefgg" and the other is "ababcdcd​efefcc". Here, we use "ababcdcdefefgg" as "ababcdcd​efefcc" is a variation of that.

Encoders can also use the values NONE and IRREGULAR. NONE is used when there is no rhyme in a poem, for example, poem 7822, or when the poem dominantly has no rhyme pattern, for example, poem 13888. IRREGULAR is used when there is no regular rhyme pattern in a poem.

Encoders should also use IRREGULAR when there is a 50 percent split across two different patterns, such as in poem 1966, as this shows that neither pattern is dominant. We may add an additional value for this rhyme pattern occurrence in the future.

Sometimes, each stanza in a poem will finish in a chorus or refrain, and sometimes this chorus or refrain is replaced by ellipses or "etc." In these cases, the dominant rhyme pattern is the one that includes the entire chorus or refrain, as it is implied in the other stanzas. Examples of this occurrence include poems 4388 and 4385.

Note: check the closed form documentation for a list of poems forms that should have a parent line group that includes the rhyme for the entire poem. This rhyme should also be the one included in the <div> rhyme.

10.2. Titles and headings (<head>)

The title of the poem (if there is one) will go inside a <head> element in the main poem <div>. If the poem is divided into sections with their own headings, each one of these sections will constitute a <lg> (line-group) element, and the section heading will go in a <head> element at the beginning of the <lg>:

<div type="cycle">  <head>Half the Year Round.</head>  <lg>   <lg type="dvpp:lgSonnetShakespearean"    rhyme="ababcdcdefefgg">    <head>January</head> <!--- lines etc. -->   </lg>   <lg type="dvpp:lgSonnetShakespearean"    rhyme="ababcdcdefefgg">    <head>February</head> <!--- lines etc. -->   </lg>  </lg> </div>

Poems in a cycle are treated as a single text for the purposes of encoding, which means that in addition to appearing in the same file, they also share the same rhyme labelling sequence. So if the labels a, b and c are used in the first poem, the second poem will start its rhyme labelling from d.

10.2.1. Capitalization and final punctuation in headings

It is common in Victorian periodicals for the title of a poem to be in all-capitals, with a final period. We view these features as incidental and stylistic, and in our default normalized rendering, we don't represent them. This means that the transcription should use title case, and the capitalization must be handled through a <rendition> element in the header. Similarly, a final period at the end of a title should be marked as hidden by default. Here is a fully-worked example:

<TEI xmlns=""> <!--[...]--> <!-- In the header. -->  <rendition xml:id="pom_20999_incid_1">text-transform: uppercase;</rendition>  <rendition xml:id="pom_20999_hidden">display: none;</rendition>  <rendition xml:id="pom_20999_incid_showInline">display: inline;</rendition> <!-- [...] --> <!-- In the poem. -->  <head rendition="#pom_20999_incid_1">A Dark and Stormy Night<hi rendition="#pom_20999_hidden #pom_20999_showInline">.</hi>  </head> <!--[...]--> </TEI>

This means that the default rendering will show title case without a period, but when the incidental styles are turned on, the title will become all-upper-case and the period will appear.

10.3. Prose components

Some poems will be preceded by, or will include, some explanatory prose such as an introduction or a letter. There are two ways to encode this material, depending on where it appears.

If the prose appears after the title of the poem, then we treat it as part of the poem, and encode it inside the poem div:
<div type="poem">  <head>Title of the poem</head>  <p>This is a paragraph introducing the poem.</p>  <lg>   <l>Line one...</l>   <l>Line two...</l>  </lg> </div>
However, if the introductory text is before the poem title, then we treat it as a separate division (<div> element):
<div>  <head>Notices to Correspondents.</head>  <p>   <hi style="font-variant: small-caps;">We</hi> have much to say to you, gentle Correspondents ; but we must devise a<lb/> new mode of address, now that our Brother-Editor of Baldwin’s London Ma-<lb/> gazine has adopted our ancient style.[...] Meanwhile, we have room for one Sonnet only.<lb/>  </p> </div> <div type="poem">  <head>Sonnet, by the Ettrick Shepherd ;<lb/> (Addressed to <hi style="font-variant: small-caps;">Christopher North</hi>, Esq. on receiving the last Number of<lb/> this Magazine, by the hands of John Dow, Esq. W. S.)</head>  <lg>   <l>...</l>  </lg> </div>

10.4. Line groups and lines

We normally think of line-groups (<lg>) as stanzas, but we should actually encode all convenient or useful groupings of lines, both larger and smaller than actual stanzas, as line groups. For instance, we might encode a Shakespearean stanza like this:

<lg type="dvpp:lgSonnetShakespearean">  <lg type="dvpp:lgQuatrainBallad"> <!-- lines -->  </lg>  <lg type="dvpp:lgQuatrainBallad"> <!-- lines -->  </lg>  <lg type="dvpp:lgQuatrainBallad"> <!-- lines -->  </lg>  <lg type="dvpp:lgCouplet"> <!-- lines -->  </lg> </lg>

Note that this implies some degree of interpretation of the poem; some scholars might enclose the quatrains in a line-group on the same level as the couplet; others might divide a sonnet into an eight-line group and a four-line group.

10.5. Broken lines

Sometimes a poetic line is broken across a stanza boundary, or a speech boundary in the case of a drama. We encode this by creating two separate <l> elements, then linking them together with the next and prev attributes, like this:
<lg> <!-- ... -->  <l>Old Mark away, I’ve lost my right-hand man ;</l>  <l xml:id="pom_11427_broken_1_1"   next="#pom_11427_broken_1_2">You must replace him.”—</l> </lg> <lg>  <l xml:id="pom_11427_broken_1_2"   prev="#pom_11427_broken_1_1">Off the striplings ran,</l>  <l>Proud happy boys ! forth rushing in their haste,</l> <!-- ... --> </lg>
  • First, give each fragment line its own xml:id attribute, based on the pom_xxxx_ id of the poem itself.
  • Then add the next attribute to the first line, with a value which is the hash character (#) followed by the id of the second line.
  • Finally, add the prev attribute to the second line, pointing it back at the first line in the same way.
Note that when encoding the rhyme for a stanza, you ignore the final line fragment, since it is not complete, and its rhyme will be accounted for in the following stanza. So instead of the <lg> element’s rhyme ending in a dash (for an unrhymed line), the fragment line is ignored:
<lg rhyme="aa"> <!-- ... -->  <l>This is just to <rhyme label="a"    type="dvpp:rhymeMasculine">show</rhyme>  </l>  <l>An example so you <rhyme label="a"    type="dvpp:rhymeMasculine">know</rhyme>  </l>  <l xml:id="pom_25_broken_1_1"   next="#pom_25_broken_1_2">How you should</l> </lg> <lg rhyme="bb">  <l xml:id="pom_25_broken_1_2"   prev="#pom_25_broken_1_1">en<rhyme label="b"    type="dvpp:rhymeMasculine">code</rhyme>  </l>  <l>A broken line <rhyme label="b"    type="dvpp:rhymeMasculine">node</rhyme>  </l> </lg>

10.6. Refrains and other sonic devices

We use the term "sonic device" to refer to a number of rhetorical devices in which words, phrases or whole lines are repeated for effect.

A refrain is a repeated fragment of one or more lines. Refrains are common in songs and ballads, but may occur in any poem. It can be difficult to identify or define refrains precisely; sometimes a single line may function as a refrain, sometimes a whole stanza, and occasionally a fragment may be repeated with minor variations. For this reason, tagging of refrains may occur through several different elements, including <lg>, <l> and <seg>, but always using the ana attribute. Here is a very simple example, with all extraneous tagging removed for simplicity. The last line of each stanza is the refrain.
<lg>  <lg>   <l>Jehovah, King of Kings, </l>   <l>Spread thy protecting wings </l>   <l>O’er Britain’s throne ! </l>   <l>Crown’d with thy grace immense, </l>   <l>Long may King William thence </l>   <l>Justice in love dispense— </l>   <l ana="dvpp:sdRefrain">God save the King !</l>  </lg> </lg> <lg>  <lg>   <l>Throned in his people’s hearts, </l>   <l>Despising faction’s arts, </l>   <l>May William reign! </l>   <l>True son of George the Third </l>   <l>Who axe and block preferr’d </l>   <l>To forfeit of his holy word— </l> pdate <l ana="dvpp:sdRefrain">God save the King !</l>  </lg> </lg>
In this example, only part of the line is repeated, so we use the <seg> element instead, and we specify that the sonic device is an epistrophe (repetition of the end of a line or sentence):
<lg>  <l>Sir, in your last work you the logic display</l>  <l>Of Aldrich* or Burgerdick, Crousaz or Hamel,</l>  <l>But I think that you err very much when you say,</l>  <l>That the fashion of drinking is past, <seg ana="dvpp:sdEpistrophe">Mr Campbell</seg>.</l> </lg> <lg>  <l>If fashion rejects jolly topers, ’tis plain,</l>  <l>That fashion’s an ignorant sort of a strammel ; †</l>  <l>And a fashion so senseless, so dull, will remain</l>  <l>But a short time in vigour, I think, <seg ana="dvpp:sdEpistrophe">Mr Campbell</seg>.</l> </lg> <lg>  <l>In Ireland, I’m sure, many ages must roll</l>  <l>Before with such rules our free spirits we trammel,</l>  <l>Before the bright lights of the bottle and bowl</l>  <l>Will cease o’er our tables to shine, <seg ana="dvpp:sdEpistrophe">Mr Campbell</seg>.</l> </lg>
This example might be considered a very short refrain, since it occurs at the end of every stanza; this is a judgement call.
In the examples above, the repetition is exact; however, where a word, phrase, line or stanza is repeated with variation, we can add a second value to the ana attribute to show this:
<lg>  <l>   <seg ana="dvpp:sdAnaphora">Joy ! joy ! to old England</seg>—her slumber is broken ; </l>  <l>Again to her lion-hearts freedom hath spoken ;— </l>  <l>   <seg ana="dvpp:sdAnaphora dvpp:sdVariant">Joy! joy! to “ Auld Scotland,”</seg> her might and her glory</l>  <l>Again will be more than a famed olden story.</l> </lg>
This is an example of anaphora (repetition of the beginning, the reverse of epistrophe), but in this case, the repetition is not exact; the last two words are different, although clearly echoing. Therefore we add the value dvpp:sdVariant to the second instance to specify that it is not identical to the original. As is the case with rhyme, we assume that the first instance of a phenomenon establishes its template; subsequent instances either echo it precisely, or they vary from it to some degree (in which case they carry the extra value).

10.7. Encoding rhyme

In this project, we encode two different aspects of rhyme: the rhyme-scheme pertaining to a line-group, and the actual rhyming words or syllables that constitute each individual rhyme. Rhyme-scheme is encoded using the rhyme attribute:

<lg type="dvpp:lgSonnetShakespearean"  rhyme="ababcdcdefefgg">  <lg type="dvpp:lgQuatrainBallad"   rhyme="abab"> <!-- lines -->  </lg>  <lg type="dvpp:lgQuatrainBallad"   rhyme="cdcd"> <!-- lines -->  </lg>  <lg type="dvpp:lgQuatrainBallad"   rhyme="efef"> <!-- lines -->  </lg>  <lg type="dvpp:lgCoupletrhyme="gg"> <!-- lines -->  </lg> </lg>

Where a line in the structure does not rhyme with anything else, use a dash (hyphen) instead of a letter of the alphabet.

In cases where a stanza has no rhyming lines at all, we need to signal this so we can differentiate between poems which have been fully encoded and those which don't have rhyme encoded yet. This is done by setting the rhyme attribute on the <lg> element to NONE:
<lg rhyme="NONE">  <l>This stanza has three lines</l>  <l>But it doesn't have any</l>  <l>That rhyme at all.</l> </lg>

Rhyming words or components of words are tagged with the <rhyme> element:

<lg type="dvpp:lgQuatrainBallad"  rhyme="abab">  <l> Slow-paced and solemn, through the drifting <rhyme label="a"    type="dvpp:rhymeMasculine">snow</rhyme>, </l>  <l> With heart uplifted comes the hopeful <rhyme label="b"    type="dvpp:rhymeMasculine">year</rhyme>, </l>  <l> Breathing like a voice of waves in ebb and <rhyme label="a"    type="dvpp:rhymeMasculine">flow</rhyme>, </l>  <l> To mourners all, O! be ye of good <rhyme label="b"    type="dvpp:rhymeMasculine">cheer</rhyme>! </l> </lg>

The letter in the label attribute should match a letter in the rhyme attribute on the containing <lg> element. The type attribute has a limited set of values representing types of rhyme; these are documented in the taxonomy and included in the schema.

10.7.1. Repeated rhymes and long poems

Note that we tag every instance of a specific rhyming component with the same label, even when they occur in different stanzas. Look at this example:

<div type="poem">  <head>A ROUNDEL OF <persName>    <surname>RABELAIS</surname>   </persName>  </head>  <lg>   <lg rhyme="abab">    <l>     <placeName>Theleme</placeName> is afar on the waters, adrift and a<rhyme label="a">far</rhyme>,</l>    <l>Afar and afloat on the waters that flicker and <rhyme label="b">gleam</rhyme>,</l>    <l>And we feel but her fragrance and see but the shadows that <rhyme label="a">mar</rhyme>    </l>    <l>     <placeName>The<rhyme label="b">leme</rhyme>     </placeName>.</l>   </lg>   <lg rhyme="bab">    <l>In the sun-coloured mists of the sunrise and sunset that <rhyme label="b">steam</rhyme>    </l>    <l>As incense from urns of the twilight, her portals a<rhyme label="a">jar</rhyme>    </l>    <l>Let pass as a shadow the light or the sound of a <rhyme label="b">dream</rhyme>.</l>   </lg>   <lg rhyme="abab">    <l>But the laughter that rings from her cloisters that know not a <rhyme label="a">bar</rhyme>    </l>    <l>So kindles delight in desire that the souls in us <rhyme label="b">deem</rhyme>    </l>    <l>He erred not, the seer who discerned on the seas as a <rhyme label="a">star</rhyme>    </l>    <l>     <placeName>The<rhyme label="b">leme</rhyme>     </placeName>.</l>   </lg>  </lg> </div>

The same sounds (labelled a and b) appear in multiple stanzas, so they have been tagged with the same letter.

If you are encoding a long poem, you may run out of letters of the alphabet. In that case, start again from a, but now append the digit 1:

<lg rhyme="a1b1a1b1"> <!-- Four lines with alternating rhyme. --> </lg>

However, when you are a couple of hundred lines into encoding a long poem, it can be very difficult to remember whether a particular rhyming sound has already occurred in the poem or not. We have a tool to help you find any possible preceding instances of matching rhymes in a poem you're encoding:

  • Find your poem in the Project window of Oxygen (on the left).
  • Right-click on it, and choose Transform / Transform with...
  • Choose the scenario Find rhymes in this poem.
  • In the pop-up box, enter the rhyming part of the word you're currently encoding.

The transformation should give you back a list of existing tagged rhymes that may match the one you're encoding. It does this by first looking through all the rhymes we have already tagged in the whole collection, and retrieving all matches for your rhyme; then for all of those, it retrieves all of the matching rhymes in the collection (so it does two levels of retrieval). From that complete set of rhymes, it returns only the ones that are inside the poem you're working on now.

Note that this is intended as an aid rather than a complete solution; if may retrieve forms that don't quite rhyme with your candidate, and it may fail to retrieve a tagged rhyme that should match. But for most straightforward cases, it will be quicker than looking through hundreds of lines yourself. Half-rhymes, eye rhymes and identical rhymes

Half-rhymes, eye rhymes and identical rhymes are all instances of the same scenario: a rhyme template is established by an initial line-end, setting up an expectation in the reader, and a following line-end which is supposed to rhyme with it turns out not to be a perfect rhyme, violating the reader's expectations. In all of these cases, our practice is to tag the first instance, which establishes the template, as a masculine, feminine or dactylic rhyme, capturing both the nature of the intended rhyme pattern and the fact that from the reader's point of view nothing is yet amiss; then we tag the subsequent violating line-end as a half-rhyme, eye rhyme or identical rhyme. The explanation below uses half-rhyme as an example, but the principles are the same for the other two types of imperfect rhyme.

Half-rhymes are cases where a line is expected to rhyme with a preceding line, and it almost does, but not quite. Practically speaking, this means that it has matching vowel sound(s), but it has different final consonant(s); or it has the right final consonant(s) but slightly different vowel sound(s). In this case, we categorize this as a half-rhyme.

Consider how you might encode the rhyme in this poem (it's not much worse than some of the real poems):
 Here are some rhymes
That happen three times
In only three lines.

The first is the rule;
The second one's cool,
But the third one is vile.

If there are only two,
The first can't be wrong cos it’s new,
So the second gets tagged as half,
But only the second, not both.
In the case of the first two stanzas, a rhyme pattern is established by the first line, and the second line complies with it; the third line is obviously intended to rhyme, but it doesn't quite match, so we would tag the first two as masculine rhymes and the last as half-rhymes:
<lg rhyme="aaa">  <l>Here are some <rhyme label="a"    type="dvpp:rhymeMasculine">rhymes</rhyme>  </l>  <l>That happen three <rhyme label="a"    type="dvpp:rhymeMasculine">times</rhyme>  </l>  <l>In only three <rhyme label="atype="dvpp:rhymeHalf">lines</rhyme>.</l> </lg> <lg rhyme="bbb">  <l>The first is the <rhyme label="b"    type="dvpp:rhymeMasculine">rule</rhyme>;</l>  <l>The second one's <rhyme label="b"    type="dvpp:rhymeMasculine">cool</rhyme>,</l>  <l>But the third one is <rhyme label="btype="dvpp:rhymeHalf">vile</rhyme>.</l> </lg>
In the case of the third stanza, which is a pair of couplets, the final couplet also has a half-rhyme. The first of the two is establishing the new rhyme template, so it can't actually be wrong; only the second is tagged as a half-rhyme, because it deviates from the template. (Note that this is a change from previous policy, in which we would have tagged both lines as half-rhymes.)
<lg rhyme="ccdd">  <l>If there are only <rhyme label="c"    type="dvpp:rhymeMasculine">two</rhyme>,</l>  <l>The first can't be wrong cos it’s <rhyme label="c"    type="dvpp:rhymeMasculine">new</rhyme>,</l>  <l>So the second gets tagged as <rhyme label="d"    type="dvpp:rhymeMasculine">half</rhyme>,</l>  <l>But only the second, not <rhyme label="dtype="dvpp:rhymeHalf">both</rhyme>.</l> </lg>

10.7.2. Syllable boundaries

Rhyme is a phenomenon which is tied to syllables, so when you're tagging a rhyme which begins in the middle of a word, you'll need to decide where one syllable ends and the next one begins. In English, this is notoriously difficult. From a phonological point of view, many phonologists would consider that ambisyllabicity or ‘blurred syllabification’ is the most effective approach, but that of course is problematic for our purposes, because we're forced to choose a single point within the stream of characters to place the starting tag for the <rhyme> element. The situation is further complicated by the fact that we're not dealing with phonemes in our texts, but with graphemes, which don't have a one-to-one correspondence with phonemes anyway.

Because of all this, the decision on where to place an opening <rhyme> element inside a word is frequently going to be problematic. People have different instincts in this regard, and may feel strongly about them. Nevertheless, we would like to be consistent in our encoding as far as possible, so here are some guiding principles that we should all try to follow:

  1. The Maximal Onset Principle. The general idea here is that consonants should form part of the following syllable as long as the resulting cluster is a cluster that could appear at the beginning of a word. So restrain becomes
    re | strain
    because str can appear as a word-initial consonant cluster.
  2. Doubled Consonant Splitting. This rule says that where a consonant is doubled at a syllable boundary, the opening <rhyme> element should be placed between the two, so accept becomes
    ac | cept
    and correct becomes
    cor | rect
    (This actually aligns with the Maximal Onset Principle since English words do not typically start with a double consonant.)
  3. Morpheme Boundary Splitting. This principle is normally subordinate to the other two, but there are cases where we put the break between morpheme boundaries because the constraints of the typographical representation don't allow us to put it where it really belongs. For example, consider extract, which in a phonemic representation would be /ekstrækt/. The Maximal Onset Principle would have us place the boundary between /k/ and /s/, but we can't do that because that boundary falls inside the single grapheme [x], so instead, we use the morpheme boundary (prefix ex + root tract) to place it:
    ex | tract

There will inevitably be cases where we feel uncomfortable with the results of applying these rules. Consider for example display. splay is a perfectly good English word, so following the M. O. P. we should break after [i], but some people will feel very strongly that the morpheme boundary should take precedence (possibly because the short /ɪ/ sound normally only occurs in closed syllables in many dialects of English, so it feels wrong to detach the /s/), so may really prefer

*dis | play

However, for consistency, we should try to stick to the rules. We may be able to add more rules for ambiguous cases as we come across them and discuss them.

10.7.3. Cross-stanza rhyme

You may occasionally come across a situation where a line does not rhyme with anything else in its stanza, but it does (clearly and intentionally) rhyme with one or more lines in other stanzas. We call this cross-stanza rhyme, and it needs to be handled in a particular fashion:
<lg rhyme="aa-">  <l>In a poem about Mario <rhyme label="a"    type="dvpp:rhymeFeminine">Lanza</rhyme>  </l>  <l>This line rhymes in-<rhyme label="a"    type="dvpp:rhymeFeminine">stanza</rhyme>  </l>  <l>But this rhymes with an outside <rhyme label="b"    type="dvpp:rhymeMasculine dvpp:rhymeCrossStanza">line</rhyme>.</l> </lg> <lg rhyme="cc-">  <l>He once was a Hollywood <rhyme label="c"    type="dvpp:rhymeFeminine">actor</rhyme>  </l>  <l>And his voice was a major <rhyme label="c"    type="dvpp:rhymeFeminine">factor</rhyme>  </l>  <li>Being reputedly very <rhyme label="b"    type="dvpp:rhymeMasculine dvpp:rhymeCrossStanza">fine</rhyme>.</li> </lg>
Note that the rhyme attribute on the <lg> elements shows a dash for those lines, since they're not part of the rhyme-scheme for the stanza, but they do have the label attribute. In the <rhyme> element, the type attribute has two values, one showing the normal rhyme type, and one (dvpp:rhymeCrossStanza) specifying that this rhyme operates across stanzas.

Where a regular rhyme in a stanza is later echoed in another stanza by a line which has no rhymes in its own stanza, the first instance is tagged in the normal way, but also receives the dvpp:rhymeCrossStanza value. Also, note that refrains may also make use of cross-stanza rhyme, and these should be tagged as well. We also tag cross-stanza rhymes which are identical, but where this repetition is in the context of a refrain, we do not tag it since the notion of repetition is already captured by the refrain tagging. Only where a refrain uses non-identical rhyme should its final components be tagged as cross-stanza rhymes.

10.8. Page breaks and column breaks

We would like to be able to retrieve poems based on the number of pages or columns they span, so it's important to encode this information. Whenever a page or column break appears in the text, mark it with a <pb> or <cb> tag. This actually includes the beginning of the poem itself: we need to signal that the poem begins on a page, or (if there are columns) in a column, so the first thing in your encoding will be a <pb> tag, and if there are columns, there will need to be an appropriate number of <cb> tags too. Here's an example of a poem that begins on the second column of a page, and runs over to the next page:

<body>  <pb n="36"/> <!-- page 36 starts. -->  <cb/> <!-- First column on p. 36. -->  <cb/> <!-- Second column, which contains the poem. -->  <div type="poem"> <!-- First few stanzas go here... -->   <pb n="37"/> <!-- Page 37 starts here. -->   <cb/> <!-- First column on page 37. --> <!-- Remaining stanzas go here... -->  </div> </body>

Note that you will sometimes encounter mixed-column layouts, in which parts of the poem span multiple columns while other parts respect the column divisions. See Mixed column layouts for detailed guidelines for such cases.

10.9. Bylines

Many poems have bylines at the head or foot of them, like this:
A byline in a Chartist 1840 poem.
Figure 1. A byline in a Chartist 1840 poem.
Here there are two byline blocks, one right-aligned, containing the initials of the poet, and one left-aligned, containing the place and date of composition. We will tag these as separate <byline> elements for convenience:
<byline style="text-align: right; margin-right: 3rem;">  <persName>E. P.</persName> </byline> <byline style="margin-left: 2rem;">  <placeName>Paisley</placeName>, <date when="1840-02-26">26th Feb. 1840</date>. </byline>

Note that this project’s use of <byline> is very broad; we do not distinguish between datelines and bylines, but instead we use <byline> for any such component. Within bylines, though, we tag <persName>, <placeName> and <date>.

Sometimes a byline will include the life-dates for an author (birth and death dates). In this case, do not tag these as dates; we only tag a date of composition in as a date in the byline.

10.10. Closed (fixed) form

Poems with a closed (or fixed) form follow strict patterns that require specific handling when encoding. These poems will sometimes be separated into stanzas, but they will need a parent <lg> element with an rhyme attribute that surrounds and includes the entire poem. Sometimes, these poems will have their closed form in the title; however, this is not always the case. Closed forms to watch out for include:

  • Ballade: Features an envoi (usually as an address). Usually 3 octaves and a 4-line envoi. The last line of the first stanza is usually the refrain, repeated in the last line of each stanza and the envoi. Octaves usually rhyme "ababbcbC", and envoi "bcbC". Ballade example.
  • Rondeau: ​12-line or 15-line poem that features 2 rhymes. Usually the first word or phrase of the first line is the refrain (the rentrement) and does not rhyme. Often printed in 2 or 3 stanzas (often 5 lines, 4 lines, 6 lines). Example rhyme scheme (but varies): "aabba aabR aabbaR" (R=refrain). Rondeau example.
  • Rondel: Usually a 14-line poem (sometimes 13-line) with 2 rhymes ( 2-line refrain that repeats 2 or 3 times). Example of rhyme scheme: "ABba abAB abbaA(B)". Note: sometimes looks like (but is not) a sonnet. Rondel example.
  • Sonnet: Often printed as one line group, but sometimes there is a gap between the octave and the sestet. When there is not a space, nested line groups still need to be added around the octave and the sestet or the quatrains and couplet. Some example patterns are “abab cdcd efef gg” (Shakespearean) and “abbaabba cdecde" (or "cdcdcd)” (Petrarchan). Sonnet example.
  • Triolet: ​8-line poem with 2 rhymes and 2 refrain lines. Pattern: "ABaAabAB." Triolet example.
  • Villanelle: Usually a 19-line poem with 2 rhymes and 2 refrains. Usually "aba" stanzas and final stanza "abaa." Usually the first and third lines of the first stanza are repeated alternatively throughout the poem and then end up as the final two lines of last stanza. Villanelle example.

10.11. Verse dramas

Verse dramas require specific encoding that differs from our usual poems. The outer <div> type attribute should have the drama value, and for verse dramas made up of various acts and scenes, multiple nested <div> elements with act and scene values should be used.

We use <speaker> tags to surround the speakers name and <sp> tags to surround <speaker> and <l> tags.

<sp>  <speaker style="float: left; margin-right: 0.5rem;">Soph.</speaker>  <l>See, now the evening red has died<lb/>away—</l>  <l>Stars glimmer thro’ the broken clouds—and<lb/>still</l>  <l>My son is not returned.</l> </sp>

Sometimes verse dramas will include a cast list. Each <castList> is made up of <castItem>s, which can include <role>s (the role title or character name) and <roleDesc>s (the description of that role), when present. Sometimes cast lists will include a <head>.

<castList>  <head>The Dramatis Personæ are,</head>  <castItem>   <role>Don Luis de Camoëns.</role>  </castItem>  <castItem>   <role>Don Jose Quevedo Castel Branco,</role>   <roleDesc>a rich merchant.</roleDesc>  </castItem>  <castItem>   <role>Perez,</role>   <roleDesc>his son.</roleDesc>  </castItem>  <castItem>   <role>The Governor of the Great Hospital in Lisbon.</role>  </castItem> </castList>

We tag stage directions with <stage>. Each <stage> tag must have at least one type that indicates the type of stage direction, but more than one can be selected when a single stage direction performs multiple functions. The type values, with examples, are as follows:

  • Business: describes stage business.
    <stage type="business">Pointing to his breast.</stage>
  • Entrance: describes an entrance.
    <stage type="entrance">PLUTO enters.</stage>
  • Exit: describes an exit.
    <stage type="exit">Exit the Master of the Hospital.</stage>
  • Delivery: describes how a character speaks
    <sp>  <speaker>Soph.</speaker>  <l>   <stage type="delivery">(Weeping)</stage>Alas ! my daughter !</l> </sp>
    <sp>  <speaker>Wal.</speaker>  <l>   <stage type="delivery">aside.</stage>  </l> </sp>
  • Location: describes a location.
  • Modifier: gives some detail about a character.
  • Novelistic: is a narrative, motivating stage direction.
  • Setting: describes a setting.
    <stage type="setting">Scene, Drury-Lane Theatre — Time, Midnight.</stage>

In the above examples, each stage direction performs one function. In the following example, the stage direction performs multiple functions, so more than one value is applied:

<stage type="business setting entrance">He raises himself up, supported by Perez. While he<lb/>speaks, a cloud descends upon the stage, amidst<lb/>distant music. It separates, and displays a female<lb/>figure, bearing in one hand a laurel wreath, in the<lb/>other, the colours of Portugal, which she waves<lb/>above Camoëns.</stage>

11. Special textual features

11.1. Illustrated poems

11.1.1. Illustration type and placement

We use the <catRef> element to describe the types of illustrations present in an illustrated poem as well as the placement of illustrations on the poem page (in relation to the poem text). One <catRef> describes one kind of illustration type or placement, however, there are no limits on the number of illustration <catRef>s an encoder can add to a poem. Note that, in contrast to <figure> and its descendant <figDesc>, an illustration <catRef> provides broad, poem-centric information. When a poem contains two illustrations and they are both positioned to the right of the poem text, we add one <catRef> to signify that the poem includes one or more illustrations that are adjacent to the poem.

Note: these <catRef>s are added to all illustrated poems, not just the poems we have encoded.

In addition to the above, we use the <catRef> element to describe the type and placement of typographical ornaments. Typographical ornaments are distinct from illustrations because they are generic (rather than original) illustrative matter produced by type. Note that we classify illustrative matter that looks potentially generic but is produced by other print technologies (e.g. wood engraving) as an illustration. Illustrations and typographical ornaments form different taxonomies but follow the same handling procedures with <catRef> and its respective attributes.

How to add catRefs: illustration and typographical ornament <catRef>s are descendants of <textClass>, <profileDesc>, and the <teiHeader>. They are self-contained elements that require two attributes: resp and target. The value of resp will be the project ID for the person who is adding the catRef information (e.g. dvpp:prs_ed_kshf). The value of target will be populated from a preconfigured list in the DVPP taxonomies file. See the following example:

<profileDesc>  <textClass>   <catRef target="dvpp:illustrationAbove"    resp="dvpp:prs_ed_kaf"/>  </textClass> </profileDesc>

The following values form our illustration type and placement taxonomy. These values all begin with the string "dvpp:illustration".

  • dvpp:illustrationPhotograph: at least one illustration is identified as a photograph. (See poem 2029.)
  • dvpp:illustrationFromPhotograph: at least one illustration is identified as from a photograph. Note that this is not an actual photograph. (See poem 2671.)
  • dvpp:illustrationWithinPoem: at least one illustration is placed within the poem on the poem page, interrupting it or being surrounded by it. (See poem 262.)
  • dvpp:illustrationAbove: at least one illustration is above the poem. Note distinction from headpiece. Excludes typographical ornaments. (See poem 13485.)
  • dvpp:illustrationBelow: at least one illustration is below the poem. Note distinction from tailpiece. Excludes typographical ornaments. (See second page of poem 337.)
  • dvpp:illustrationAdjacent: at least one illustration is next to the poem on the same page, for example on the left or right hand side. Excludes typographical ornaments. (See poem 251.)
  • dvpp:illustrationFacing: at least one illustration is on facing page to poem. Note distinction from frontispiece. (See first page of poem 337.)
  • dvpp:illustrationFrontispiece: at least one illustration is frontispiece (full page illustration opposite issue/volume title page). Note distinction from illustrationFacing. (See poem 1641.)
  • dvpp:illustrationSideways: at least one illustration is placed sideways to the poem, requiring rotation of the page to view. (See first page of poem 337.)
  • dvpp:illustrationCentral: at least one illustration is placed centrally on the page (with the poem placed above/below/adjacent). Excludes typographical ornaments. (See poem 279.)
  • dvpp:illustrationContaining: an illustration contains the poem. Note that the poem is still letterpress and a separate graphic unit. (See poem 2043.)
  • dvpp:illustrationIntegrated: placement of illustration(s) is integrated with the poem (for complex page layouts, as one graphic unit). poem is intrinsically part of the same graphic unit as the poem. (See poem 2036.)
  • dvpp:illustrationCaption: caption to at least one illustration is illustrated. (See poem 2059.)
  • dvpp:illustrationTitle: poem title is illustrated. (See poem 1939.)
  • dvpp:illustrationPortraitAuthor: at least one illustration contains a portrait of an author. (See poem 320.)
  • dvpp:illustrationBorderDecorative: poem, at least one poem page, and/or illustration have a decorative border. Excludes typographical borders. (See poem 2280.)
  • dvpp:illustrationInitial: Poem has at least one initial letter that is decorative or illustrated. Note that subcategories should be used where possible. (See following examples.)
  • dvpp:illustrationInitialHistoriated: poem has at least one enlarged initial that contains an illustration. (See poem 2007.)
  • dvpp:illustrationInitialDecorated: poem has at least one decorated or illustrated capital letter. Note distinction from illustrationHistoriatedInitial. (See poem 251.)
  • dvpp:illustrationInitialInhabited: at least one enlarged initial contains a human or animal figure. (See poem 1963.)

The following values form our typographical ornament type and placemet taxonomy. These values all begin with the string "dvpp:typographicalOrnament".

  • dvpp:typographicalOrnamentVariant: poem has at least one typographical ornament (placed neither above nor below). (See poem 2039.)
  • dvpp:typographicalOrnamentHeadpiece: poem has at least one typographical ornament placed above it. (See first ornament in poem 3606.)
  • dvpp:typographicalOrnamentTailpiece: poem has at least one typographical ornament placed below it. (See second ornament in poem 3606.)
  • dvpp:typographicalOrnamentInitial: poem has at least one typographical capital letter. (See poem 13765.)
  • dvpp:typographicalOrnamentBorder: poem, at least one poem page, and/or illustration have a typographical border. (See poem 13765.)

When completed, the <profileDesc> and the list of <catRef>s will look something like the following example (from poem 267):

<profileDesc>  <textClass> <!-- Text classification information goes here. We will deal with this if we have time, but don't worry about it for now. -->   <catRef target="dvpp:illustrationCentral"    resp="dvpp:prs_ed_kaf"/>   <catRef target="dvpp:illustrationAbove"    resp="dvpp:prs_ed_kaf"/>   <catRef target="dvpp:illustrationBorderDecorative"    resp="dvpp:prs_ed_kshf"/>  </textClass> </profileDesc>

* When adding illustration <catRef>s, double-check the TEI Header to ensure that there is an illustrator listed in the poem metadata. The presence of an illustrator <respStmt> indicates that the DVPP PI considers the poem to be illustrated. Poems with typographical ornament <catRef>s may not include illustrators.

11.1.2. Encoding illustrations and adding keywords

Figures identify illustrations and ornaments related to poems in our database including facing-page illustrations, headpieces, tailpieces, illustrated initials and titles, and other illustrations within or around poems. <Figures> should not include illustrations unrelated to the poem such as illustrations included as part of prose contributions or illustrations associated with other poems.

Figures should contain <figDesc> elements to describe the illustrations and provide other relevant information about illustration placement, size, and contents. If a poem contains a <figure> element, it should also include a <catRef> statement capturing its placement in relation to the periodical page.

<Figure>s also contain ana keywords to specify the following categories that have meaningful connections to the illustration and/or poem: living things, fantasy and supernatural, settings, objects, concepts and themes, and actions. These categories are nested and can increase in specificity. The following example demonstrates how these categories increase in specificity:

<figure resp="dvpp:prs_ed_sp"  ana="dvpp:fcSettingSettlement dvpp:fcSettingBuildingExterior dvpp:fcObjectTool dvpp:fcLivingThingPersonMultiple dvpp:fcLivingThingPersonChildGirl dvpp:fcLivingThingPersonAdultMan dvpp:fcLivingThingPersonAdultWoman dvpp:fcLivingThingPersonAdultElder dvpp:fcLivingThingAnimal dvpp:fcConceptsandThemesPoverty">  <figDesc>A woman places coins in the outstretched hand of a man wearing all black and facing away and carrying a cane. The man's profile is partially visible underneath his hat. There is a child standing to the woman's right. The man tips his hat to the woman. A leashed dog sits at the man's left side and scratches its ear with its back leg. 2/3 page.</figDesc> </figure>

Ana keywords allow researchers to search all our database of illustrations for subjects and concepts that intertest them. The project has developed a list of ana keywords for consistency across all <figure>s.

Make sure to add your resp statement if you add ana attributes to the <figure>.

11.1.3. Illustration descriptions

<FigDesc>s serve two important functions. First, they provide a means for researchers to search within our collection of illustrations. Second, they make our project more accessible.

Each <figDesc> should include a quick description of the important details of an illustration. To help make searching more efficient, make sure to refer to our project list of synonyms to use (as opposed to other words that mean the same thing).

Finally, your <figDesc> should include a quick description of the illustration's size in relation to the page, following the format of either "1/4 page." or "Full-page illustration." If there is a border surrounding the illustration, include it within that sentence.

If the illustration and the letterpress are integrated in some way (i.e. part of the same graphic unit), make sure to include a description of that relationship as well.

<figure resp="dvpp:prs_ed_kaf"  ana="dvpp:fcSettingSettlementUrban dvpp:fcSettingBodyofWater dvpp:fcLivingThingPlantTree dvpp:fcLivingThingBird dvpp:fcLivingThingInsect dvpp:fcConceptsandThemesDeath dvpp:fcSettingSettlementUrbanCityscape">  <figDesc>Illustration depicts various scenes that intersect with one another. Moving clockwise, the top-left corner shows an urban street at eye level; there is a bird and a butterfly above the street. There are more butterflies in the top-right corner. The hand-drawn title is placed under this section, and a butterfly rests on the “R” and the “O.” The centre-right section shows a shoreline along a large body of water. The bottom-right corner shows a cemetery with many tombstones and large trees. The centre-left section shows birds mid-flight; the birds get larger as they get closer to the bottom of the page. The poem is placed in a double-ruled border in the centre of the illustration. The poem is a separate graphic unit from the illustration; however, parts of the illustration extend within the border, separating the poem between stanzas. Full-page illustration contained within a single-ruled border.</figDesc> </figure>

Note: we always use curly quotation marks and apostrophes in <figDesc>s, as opposed to most computers' default straight ones.

If someone else worked on the <figure> ana keywords, you will need to add your resp to the <figDesc>. However, if you completed both <figure> and <figDesc>, your resp only needs to be on <figure>. In the below example, one RA completed the keywords, while the other wrote the description:

<figure resp="dvpp:prs_ed_kaf"  ana="dvpp:fcFantasySupernaturalBeing dvpp:fcFantasySupernaturalBeingCherub dvpp:fcObjectWeapon dvpp:fcObjectDomestic">  <figDesc resp="dvpp:prs_ed_sp">A winged cherub sits atop a bearded man with large wings. The cherub holds a lightbulb in his right hand and a bowl with an unintelligible inscription in its left hand. The man is barefoot and clothed in a robe and holds a scythe. Stars and circular shapes surround the two figures. The cherub is blowing bubbles out of a pipe. 1/4 page.</figDesc> </figure>

11.1.4. Illustration captions

We use <ab type="caption"> for captions:
<figure resp="dvpp:prs_ed_kaf"  ana="dvpp:fcFantasySupernaturalBeing dvpp:fcFantasySupernaturalMyth dvpp:fcObjectMusicalInstrument dvpp:fcLivingThingBird dvpp:fcLivingThingPlant dvpp:fcSettingBodyofWater">  <figDesc>The god Pan lying on its stomach on the ground and playing a musical instrument. There are birds flying around Pan. 1/3 page contained in a single-ruled rectangular border.</figDesc>  <ab type="caption">HOW THEY LEARN THE NEW SPRING TUNES.</ab> </figure>
In the above example, the caption appears below the illustration, so the <ab type="caption"> is below the <figDesc>. Captions can also appear above illustrations.

11.2. Ornaments

Ornaments are features such as horizontal lines and decorative figures which enhance the text but do not form part of it.

The simplest form of ornament is a horizontal line, which is encoded using the <milestone> element:
<milestone type="lineunit="transition"  style="width: 95%;"/>
This encodes a horizontal line across the page or column, which takes up 95% of the width of the page or column. We assume that a line is centred by default; if it is not, you can add text-align: left; to the style attribute value. The type attribute (whose only legal values so far are line and asteriskLine) specifies what kind of milestone it is. The unit attribute specifies what kind of textual division is symbolized by the line (absent, canto, poem, section, speaker, stanza, or transition). Horizontal lines typically separate the main body of a poem from its corresponding <note> elements. We frequently pair them with the transition value on the unit attribute.
Another type of ornamental divider is a row of asterisks. This can be encoded as follows:
<milestone type="asteriskLine"  unit="absentn="3style="width: 60%;"/>
This encodes a line of three asterisks across the page or column, which takes up 60% of the specified width. The n attribute shows how many asterisks are in the line. Asterisk lines typically represent (or satirically suggest) a textual elision. We frequently pair them with the absent value on the unit attribute. Occasionally, you will find that a different character (such as a middle dot, · Unicode 00B7) is used instead of an asterisk. In this case, put that character into the subtype attribute:
<milestone type="asteriskLine"  unit="absentn="5style="width: 80%;subtype="·"/>

11.3. Marginal braces

Sometimes you may see a number of lines which are distinguished by having a marginal brace, typically a curly brace in the right margin. This is usually done to signal when a rhyming triplet appears in the context of a sequence of couplets.

To encode this, first enclose the lines in a linegroup (<lg>) element, then add rendition=dvpprnd:dvppRightBraced:
<lg rhyme="ccc"  rendition="dvpprnd:dvppRightBraced">  <l> [...] </l>  <l> [...] </l>  <l> [...] </l> </lg>
The private URI scheme dvpprnd points to a rendition element in the taxonomies.xml file which provides a prose description of the phenomenon, since there is no simple CSS property that can be used. When the poem file is transformed into a web page, a rough rendering will be created using CSS and a background image. The value dvpprnd:dvppRightBraced can be combined with other rendition pointers in a space-separated sequence if necessary.

11.4. Drop-capitals

To encode drop-capitals (large initial capitals that extend below the line), which often appear at the beginning of a poem, we use a structure like this:
<lg rhyme="-a-a">  <l>   <hi rendition="#pom_2022_incid_dropCap_1">T</hi>   <hi style="font-variant: small-caps;">he</hi> old man sate beside the fire,</l>  <l style="margin-left: 2em;">His years fourscore and two,</l>  <l>His locks were thin and wintry-white,</l>  <l>But his eyes were bright and blue.</l> </lg>
These are the key points:
  • First you need to insert a special <rendition> in the <tagsDecl> in the header. Place the cursor where you want to insert the rendition, press Control + Shift + R (Command + Shift + R on Mac), and when asked, supply the number of lines that the capital occupies (2 if the drop-cap extends over two lines). The required rendition will be inserted, and then you can fix its xml:id by adding the appropriate poem number etc.
  • Select the character(s) which constitute the drop-cap; usually it is only one character, but sometimes a leading quotation mark and/or space will also be included. Tag them with a <hi> element, and point its rendition attribute at the <rendition> you have created in the header.
  • Any following lines which are pushed over by the drop-cap may need an appropriate margin-left value to position them correctly.

NOTE: This is a crude approach to a potentially very complex problem, so if you're having trouble making it work, talk to the programmer.

11.5. Epigraphs

An epigraph is a quotation that appears at the beginning of the poem. The source information is usually included with the quoted material, but not always. We use <quote> to surround the quoted text and <bibl> to surround the bibliographic material (when included). We use <epigraph> to surround both <quote> and <bibl>:
<epigraph>  <quote>“ Persephone appeared to him in a dream, and complained that she alone of all <lb/> the gods had had no hymn made by him in her honour ; but added that he should <lb/> yet praise her in the land of the dead. Ten days after this the poet died at Argos <lb/> Immediately after, his spectre appeared to an aged dame at Thebes, and recited a <lb/> new hymn to Persephone ; some portion of which she was able to commit to writing.”<lb/>  </quote>  <bibl>—See ‘ Life of Pindar’ in “ Ancient Classics for English Readers.”</bibl> </epigraph>

Sometimes there will be more than one epigraph at the beginning of a poem. In these cases, each are tagged separately with their own <epigraph>, <quote>, and <bibl> tags.

Epigraphs often include poetic lines instead of (or in addition to) prose. We encode these poetic lines using the <l> and <lg> tags within the <quote> tags. We do not encode rhyme or sonic devices within epigraphs.
<epigraph>  <quote style="margin-bottom: 0;">   <l>“ Wandering about in forests old, </l>   <l>When the last purple colour is waxing faint.”</l>  </quote>  <bibl>Barry Cornwall.</bibl> </epigraph>

11.6. Foreign Languages

We use <foreign> when some text appears stylistically different from the surrounding text (typically in italics), and the apparent reason is that the text is in a language other than English. Non-English text often appears in epigraphs.

In these cases, it is good practice to tag the text with <foreign> instead of <emph> or <hi>. When using <foreign>, add the global attribute xml:lang and use a language subtag as the value (see the IANA Language Subtag Registry). This encoding will enable our DVPP language consultants to isolate, translate, and when needed, transcribe non-English text.

<l>In glad <foreign style="font-style: italic;"   xml:lang="la">Te Deum</foreign> for the Spring !</l>

The following language subtags are common in our project.

  • la Latin
  • grc Ancient Greek
  • el Modern Greek
  • fr French
  • it Italian
  • de German
  • es Spanish
  • gd Scottish Gaelic
  • tr Turkish

11.7. Compositor errors

Occasionally, you will come across situations where the printer has made an error. The original error should be transcribed accurately, but you should tag it and supply a correction using the elements <choice>, <sic> and <corr>:
<choice>  <sic>error</sic>  <corr resp="dvpp:id_of_encoder">correction</corr> </choice>
Here is an example:
A typographical error: two lines are incomplete.
Figure 2. A typographical error: two lines are incomplete.
This would be tagged as follows:
<!-- ... --><l>Then rest thee in our porter’s keep,</l> <l>While our brother Francis will <choice>   <sic>re<rhyme type="dvpp:rhymeMasculine"     label="s1">pa</rhyme>   </sic>   <corr resp="dvpp:prs_ed_sk">re<rhyme type="dvpp:rhymeMasculine"     label="s1">pair</rhyme>   </corr>  </choice> </l> <l>To the house of woe, and soothe the <choice>   <sic>sou</sic>   <corr resp="dvpp:prs_ed_sk">soul</corr>  </choice> </l> <l>Of the dying man with <rhyme type="dvpp:rhymeMasculine"   label="s1">prayer</rhyme> !”</l>
The tagging of such errors is done at the word level or above; in other words, the smallest unit of text to be tagged this way is a word. ‘repa’ is first tagged as normal, with its final syllable marked as a rhyme with the <rhyme> element. Next, the word is wrapped in a <sic> tag. The <sic> is wrapped in a <choice> element, and a <corr> element is added as a sibling of <sic>. The complete replacement for the contents of the <sic> is included in the <corr> element, and the resp is added to specify who is responsible for the correction.

12. Text appearance, layout and formatting

As well as transcribing the text and identifying important components of it such as rhyming words, we also want to describe its appearance and layout. To do this, we use Cascading Style Sheet language (CSS). CSS is a language primarily used for formatting documents for display on the World Wide Web, but it is also used in other contexts including the generation of print documents (through XSL:FO), and its terminology has deep roots in the history of typography and print culture. Learning CSS will teach you not only about the language itself, but also much about traditional print technology.

There are two main aspects to our use of CSS: describing layout (margins, indents, padding etc.), and describing text (font sizes, styles and variants).

CSS code consists of individual rules. Each rule consists of a property and a value. The property name is followed by a colon, then the value. Each rule is terminated by a semi-colon. Here are some examples:

font-style: italic;
margin-left: 2em;
font-variant: small-caps; font-size: 120%;

There are a great many different textual features that may appear in your source texts, and a large number of CSS properties that can be used to describe them, so this section cannot be exhaustive, but there are lots of useful online resources that can help you in learning CSS. Here are two good places to start:

12.1. Substantive formatting versus incidental formatting

The DVPP project aims to present a relatively consistent rendering of poetry across the whole collection, but of course individual periodicals have different idiosyncracies in the ways they choose to lay out and style their poems. Some aspects of layout can be viewed as crucial components of the poem itself: for example, when line-indents vary within a stanza, the reader’s experience of the stanza will be different, because relationships between lines or sets of lines are made explicit. We view this kind of styling as substantive, and we always show it in the default rendered view. Italics used for emphasis would be another example of a substantive feature.

Other types of styling are incidental (not substantive): examples include illustrated capitals, small-caps rendering of the poem's initial word, layout changes caused by intrusive or enclosed graphical features and figures, periodical-specific styling of headings or titles, periods at the end of poem titles, and so on. We encode such features so that we can render them in a diplomatic view of the poem, but we also need to be able to suppress them in the regular view. This means that we need to distinguish the CSS for the incidental features from the CSS for the substantive features. We do this by using <rendition> elements with a specific string '_incid_' in its xml:id. You will see examples of this below.

12.2. Connecting CSS with the text

Our current practice requires that all CSS be provided using <rendition> elements in the header of the poem file. In earlier phases of the project, we allowed CSS to be included directly on elements in the text using the style attribute, but this approach is now deprecated and we will be converting all our legacy encoding.

Imagine that there is a short run of text which is rendered in ‘small-caps’ on the periodical page. Small-caps is a font variant in which capital letters are rendered as normal capitals, but lower-case letters are replaced by smaller versions of capital letters. It is quite common for the first part of the first line of a poem to be rendered in small-caps during the Victorian period. In order to capture this, we need to know:

  • What is the CSS code for this? (Answer: font-variant: small-caps;.)
  • Is this incidental or substantive? (Answer: this is incidental; it is a feature of the house style of some periodicals, and does not really alter the reader's experience of the poem.)
  • Where do we put the CSS code? (Answer: in a <rendition> element in the <teiHeader>, as we'll demonstrate below.)
  • How do we connect the string of text to the small-caps style? (Answer: by tagging the text with a suitable element, and then pointing its rendition attribute at the xml:id of the <rendition> element in the header.)

This is how it works:

In the <teiHeader>/<encodingDesc>/<tagsDecl> element, you create a <rendition> element like this:

<rendition xml:id="pom_22345_incid_small-caps">font-variant: small-caps;</rendition>

The <rendition> element must have an xml:id which is unique throughout the project. To create the xml:id value, take part of the value of the xml:id attribute on the root <TEI> element, and add an underscore, then a brief descriptive word or phrase. The part you need to take from the xml:id is the first bit: pom_xxxx. That's enough to ensure that the xml:id of your <rendition> is unique. In the case of incidental styles, the xml:id must include _incid_ (which specifies that it's incidental), followed by something usefully descriptive. For substantive styles, just use something descriptive, without _incid_.

Next, in the first line of the poem, we add a <hi> element wrapping the relevant text:

<l>  <hi rendition="#pom_22345_incid_small-caps">It was a dark</hi> and stormy night, </l>

The rendition attribute points to the xml:id of the <rendition> element.

12.3. CSS for layout

Layout information is usually associated with block-level elements. These are elements which form a block on the page (in other words, they have a line-break before and after them). In our TEI encoding, the principal block-level elements are:

There are a number of features we may want to capture for any block-level element:

  • width: width: 25em;
  • margin-left: margin-left: 0.5em;
  • margin-right: margin-right: 1em;
  • margin-top: margin-top: 2em;
  • margin-bottom: margin-left: 2.5em;
  • text-align: text-align: center;

This example encodes a stanza which has a top margin of 1em, and is indented (margin-left) by 3em (the width of 3 "m" characters); it has four lines, and the second and fourth lines are indented a further 1em:

<!-- In the header --><tagsDecl>  <rendition xml:id="pom_22345_stanza">margin-left: 3em; margin-top: 1em;</rendition>  <rendition xml:id="pom_22345_line">margin-left: 1em;</rendition> </tagsDecl> <!-- In the poem --> <lg type="stanza"  rendition="#pom_22345_stanza">  <l> <!-- line -->  </l>  <l rendition="#pom_22345_line"> <!-- line -->  </l>  <l> <!-- line -->  </l>  <l rendition="#pom_22345_line"> <!-- line -->  </l> </lg>

(Note that the requirement to repeat the line indent rendition attribute on every second line in the poem can be avoided; see below for more details.)

12.4. CSS for text styles

CSS for layout (margins, widths etc.) can only be applied to block-level elements, but CSS for describing text styles (italics, small-caps, etc.) can be applied at any level, including block-level elements. When you see text which is distinguished in some way, first see if you can apply a useful tag to describe it; then create a suitable <rendition> element in the header (if you don't already have one which describes the same features) and add the rendition attribute to that tag, to show how it appears. Imagine that the phrase ‘a soul’ is in italics in the original. You may decide that this is because the author wants to emphasize it, so you can use the TEI <emph> element to tag it:

<l>But it has <emph>a soul</emph> within:</l>

Then, in the header, you can add this:

<!-- In the header --><rendition xml:id="pom_22345_emph">font-style: italic;</rendition>

and then add the rendition attribute to point to it:

<l>But it has <emph rendition="#pom_22345_emph">a soul</emph> within:</l>

Sometimes you can use a convenient tag that is already in place:

<!-- In the header: --><rendition xml:id="pom_22345_incid_head">font-variant: small-caps; font-size: 1rem;</rendition> <!-- In the text: --> <head rendition="#pom_22345_incid_head">An Ode to Elephants</head>

Sometimes, however, it's not clear why a particular piece of text is formatted in a special way, so you need to use a generic tag to wrap it. Use the <hi> tag for this:

<l>  <hi style="#pom_22345_incid_small-caps">Papers</hi> must not contain above </l>

These are a few examples of CSS properties and values you might use to describe text formatting:

  • font-style: italic;
  • font-variant: small-caps; (used when all text is in capitals, but "capital" letters are bigger than "small" letters)
  • font-size: 120%; (size is relative to the existing inherited font size; also you can use 1.2em for the same result)
  • text-decoration: underline;
  • font-weight: bold;

12.5. Avoiding repetitive CSS

Often you will find that the same block of CSS code is repeated throughout your poem. Perhaps the last line of the poem is a refrain, which is always in italics, and indented by 2 ems:

<lg type="stanza">  <l> <!-- line -->  </l>  <l> <!-- line -->  </l>  <l> <!-- line -->  </l>  <l rendition="#pom_22345_lastLines">Hurrah! Hurrah!</l> </lg>

It is tiresome to copy and paste that code repeatedly in the file. There is a simpler solution.

Go to your <rendition> element, and add a selector attribute like this:

<rendition xml:id="pom_22345_lastLines"  selector="l:last-of-type">margin-left: 2em;</rendition>

What this says is ‘apply this style to every <l> element which is the last <l> in its parent element.’ Now you can simply remove the rendition attributes from all those lines.

Other useful forms you can use in the selector attribute include:
  • selector=lg (all <lg> elements)
  • selector=l:first-of-type (all <l> elements which are the first <l> children of their parent element)
  • selector=l:nth-of-type(even) (all <l> elements which in positions 2,4,6,8 etc. in their parent element)
  • selector=l:nth-of-type(odd) (all <l> elements which in positions 1,3,5,7 etc. in their parent element)
You can also chain selectors together with commas in the selector attribute:
<rendition selector="l:nth-of-type(2), l:nth-of-type(5)"> margin-left: 1em; </rendition>
In other words, without any encoding at all in the body of your poem, every second and fourth line in every stanza will be indented. Obviously you can only use this feature for cases where all or most of the stanzas are laid out in the same way, but that is often the case with the poems we are encoding.

What’s new and difficult here is the language used in the selector attribute. This is the language of CSS Selectors, which you can learn about on any of the sites which teach basic CSS. It can be a bit tricky to master, but in most cases on this project, learning a few simple recipes will enable you to do a lot of effective CSS encoding right in the header of the document.

13. Advanced CSS

This section introduces some more sophisticated uses of CSS and shows some common methods of hiding and showing features and content based on whether it is incidental or not.

13.1. Upper case versus title case, periods and linebreaks

Our site styleguide calls for poem titles and bylines to be rendered in sentence case, but the original print poems are often all-upper-case. In addition, our site styles provide standard font sizes for poem headings and bylines, but the original size and peculiarities such as letter-spacing should also be captured for the diplomatic view. Finally, titles in the Victorian period were often terminated with a period, but we no longer do that, so we need to make it possible for a final period to appear in the diplomatic view, but not in the normalized view. Here is a worked example.

Imagine the title you see on the page looks something like this:


However, we need to present the title in the normalized view as:

The Vision

First of all, we transcribe in sentence case, including the period:

<head>The Vision.</head>

Now we create a <rendition> element in the header and link to it:

<!-- In the header. --><rendition xml:id="pom_22346_incid_head">text-transform: uppercase; font-size: 1rem; letter-spacing: 0.1em;</rendition> <!-- In the poem. --> <head rendition="#pom_22346_incid_head">The Vision.</head>

This ensures that when the reader switches to the diplomatic view, the text will appear in upper-case, and the font size will be set to the base font size (1rem), which will match the poem text itself, and the letter-spacing feature will be accurately represented. That just leaves us with the problem of the final period. Here we need to create two <rendition> elements, one to hide and one to show the period:

<!-- In the header. --><rendition xml:id="pom_22346_hidden">display: none;</rendition> <rendition xml:id="pom_22346_incid_displayInline">display: inline;</rendition> <!-- In the poem. --> <head rendition="#pom_22346_incid_head">The Vision<hi rendition="#pom_22346_hidden #pom_22346_incid_display_inline">.</hi> </head>

The result of this will be that the period is hidden by default, but when the diplomatic view is selected, the incidental stylesheet will be switched on, and the second rendition will go into effect, showing the period.

We can take a similar approach to linebreaks appearing inside poem titles. In our normalized view, we usually present poem titles as a single line, but the original may include linebreaks we want to capture. We use the same strategy as before, but now we need display: block; rather than display: inline;:

<!-- In the header. --><rendition xml:id="pom_22347_hidden">display: none;</rendition> <rendition xml:id="pom_22347_incid_displayBlock">display: block;</rendition> <!-- In the poem. --> <head> Song of the <lb rendition="#pom_22347_hidden #pom_22347_incid_displayBlock"/> Chartist Emigrant </head>

Now the title will appear on one line in the normalized view, but the linebreak will appear as soon as the diplomatic view is selected.

13.2. Mixed-column layouts

Some periodicals present poems at the full page-width, while others place them in a normal column layout in which the whole poem is contained within one column or runs from column to column. Neither of these cases is problematic; we write our layout CSS on the basis that the column is the containing ‘page’, and although we record column breaks with the <cb> element, we don’t worry about rendering them.

However, there are problematic cases in which a single poem has some components which span multiple columns, but has others that are contained within columns. For example, a poem might have its title, author and epigraph arranged so they span two columns, while the stanzas themselves are in columns. This is problematic because we have decided that both the normalized and diplomatic views should present the poem as a single column; we need a wide page to render the title matter, but a narrower page to arrange the stanzas in a single column. This section explains how we handle this in the CSS.

The first thing we do is to set the page width on the basis of the main title matter:
<rendition xml:id="pom_11310_incid_poem">font-size: 1rem; width: 37em;</rendition>
Then we check that the title matter is styled and rendering appropriately. If we now look at the stanzas in the diplomatic view, they will appear aligned to the left, leaving a lot of whitespace on the right, which is no good. So, assuming that the stanzas are in two columns, we give them a much narrower area in which to appear:
<rendition xml:id="pom_11310_incid_column"  selector="lg lg">width: 50%; margin-left: auto; margin-right: auto;</rendition>
In this example, the main stanzas are contained within an outer <lg> element, so what we’re doing here is to set the width of the stanzas to 50%, then give them auto-margins left and right, which will arrange them so they look ‘centred’ within the main page space.
This should solve the immediate problem, but in many cases, you’ll find that there are other components of the poem flow that, like the title matter, span two columns. Some of these, such as footnotes, may even appear within stanzas themselves. We can handle this by adding CSS to reverse the effect of the ruleset shown above:
<rendition xml:id="pom_11310_incid_fullWidth"  selector="lg lg note">margin-left: -50%; margin-right: -50%;</rendition>
This says that any <note> element appearing within a stanza should have negative left and right margins, stretching it back out to the full page width.

14. Inverted line wrap and hung word

‘Inverted line wrap’ is our term for the situation in which a poetic line is too long for the space and so one or more words are wrapped, but they are wrapped to the line above rather than the line below. See the first stanza of this poem for an example. The formal term for this is a hungword; when the word, part-word or phrase is wrapped above the line, it's a turnover, and below the line it’s a turnunder. When the turnover or turnunder shares a typographical line with another poetic line, a square bracket is usually used to signal that it belongs to the preceding or following line.

Since we want to transcribe the text in its logical order, rather than in its typographical order, we have to move the turnover or turnunder to its typographical position using CSS. There are normally two things we need to do: first, we need to encode the fact that the line wraps above or below, and capture its position correctly. Secondly, we need to use a special encoding pattern for the square bracket, because it is not part of the poem text; it is merely a typographical symbol. The original poet surely did not write the square bracket, and when we index the poem for search purposes, or render it in a modernized or regularlized form, we don't want to include it. Thirdly, since the turnunder or turnover is not a substantive feature, we need to encode it as an ‘incid’, so that it only appears rendering the poem in diplomatic view.

First, we need to create a <rendition> in the header which describes how the text is moved relative to the position in which we would expect to see it. This is an example of how you would do that:
<rendition xml:id="pom_11429_incid_wrapUp">display: block; position: relative; margin-top: -2.3em; margin-left: 12.2em;</rendition>
To style the inverted line wrap, we need to specify that it is behaving as a block; that it appears above where we would normally expect to see it; and that it has a large left margin (to bring it over towards the right side of the column or page).
Now we tag the wrapped component, and point it at the <rendition> element:
<l>And makest the cliffs with sunshine <hi rendition="#pom_11429_incid_wrapUp">[bright ;</hi> </l>
The final requirement is to tag the square bracket that appears before the word in its wrapped position. We need to make it disappear in the normalized view. We can do this with a <pc> element:
<pc type="hung"  rendition="#pom_11429_hidden #pom_11429_incid_showInline">[</pc>
Here we use the standard <rendition> elements that should appear in the header of all transcribed poems, hiding the character by default, and then showing it again when the diplomatic view is selected.

The same process can be undertaken with a turnunder, although the margin values will be different, of course; by default, when the end of a line is rendered as a block, it will automatically appear below the current line, so the vertical margin adjustment will probably be a minor tweak, but the left margin values will be similar.

15. Notes

There are two kinds of notes that need to be encoded in the text: original notes (usually footnotes, appearing on the printed page) and editorial notes (notes made by members of the project team, explaining, elucidating, annotating and so on). These are encoded slightly differently.

15.1. Original notes

This page shows a typical example of an original note, signified by an asterisk in the text and a footnote at the bottom of the page. Transcribe these exactly as they appear, with the asterisk as a regular character in the text, and the footnote encoded as a <note> element at the bottom:
<head>THE BUILDING OF THE PALACE OF THE LAMP *.</head> <!-- ... --> <milestone type="lineunit="transition"  style="width: 45%;"/> <note>* Or, as it might be rendered, of the Illuminati.</note>
Use style attributes (not included here for simplicity's sake) to capture the typographical features of the note. This use of the <note> element does not use the rest attribute.

15.2. Editorial notes

You will sometimes need to add an editorial note to the text you are editing. Use the <note> element to do this, with the resp attribute to specify who is responsible for the note. Here is an example:

<l>The tin advertisements</l> <l>For cocoa and twist,<note resp="dvpp:prs_ed_mdh">Twist is chewing tobacco.</note> and the pubs</l> <l>Wide open all day—</l>

Use the resp attribute to point to your own entry in the project personography.

16. Standoff Markup

Much of our encoding takes the form of standoff markup, in that we use pointers to link to definitions of things outside individual poem files. In this section, we discuss some of the files which are pointed to, and how they are maintained and edited.

16.1. Link Groups

In the xml/linkGrps.xml file, there is a set of <linkGrp> elements that look like this:
<linkGrp ana="dvpp:lkSameProseItem">  <ptr target="dvpp:pom_1095_a_duet"/>  <ptr target="dvpp:pom_1096_four_quatrains"/> </linkGrp>
The purpose of these link groups is to build collections of things which are related, along with an explanation of their relatedness. This is a significant improvement over the ‘Related poems’ field in the database, which simply links two or more poems together that (aside from editorial notes on the poem record pages) did not specify their precise relatedness. When a large collection of poems is related in some way, exhaustively adding links in the database is a painful process. It makes more sense to describe those links in the TEI, and then bring them into the web output mechanically. Each link group will have its own page in the site, using its heading and explanation, and a list of all the things linked; and each thing linked will have an entry on its page pointing to the link group. On individual poem pages, each link group of which the poem is a member will have an entry consisting of a brief explanation of the link type and a set of links to all the other poems in that group.

The ana attribute is the mechanism that categorizes the linkGrp (in other words, describes the relationship which links them all). This set of values is built into the schema from a taxonomy which is stored in the xml/taxonomies.xml file. Each category in the taxonomy includes a short caption (the n attribute) and a longer explanation (in the <catDesc> element). As an encoder working on linkGrps, you do not need to worry about this; just assign the appropriate value to the ana attribute when you create the <linkGrp>.

Researching this grouping information can be tricky, and is best accomplished by using as many useful resources as possible, including the facsimile viewer and search page on the latest Jenkins build of the DVPP site.

Note that there is one additional use of the <linkGrp> element, where it has ana=lkSubcollection. That usage is discussed in 18. Site information pages.

17. Proofing and publishing

After a document has been encoded, it needs to be proofed, and then undergo a final check before being published. Part of the encoder's job is to proof the encoding of other members of the team (so you can't proof your own encoding). This is a basic checklist of things to look at when proofing:

If you encounter encoding of a type we have not yet worked on in this phase of the project (such as <catRef> elements in <textClass>), simply leave it alone. On the other hand, if you see something which we would definitely not do according to our current praxis (such as a lengthy editorial note attached to the poem), just comment it out.

When you have finished proofing a document, you need to add or modify the <revisionDesc> element to record what you have done; see the section on The revision description for details.

18. Site information pages

Poems are not the only pages on the DVPP website, of course. There are many pages which are generated automatically, consisting of lists of poems for each specific periodical and/or year. There are also straightforward information pages, such as the About DVPP page and the Our team page. These pages are also generated from TEI sources, stored in the dvpp/pages folder.

If you examine the XML in these pages, you‘ll see that it is mostly very straightforward TEI, with a couple of exceptions. Sometimes you will see something like this:
<divGen type="poetsByNationality"  n="Scottish"/>
This is a special type of TEI <div> whose purpose is to trigger the automatic generation of a real TEI <div> containing a specific kind of content or listing. The example above causes the generation of a table of poets who are assigned the nationality ‘Scottish’; any similar <divGen> could be used to cause the generation of a list of poets with any of the nationalities in our prosopography. The obvious advantage over a hard-coded list of people is that, as more Scottish poets are added to the prosopography, they automatically appear in the list.

Obviously these things are not magic; the programmer has to know what is required, and write the code to generate the content. But this is usually quite straightforward, so if you have any need to generate lists of this sort in an information page, just let the programmer know what you need, and it will happen.

Sometimes you may want to create a poem listing which is purely curated rather than auto-generated in some way. This can be done using a <linkGrp> with ana=lkSubcollection, like this:
<linkGrp ana="dvpp:lkSubcollection">  <ptr target="dvpp:pom_9689_the_ring_and_the_stream_a"/>  <ptr target="dvpp:pom_1477_a_womans_question"/>  <ptr target="dvpp:pom_1757_in_memoriam_adelaide_anne"/> </linkGrp>
Here, all you need to do is to list pointers to the poems required, and a table will be constructed in the output page listing those poems with their full details.

19. For programmers: How to do stuff

The lead programmer is Martin Holmes, so ask him first if he's around. If he's not, and stuff needs to be done, this is how to do it. Before trying to do programmer-type things, make sure you've configured your machine thusly:

The project has two main components:

The svn repository also includes backups of the MySQL database in SQL and XML format, which are used in various build processes and refreshed regularly (see below).

Most project work is done in Oxygen, and the entire team shares the same dvpp.xpr file, which includes a lot of useful configuration stuff such as Author mode CSS, code templates, file associations and so on. When working on DVPP, always load the project file in Oxygen.

There is a complex set of dependencies between the database (which is the canonical source of most of the metadata) and the TEI XML files, which are the canonical source for encoding work and some other components. This relationship will eventually dissolve, when the database is retired and the XML becomes the final repository for all data, but for the moment, both sources are needed. More information on this is provided below.

19.1. How to refresh the database dumps and statistics

The MySQL database which stores all the indexing information is called ‘vpn’. Dumps from this database, in both SQL (vpn_live_latest.sql) and XML (vpn_live_latest.sql) format, are regularly put into SVN so that we have lots of options for recovery, rollback and forensics if we need it. The database server is set up to dump the two files every night at midnight into my home1t account, and you can get them from|(xml)) (note that the filenames are slightly different from those in svn). You can do this refresh automatically by running this in the root of the svn checkout:

ant adminRemote

This brings down fresh versions of the dbs, and also refreshes the statistics file, stats.sts, which is used to track our progress over the long term. The ant task will attempt to commit the changes back to the repository, but that may fail if you don't have SSH keys set up with the svn server, so you may need to commit manually at the end of the process.

19.2. Refreshing the XML

This process must be undertaken regularly as long as the MySQL database is being edited. It is quite fraught with danger and complicated, so don't try it on a Friday afternoon with only ten minutes to spare; choose a time when no-one will be editing anything (db or XML), and give yourself plenty of time to check the results and fix any oddities.

First, it's important to explain what this process does and why it exists. The DVPP project has two distinct canonical data repositories: one is the MySQL database, in which all metadata about all poems is collected and edited, and the other is an XML document collection, in which transcriptions and encoding of actual poems is stored. The eventual aim is to store all data in the XML files only; they can easily handle all the metadata alongside the transcription, and they're must easier to process. But while the indexing process is still continuing, the database must be maintained, and the data collected and corrected in it is the canonical source for metadata for all the poems. At the same time, the XML files are the canonical repository for the transcription and annotation data. So inside the same TEI file, there will be data which is maintained by editing that file, and data which is maintained externally in the MySQL database.

Periodically, therefore, we need to refresh the XML collection to update the data in it with the latest changes and additions from the MySQL database. This involves:

  • Creating a new TEI file for each new poem which has been added to the index;
  • Updating the metadata in the <teiHeader> of any poem whose metadata in the database has changed since the last time the process was run;
  • Creating a new TEI file with a new name for any poem whose title has changed in the database, because the title is canonical db metadata, and the TEI XML file name is generated directly from the title. When a new file is created for a poem which already had a TEI file, any transcription in the old file must be incorporated into the new file, and the old file must be deleted from svn when the new one is added.
  • Any TEI files previously created for poems which have now been deleted from the database must be identified and purged from the TEI collection.

As you can imagine, this is both complicated and risky, so it is undertaken in stages, with human oversight.

19.2.1. How the process works

Stage 1: generating TEI files
  • An XSLT file called xsl/sql_to_tei_master.xsl is run. This loads the latest XML version of the MySQL database dump.
  • The process does all of its work in temporary folders; nothing in the original xml folder is touched until the end of the process.
  • For each poem it finds in the database, it uses the poem database id to find whether there is an existing TEI file. Because the TEI files have names and xml:id attributes starting with pom_xxxx_, where xxxx is the id number of the poem in the database, it is possible to find a matching file even if the poem title has changed, so the rest of the filename would also have changed.
  • If there is no matching existing file, then the process simply creates a brand-new TEI file in the temporary collection folder.
  • If an existing file is found, then a new file is still created, because other metadata such as the title, the issue, the year, or any other component that controls the filename or its location in the folder tree may have changed. The content of that new file consists of freshly-processed metadata from the database, along with all the existing canonical TEI encoding from the original file.
  • All the newly-created files are validated with RELAX NG and Schematron, and if any don't validate, the process stops.

Once Stage 1 is complete, there is a new temporary folder called tempXml which contains a new collection of TEI files. Most of these will not have changed in any meaningful way, but the process makes a point of adding a comment which includes the current date, so that every single file should be different from its original. This is necessary for Stage 2:

Stage 2: Merging the new files back into the SVN collection
  • The newly-created collection is copied back into the real xml folder. This results in four kinds of file:
    1. Brand-new files which did not exist before, because they have only recently been added to the database.
    2. Existing files which have changed. This includes all files which previously existed, and whose filename/id has not changed as a result of changes to the database.
    3. New files which were not in existence before, but whose contents partly derive from old files that already existed. These files appear because the metadata in the database which controls the filename of the TEI file has changed. Because the id is consistent, the data can be harvested from the old file and merged into the new.
    4. Files which have not changed at all, because either they no longer exist in the MySQL database for some reason (and should therefore disappear from the XML collection), or because their original metadata changed, and a new file with a slightly different name has been created to replace them.
  • A shell script called is now run. Its job is to analyze the merged repository, and generate two more scripts, based on the dates of files in the repo. The shell scripts it generates are:
    1. This script lists any files which are new to the repo, and thus not being tracked yet, and calls svn add to add each one to the repository. This takes care of types 1 and 3.
    2. this script lists files of type 4, which should no longer be in the repo. However, it does not delete them; it simply moves them to a folder called obsolete. We do this out of an abundance of caution, and based on long experience.

The human programmer should then examine both of these generated scripts carefully, and pick out some examples from each to check the actual files against the database records to make sure that nothing has gone wrong. When convinced that the process has worked correctly, he/she can run those two scripts to make the svn changes, then do ant -f buildTEI.xml updatePoemIds followed by svn commit to push everything to the repository. The former step is required because the poemIds.xml file, in the root of the repository, provides a quick lookup map between the db's numeric ids and the longer and more descriptive XML ids; if a poem’s title has changed, then its XML id will change, causing an svn delete of the old file and an svn add of the new file, and that process will invalidate the lookups, as will the removal of poems or the addition of new ones.

Note that type two files don't require any special intervention; the svn commit will handle them.

19.2.2. How to run the process

Although it is possible to run this process to refresh the entire collection of TEI files, that is not recommended because of the scale of checking involved. Instead, it makes more sense to run this process for a specific year of a specific periodical, especially after an indexing process or proofing check has been completed for that year and periodical.

This is how to execute the process:

In a terminal, inside the root project folder, first make sure you have the latest version of the database dumps:

ant adminRemote

Then, to refresh the XML for a specific periodical and year (the recommended approach), run this:

ant -f buildTEI.xml -Dperiodical=chambers_series -Dyear=1840

If the process completes successfully, you should see the following messages:

A file called has been created.
Check its contents; if there are no oddities,
make it executable and run it to move
obsolete files out of the xml folder.
A file called has been created.
Check its contents.
If there are no oddities, make it executable and run
it to add new files to the svn repository.

Once you have checked to make sure all is well, you can run those two files, then:

svn commit -m "TEI file collection refreshed from MySQL database data."

If there is some pressing reason to re-process the entire collection, you can do this by omitting the year and periodical parameters in the above ant command.

19.3. How to OCR a year

Our transcription and encoding process is able to go much faster when we provide OCRs of the page-images for transcribers to take as the basis for their work. The process is set up to run for all poems in the collection for a specific year, in a single operation; so you can OCR all of (e.g.) 1870 in one go. After making sure that your local svn copy is up to date, just do this in the root of the svn repo:

ant -f buildOCR.xml -Dyear=1870

supplying the required target year. You can also OCR a single periodical for a single year, like this:

ant -f buildOCR.xml -Dyear=1870 -Dperiodical=chambers_series

which passes the exact name of the folder for that periodical inside the xml folder. This is what the process actually does:

  • Start building a shell script which will do the actual work.
  • Check the TEI file for each poem in the collection which dates from the target year.
  • If the poem already has transcription or OCR, ignore it.
  • If the poem hasn't yet been transcribed or OCRed, process it as follows.
  • Analyze the XML file to get the paths to page-images for the poem.
  • Add lines to the shell script to curl the images for that poem, then run tesseract to create OCR output.
  • Run the shell script to do all the OCR (this takes a while).
  • Insert the results of the OCR into copies of the poem XML files, as a comment.
  • Validate all the transformed XML files.
  • If they're all valid, copy them back over the originals.

If this completes successfully, there's nothing else you need to do except commit the changes back to the repository. It's safe to run this process on the same year over and over again, as new poems get added to the index and eventually find their way into the XML collection, because poems that have already been OCRed or encoded are ignored, and only new files will be processed. However, if you need to re-process old files (perhaps because better images have been captured, or the original OCR process was unsatisfactory for some reason), you can add the flag


when running the Ant task.

Appendix A

Appendix A.1 Elements

Appendix A.1.1 <TEI>

<TEI> (TEI document) contains a single TEI-conformant document, combining a single TEI header with one or more members of the model.resource class. Multiple <TEI> elements may be combined within a <TEI> (or <teiCorpus>) element. [4. Default Text Structure 15.1. Varieties of Composite Text]
Module textstructure
version specifies the version number of the TEI Guidelines against which this document is valid.
Status Optional
Datatype teidata.version

Major editions of the Guidelines have long been informally referred to by a name made up of the letter P (for Proposal) followed by a digit. The current release is one of the many releases of the fifth major edition of the Guidelines, known as P5. This attribute may be used to associate a TEI document with a specific release of the P5 Guidelines, in the absence of a more precise association provided by the source attribute on the associated <schemaSpec>.

Member of
Contained by
core: teiCorpus
textstructure: TEI
May contain
header: teiHeader
linking: standOff
textstructure: TEI text
transcr: facsimile

This element is required. It is customary to specify the TEI namespace on it, for example: <TEI version="4.4.0" xml:lang="it" xmlns="">.

<TEI version="3.3.0" xmlns="">  <teiHeader>   <fileDesc>    <titleStmt>     <title>The shortest TEI Document Imaginable</title>    </titleStmt>    <publicationStmt>     <p>First published as part of TEI P2, this is the P5          version using a namespace.</p>    </publicationStmt>    <sourceDesc>     <p>No source: this is an original work.</p>    </sourceDesc>   </fileDesc>  </teiHeader>  <text>   <body>    <p>This is about the shortest TEI document imaginable.</p>   </body>  </text> </TEI>
<TEI version="2.9.1" xmlns="">  <teiHeader>   <fileDesc>    <titleStmt>     <title>A TEI Document containing four page images </title>    </titleStmt>    <publicationStmt>     <p>Unpublished demonstration file.</p>    </publicationStmt>    <sourceDesc>     <p>No source: this is an original work.</p>    </sourceDesc>   </fileDesc>  </teiHeader>  <facsimile>   <graphic url="page1.png"/>   <graphic url="page2.png"/>   <graphic url="page3.png"/>   <graphic url="page4.png"/>  </facsimile> </TEI>
<sch:ns prefix="tei"  uri=""/> <sch:ns prefix="xs"  uri=""/>
<sch:ns prefix="rng"  uri=""/> <sch:ns prefix="rna"  uri=""/>
<sch:ns prefix="sch"  uri=""/> <sch:ns prefix="sch1x"  uri=""/>
Content model
  <elementRef key="teiHeader"/>
    <classRef key="model.resource"
     minOccurs="1" maxOccurs="unbounded"/>
    <elementRef key="TEI" minOccurs="0"
   <elementRef key="TEI" minOccurs="1"
Schema Declaration
element TEI
   attribute version { text }?,
   ( tei_teiHeader, ( ( tei_model.resource+, tei_TEI* ) | tei_TEI+ ) )

Appendix A.1.2 <ab>

<ab> (anonymous block) contains any component-level unit of text, acting as a container for phrase or inter level elements analogous to, but without the same constraints as, a paragraph. [16.3. Blocks, Segments, and Anchors]
Module linking
type characterizes the element in some sense, using any convenient classification scheme or typology.
Derived from att.typed
Status Required
Datatype teidata.enumerated
Legal values are:
(The caption for a figure.) A figure caption should be encoded using <ab> with type=caption; if the caption appears above the figure, place the <ab> before the <figDesc>, and if it's below, place it after.
Member of
Contained by
May contain

The <ab> element may be used at the encoder's discretion to mark any component-level elements in a text for which no other more specific appropriate markup is defined. Unlike paragraphs, <ab> may nest and may use the type and subtype attributes.

<div type="bookn="Genesis">  <div type="chaptern="1">   <ab>In the beginning God created the heaven and the earth.</ab>   <ab>And the earth was without form, and void; and      darkness was upon the face of the deep. And the      spirit of God moved upon the face of the waters.</ab>   <ab>And God said, Let there be light: and there was light.</ab> <!-- ...-->  </div> </div>
<sch:rule context="tei:ab"> <sch:assert test="parent::tei:figure"> The ab element may only appear within a figure element.</sch:assert> </sch:rule>
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not( ancestor::tei:floatingText |parent::tei:figure |parent::tei:note )"> Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText. </sch:report>
Content model
 <macroRef key="macro.abContent"/>
Schema Declaration
element ab
   attribute type { "caption" },

Appendix A.1.3 <abbr>

<abbr> (abbreviation) contains an abbreviation of any sort. [3.6.5. Abbreviations and Their Expansions]
Module core
type (type) allows the encoder to classify the abbreviation according to some convenient typology.
Derived from att.typed
Status Optional
Datatype teidata.enumerated

The type attribute is provided for the sake of those who wish to classify abbreviations at their point of occurrence; this may be useful in some circumstances, though usually the same abbreviation will have the same type in all occurrences. As the sample values make clear, abbreviations may be classified by the method used to construct them, the method of writing them, or the referent of the term abbreviated; the typology used is up to the encoder and should be carefully planned to meet the needs of the expected use. For a typology of Middle English abbreviations, see 6.2.

Member of
Contained by
May contain

If abbreviations are expanded silently, this practice should be documented in the <editorialDecl>, either with a <normalization> element or a <p>.

<choice>  <expan>North Atlantic Treaty Organization</expan>  <abbr cert="low">NorATO</abbr>  <abbr cert="high">NATO</abbr>  <abbr cert="highxml:lang="fr">OTAN</abbr> </choice>
<choice>  <abbr>SPQR</abbr>  <expan>senatus populusque romanorum</expan> </choice>
Content model
 <macroRef key="macro.phraseSeq"/>
Schema Declaration
element abbr
   attribute type { text }?,

Appendix A.1.4 <abstract>

<abstract> contains a summary or formal abstract prefixed to an existing source document by the encoder. [2.4.4. Abstracts]
Module header
Member of
Contained by
header: profileDesc
May contain

This element is intended only for cases where no abstract is available in the original source. Any abstract already present in the source document should be encoded as a <div> within the <front>, as it should for a born-digital document.

<profileDesc>  <abstract resp="#LB">   <p>Good database design involves the acquisition and deployment of      skills which have a wider relevance to the educational process. From      a set of more or less instinctive rules of thumb a formal discipline      or "methodology" of database design has evolved. Applying that      methodology can be of great benefit to a very wide range of academic      subjects: it requires fundamental skills of abstraction and      generalisation and it provides a simple mechanism whereby complex      ideas and information structures can be represented and manipulated,      even without the use of a computer. </p>  </abstract> </profileDesc>
Content model
 <alternate minOccurs="1"
  <classRef key="model.pLike"/>
  <classRef key="model.listLike"/>
  <elementRef key="listBibl"/>
Schema Declaration
element abstract
   ( tei_model.pLike | tei_model.listLike | tei_listBibl )+

Appendix A.1.5 <add>

<add> (addition) contains letters, words, or phrases inserted in the source text by an author, scribe, or a previous annotator or corrector. [3.5.3. Additions, Deletions, and Omissions]
Module core
Member of
Contained by
May contain

In a diplomatic edition attempting to represent an original source, the <add> element should not be used for additions to the current TEI electronic edition made by editors or encoders. In these cases, either the <corr> or <supplied> element are recommended.

In a TEI edition of a historical text with previous editorial emendations in which such additions or reconstructions are considered part of the source text, the use of <add> may be appropriate, dependent on the editorial philosophy of the project.

The story I am going to relate is true as to its main facts, and as to the consequences <add place="above">of these facts</add> from which this tale takes its title.
Content model
 <macroRef key="macro.paraContent"/>
Schema Declaration
element add

Appendix A.1.6 <addName>

<addName> (additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. [13.2.1. Personal Names]
Module namesdates
type characterizes the element in some sense, using any convenient classification scheme or typology.
Derived from att.typed
Status Required
Datatype teidata.enumerated
Legal values are:
(An honorific such as "Sir" or "Rev.".) Used to encode the honorific part of a name in the personography. Examples are "Sir", "Rev.", "Dean of Rochester", "Professor".
Member of
Contained by
May contain
<persName>  <forename>Frederick</forename>  <addName type="epithet">the Great</addName>  <roleName>Emperor of Prussia</roleName> </persName>
Content model
 <macroRef key="macro.phraseSeq"/>
Schema Declaration
element addName
   attribute type { "honorific" },

Appendix A.1.7 <addrLine>

<addrLine> (address line) contains one line of a postal address. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. Imprint, Size of a Document, and Reprint Information]
Module core
Member of
Contained by
core: address
May contain

Addresses may be encoded either as a sequence of lines, or using any sequence of component elements from the model.addrPart class. Other non-postal forms of address, such as telephone numbers or email, should not be included within an <address> element directly but may be wrapped within an <addrLine> if they form part of the printed address in some source text.

<address>  <addrLine>Computing Center, MC 135</addrLine>  <addrLine>P.O. Box 6998</addrLine>  <addrLine>Chicago, IL</addrLine>  <addrLine>60680 USA</addrLine> </address>
<addrLine>  <ref target="tel:+1-201-555-0123">(201) 555 0123</ref> </addrLine>
Content model
 <macroRef key="macro.phraseSeq"/>
Schema Declaration
element addrLine {, tei_macro.phraseSeq }

Appendix A.1.8 <address>

<address> (address) contains a postal address, for example of a publisher, an organization, or an individual. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. Imprint, Size of a Document, and Reprint Information]
Module core
Member of
Contained by
May contain

This element should be used for postal addresses only. Within it, the generic element <addrLine> may be used as an alternative to any of the more specialized elements available from the model.addrPart class, such as <street>, <postCode> etc.

Example Using just the elements defined by the core module, an address could be represented as follows:
<address>  <street>via Marsala 24</street>  <postCode>40126</postCode>  <name>Bologna</name>  <name>Italy</name> </address>
Example When a schema includes the names and dates module more specific elements such as country or settlement would be preferable over generic <name>:
<address>  <street>via Marsala 24</street>  <postCode>40126</postCode>  <settlement>Bologna</settlement>  <country>Italy</country> </address>
<address>  <addrLine>Computing Center, MC 135</addrLine>  <addrLine>P.O. Box 6998</addrLine>  <addrLine>Chicago, IL 60680</addrLine>  <addrLine>USA</addrLine> </address>
<address>  <country key="FR"/>  <settlement type="city">Lyon</settlement>  <postCode>69002</postCode>  <district type="arrondissement">IIème</district>  <district type="quartier">Perrache</district>  <street>   <num>30</num>, Cours de Verdun</street> </address>
Content model
  <classRef key=""
   minOccurs="0" maxOccurs="unbounded"/>
  <sequence minOccurs="1"
   <classRef key="model.addrPart"/>
   <classRef key=""
    minOccurs="0" maxOccurs="unbounded"/>
Schema Declaration
element address
   (*, ( tei_model.addrPart,* )+ )

Appendix A.1.9 <affiliation>

<affiliation> (affiliation) contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [15.2.2. The Participant Description]
Module namesdates
type characterizes the element in some sense, using any convenient classification scheme or typology.
Derived from att.typed
Status Optional
Datatype teidata.enumerated
calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated will be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
<sch:rule context="tei:*[@calendar]"> <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this <sch:name/> element has no textual content.</sch:assert> </sch:rule>
Member of
Contained by
May contain

If included, the name of an organization may be tagged using either the <name> element as above, or the more specific <orgName> element.

<affiliation>Junior project officer for the US <name type="org">National Endowment for    the Humanities</name> </affiliation>
Example This example indicates that the person was affiliated with the Australian Journalists Association at some point between the dates listed.
<affiliation notAfter="1960-01-01"  notBefore="1957-02-28">Paid up member of the <orgName>Australian Journalists Association</orgName> </affiliation>
Example This example indicates that the person was affiliated with Mount Holyoke College throughout the entire span of the date range listed.
<affiliation from="1902-01-01"  to="1906-01-01">Was an assistant professor at Mount Holyoke College.</affiliation>
Content model
 <macroRef key="macro.phraseSeq"/>
Schema Declaration
element affiliation
   attribute type { text }?,
   attribute calendar { list { + } }?,

Appendix A.1.10 <age>

<age> (age) specifies the age of a person. [ Personal Characteristics]
Module namesdates
type characterizes the element in some sense, using any convenient classification scheme or typology.
Derived from att.typed
Status Optional
Datatype teidata.enumerated
calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated will be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
<sch:rule context="tei:*[@calendar]"> <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this <sch:name/> element has no textual content.</sch:assert> </sch:rule>
value supplies a numeric code representing the age or age group
Status Optional
Datatype teidata.count

This attribute may be used to complement a more detailed discussion of a person's age in the content of the element

Member of
Contained by
May contain

As with other culturally-constructed traits such as sex, the way in which this concept is described in different cultural contexts may vary. The normalizing attributes are provided as a means of simplifying that variety to Western European norms and should not be used where that is inappropriate. The content of the element may be used to describe the intended concept in more detail, using plain text.

<age value="2notAfter="1986">under 20 in the early eighties</age>
Content model
 <macroRef key=""/>
Schema Declaration
element age
   attribute type { text }?,
   attribute calendar { list { + } }?,
   attribute value { text }?,

Appendix A.1.11 <analytic>

<analytic> (analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. [ Analytic, Monographic, and Series Levels]
Module core
Contained by
May contain

May contain titles and statements of responsibility (author, editor, or other), in any order.

The <analytic> element may only occur within a <biblStruct>, where its use is mandatory for the description of an analytic level bibliographic item.

<biblStruct>  <analytic>   <author>Chesnutt, David</author>   <title>Historical Editions in the States</title>  </analytic>  <monogr>   <title level="j">Computers and the Humanities</title>   <imprint>    <date when="1991-12">(December, 1991):</date>   </imprint>   <biblScope>25.6</biblScope>   <biblScope>377–380</biblScope>  </monogr> </biblStruct>
Content model
 <alternate minOccurs="0"
  <elementRef key="author"/>
  <elementRef key="editor"/>
  <elementRef key="respStmt"/>
  <elementRef key="title"/>
  <classRef key="model.ptrLike"/>
  <elementRef key="date"/>
  <elementRef key="textLang"/>
  <elementRef key="idno"/>
  <elementRef key="availability"/>
Schema Declaration
element analytic
    | tei_editor
    | tei_respStmt
    | tei_title
    | tei_model.ptrLike
    | tei_date
    | tei_textLang
    | tei_idno
    | tei_availability

Appendix A.1.12 <anchor>

<anchor> (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment]
Module linking
Member of
Contained by
May contain Empty element

On this element, the global xml:id attribute must be supplied to specify an identifier for the point at which this element occurs within a document. The value used may be chosen freely provided that it is unique within the document and is a syntactically valid name. There is no requirement for values containing numbers to be in sequence.

<s>The anchor is he<anchor xml:id="A234"/>re somewhere.</s> <s>Help me find it.<ptr target="#A234"/> </s>
Content model
Schema Declaration
element anchor {, tei_att.typed.attributes, empty }

Appendix A.1.13 <annotation>

<annotation> represents an annotation following the Web Annotation Data Model. [16.10. The standOff Container]
Module linking
xml:id (identifier) provides a unique identifier for the element bearing the attribute.
Derived from
Status Required
Datatype ID
target specifies the destination of the reference by supplying one or more URI References
Derived from att.pointing
Status Required
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Legal values are:
intent is to assess the target resource in some way, rather than simply make a comment about it
intent is to create a bookmark to the target or part thereof
intent is to classify the target in some way
intent is to comment about the target
intent is to describe the target, rather than (for example) comment on it
intent is to request an edit or a change to the target resource
intent is to highlight the target resource or a segment thereof
intent is to assign an identity to the target
intent is to link to a resource related to the target
intent is to assign some value or quality to the target
intent is to ask a question about the target
intent is to reply to a previous statement, either an annotation or another resource
intent is to associate a tag with the target

For further detailed explanation of the suggested values, see the Web Annotation Vocabulary (WAV). The motivations described here map to URIs defined by the WAV and when exported to RDF or JSON-LD must have the URI prepended.

As an RDF vocabulary, WADM permits the definition of new motivations (see Appendix C of the WAV). In TEI, new motivations may be defined in a custom ODD (see section New motivations must also map to URIs defined by an RDF ontology extending the WAV.

Member of
Contained by
May contain
<annotation xml:id="ann1"  motivation="linkingtarget="#Gallia"> <!-- See and -->  <respStmt xml:id="fred">   <resp>creator</resp>   <persName>Fred Editor</persName>  </respStmt>  <revisionDesc>   <change status="created"    when="2020-05-21T13:59:00Zwho="#fred"/>   <change status="modified"    when="2020-05-21T19:48:00Zwho="#fred"/>  </revisionDesc> <!-- See -->  <licence target=""/> <!-- Multiple bodies --> <!-- Pointers to sections of text in the same document -->  <ptr target="#string-range(c1p1s1,0,6)"/>  <ptr target="#string-range(c1p1s6,19,7)"/> </annotation>
<annotation xml:id="TheCorrectTitle"  motivation="commentingtarget="#line1">  <note>The correct title of this specification, and the correct full name of XML, is    "Extensible Markup Language". "eXtensible Markup Language" is just a spelling error.    However, the abbreviation "XML" is not only correct but, appearing as it does in the title    of the specification, an official name of the Extensible Markup Language. </note> </annotation>
Content model
  <elementRef key="respStmt" minOccurs="0"
  <elementRef key="revisionDesc"
   minOccurs="0" maxOccurs="unbounded"/>
  <elementRef key="licence" minOccurs="0"
  <classRef key="model.annotationPart.body"
   minOccurs="0" maxOccurs="unbounded"/>
Schema Declaration
element annotation
   attribute xml:id { text },
   attribute target { list { + } },
   attribute motivation
          | "bookmarking"
          | "classifying"
          | "commenting"
          | "describing"
          | "editing"
          | "highlighting"
          | "identifying"
          | "linking"
          | "moderating"
          | "questioning"
          | "replying"
          | "tagging"

Appendix A.1.14 <appInfo>

<appInfo> (application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element]
Module header
Member of
Contained by
header: encodingDesc
May contain
header: application
<appInfo>  <application version="1.24ident="Xaira">   <label>XAIRA Indexer</label>   <ptr target="#P1"/>  </application> </appInfo>
Content model
 <classRef key="model.applicationLike"
  minOccurs="1" maxOccurs="unbounded"/>
Schema Declaration
element appInfo {, tei_model.applicationLike+ }

Appendix A.1.15 <application>

<application> provides information about an application which has acted upon the document. [2.3.11. The Application Information Element]
Module header
calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated will be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
<sch:rule context="tei:*[@calendar]"> <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this <sch:name/> element has no textual content.</sch:assert> </sch:rule>
ident supplies an identifier for the application, independent of its version number or display name.
Status Required
version supplies a version number for the application, independent of its identifier or display name.
Status Required
Datatype teidata.versionNumber
Member of
Contained by
header: appInfo
May contain
linking: ab
<appInfo>  <application version="1.5"   ident="ImageMarkupTool1notAfter="2006-06-01">   <label>Image Markup Tool</label>   <ptr target="#P1"/>   <ptr target="#P2"/>  </application> </appInfo>
This example shows an appInfo element documenting the fact that version 1.5 of the Image Markup Tool1 application has an interest in two parts of a document which was last saved on June 6 2006. The parts concerned are accessible at the URLs given as target for the two <ptr> elements.
Content model
  <classRef key="model.labelLike"
   minOccurs="1" maxOccurs="unbounded"/>
   <classRef key="model.ptrLike"
    minOccurs="0" maxOccurs="unbounded"/>
   <classRef key="model.pLike"
    minOccurs="0" maxOccurs="unbounded"/>
Schema Declaration
element application
   attribute calendar { list { + } }?,
   attribute ident { text },
   attribute version { text },
   ( tei_model.labelLike+, ( tei_model.ptrLike* | tei_model.pLike* ) )

Appendix A.1.16 <argument>

<argument> (argument) contains a formal list or prose description of the topics addressed by a subdivision of a text. [4.2. Elements Common to All Divisions 4.6. Title Pages]
Module textstructure
Member of
Contained by
core: lg list
drama: castList
figures: figure table
msdescription: msItem
May contain
<argument>  <p>Monte Video — Maldonado — Excursion    to R Polanco — Lazo and Bolas — Partridges —    Absence of Trees — Deer — Capybara, or River Hog —    Tucutuco — Molothrus, cuckoo-like habits — Tyrant    Flycatcher — Mocking-bird — Carrion Hawks —    Tubes formed by Lightning — House struck</p> </argument>
Content model
  <alternate minOccurs="0"
   <classRef key=""/>
   <classRef key="model.headLike"/>
  <sequence minOccurs="1"
   <classRef key="model.common"/>
   <classRef key=""
    minOccurs="0" maxOccurs="unbounded"/>
Schema Declaration
element argument
      ( | tei_model.headLike )*,
      ( tei_model.common,* )+

Appendix A.1.17 <author>

<author> (author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [ Titles, Authors, and Editors 2.2.1. The Title Statement]
Module core
calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated will be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
<sch:rule context="tei:*[@calendar]"> <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this <sch:name/> element has no textual content.</sch:assert> </sch:rule>
Member of
Contained by
msdescription: msItem
May contain

Particularly where cataloguing is likely to be based on the content of the header, it is advisable to use a generally recognized name authority file to supply the content for this element. The attributes key or ref may also be used to reference canonical information about the author(s) intended from any appropriate authority, such as a library catalogue or online resource.

In the case of a broadcast, use this element for the name of the company or network responsible for making the broadcast.

Where an author is unknown or unspecified, this element may contain text such as Unknown or Anonymous. When the appropriate TEI modules are in use, it may also contain detailed tagging of the names used for people, organizations or places, in particular where multiple names are given.

<author>British Broadcasting Corporation</author> <author>La Fayette, Marie Madeleine Pioche de la Vergne, comtesse de (1634–1693)</author> <author>Anonymous</author> <author>Bill and Melinda Gates Foundation</author> <author>  <persName>Beaumont, Francis</persName> and <persName>John Fletcher</persName> </author> <author>  <orgName key="BBC">British Broadcasting    Corporation</orgName>: Radio 3 Network </author>
Content model
 <macroRef key="macro.phraseSeq"/>
Schema Declaration
element author
   attribute calendar { list { + } }?,

Appendix A.1.18 <authority>

<authority> (release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. [2.2.4. Publication, Distribution, Licensing, etc.]
Module header
Member of
Contained by
core: monogr
May contain
<authority>John Smith</authority>
Content model
 <macroRef key=""/>
Schema Declaration
element authority

Appendix A.1.19 <availability>

<availability> (availability) supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. Publication, Distribution, Licensing, etc.]
Module header
status (status) supplies a code identifying the current availability of the text.
Status Optional
Datatype teidata.enumerated
Legal values are:
(free) the text is freely available.
(unknown) the status of the text is unknown.
(restricted) the text is not freely available.
Member of
Contained by
May contain
core: p
header: licence
linking: ab

A consistent format should be adopted

<availability status="restricted">  <p>Available for academic research purposes only.</p> </availability> <availability status="free">  <p>In the public domain</p> </availability> <availability status="restricted">  <p>Available under licence from the publishers.</p> </availability>
<availability>  <licence target="">   <p>The MIT License      applies to this document.</p>   <p>Copyright (C) 2011 by The University of Victoria</p>   <p>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:</p>   <p>The above copyright notice and this permission notice shall be included in      all copies or substantial portions of the Software.</p>   <p>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.</p>  </licence> </availability>
Content model
 <alternate minOccurs="1"
  <classRef key="model.availabilityPart"/>
  <classRef key="model.pLike"/>
Schema Declaration
element availability
   attribute status { "free" | "unknown" | "restricted" }?,
   ( tei_model.availabilityPart | tei_model.pLike )+

Appendix A.1.20 <back>

<back> (back matter) contains any appendixes, etc. following the main part of a text. [4.7. Back Matter 4. Default Text Structure]
Module textstructure
Contained by
textstructure: floatingText text
transcr: facsimile
May contain

Because cultural conventions differ as to which elements are grouped as back matter and which as front matter, the content models for the <back> and <front> elements are identical.

<back>  <div type="appendix">   <head>The Golden Dream or, the Ingenuous Confession</head>   <p>TO shew the Depravity of human Nature, and how apt the Mind is to be misled by Trinkets      and false Appearances, Mrs. Two-Shoes does acknowledge, that after she became rich, she      had like to have been, too fond of Money <!-- .... -->   </p>  </div> <!-- ... -->  <div type="epistle">   <head>A letter from the Printer, which he desires may be inserted</head>   <salute>Sir.</salute>   <p>I have done with your Copy, so you may return it to the Vatican, if you please;    <!-- ... -->   </p>  </div>  <div type="advert">   <head>The Books usually read by the Scholars of Mrs Two-Shoes are these and are sold at Mr      Newbery's at the Bible and Sun in St Paul's Church-yard.</head>   <list>    <item n="1">The Christmas Box, Price 1d.</item>    <item n="2">The History of Giles Gingerbread, 1d.</item> <!-- ... -->    <item n="42">A Curious Collection of Travels, selected from the Writers of all Nations,        10 Vol, Pr. bound 1l.</item>   </list>  </div>  <div type="advert">   <head>By the KING's Royal Patent, Are sold by J. NEWBERY, at the Bible and Sun in St.      Paul's Church-Yard.</head>   <list>    <item n="1">Dr. James's Powders for Fevers, the Small-Pox, Measles, Colds, &amp;c. 2s.        6d</item>    <item n="2">Dr. Hooper's Female Pills, 1s.</item> <!-- ... -->   </list>  </div> </back>
Content model
  <alternate minOccurs="0"
   <classRef key="model.frontPart"/>
   <classRef key="model.pLike.front"/>
   <classRef key="model.pLike"/>
   <classRef key="model.listLike"/>
   <classRef key=""/>
  <alternate minOccurs="0">
    <classRef key="model.div1Like"/>
    <alternate minOccurs="0"
     <classRef key="model.frontPart"/>
     <classRef key="model.div1Like"/>
     <classRef key=""/>
    <classRef key="model.divLike"/>
    <alternate minOccurs="0"
     <classRef key="model.frontPart"/>
     <classRef key="model.divLike"/>
     <classRef key=""/>
  <sequence minOccurs="0">
   <classRef key="model.divBottomPart"/>
   <alternate minOccurs="0"
    <classRef key="model.divBottomPart"/>
    <classRef key=""/>
Schema Declaration
element back
       | tei_model.pLike.front
       | tei_model.pLike
       | tei_model.listLike
            ( tei_model.frontPart | tei_model.div1Like | )*
       | (
            ( tei_model.frontPart | tei_model.divLike | )*
         ( tei_model.divBottomPart | )*

Appendix A.1.21 <bibl>

<bibl> (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]
Module core
Member of
Contained by
May contain

Contains phrase-level elements, together with any combination of elements from the model.biblPart class

<bibl>Blain, Clements and Grundy: Feminist Companion to Literature in English (Yale, 1990)</bibl>
<bibl>  <title level="a">The Interesting story of the Children in the Wood</title>. In <author>Victor E Neuberg</author>, <title>The Penny Histories</title>. <publisher>OUP</publisher>  <date>1968</date>. </bibl>
<bibl type="articlesubtype="book_chapter"  xml:id="carlin_2003">  <author>   <name>    <surname>Carlin</surname>      (<forename>Claire</forename>)</name>  </author>, <title level="a">The Staging of Impotence : France’s last    congrès</title> dans <bibl type="monogr">   <title level="m">Theatrum mundi : studies in honor of Ronald W.      Tobin</title>, éd.  <editor>    <name>     <forename>Claire</forename>     <surname>Carlin</surname>    </name>   </editor> et  <editor>    <name>     <forename>Kathleen</forename>     <surname>Wine</surname>    </name>   </editor>,  <pubPlace>Charlottesville, Va.</pubPlace>,  <publisher>Rookwood Press</publisher>,  <date when="2003">2003</date>.  </bibl> </bibl>
Content model
 <alternate minOccurs="0"
  <classRef key="model.gLike"/>
  <classRef key="model.highlighted"/>
  <classRef key=""/>
  <classRef key="model.pPart.edit"/>
  <classRef key="model.segLike"/>
  <classRef key="model.ptrLike"/>
  <classRef key="model.biblPart"/>
  <classRef key=""/>
Schema Declaration
element bibl
    | tei_model.gLike
    | tei_model.highlighted
    | tei_model.pPart.edit
    | tei_model.segLike
    | tei_model.ptrLike
    | tei_model.biblPart

Appendix A.1.22 <biblFull>

<biblFull> (fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2. The File Description 2.2.7. The Source Description 15.3.2. Declarable Elements]
Module header
Member of
Contained by
May contain
<biblFull>  <titleStmt>   <title>The Feminist Companion to Literature in English: women writers from the middle ages      to the present</title>   <author>Blain, Virginia</author>   <author>Clements, Patricia</author>   <author>Grundy, Isobel</author>  </titleStmt>  <editionStmt>   <edition>UK edition</edition>  </editionStmt>  <extent>1231 pp</extent>  <publicationStmt>   <publisher>Yale University Press</publisher>   <pubPlace>New Haven and London</pubPlace>   <date>1990</date>  </publicationStmt>  <sourceDesc>   <p>No source: this is an original work</p>  </sourceDesc> </biblFull>
Content model
    <elementRef key="titleStmt"/>
    <elementRef key="editionStmt"
    <elementRef key="extent" minOccurs="0"/>
    <elementRef key="publicationStmt"/>
    <elementRef key="seriesStmt"
     minOccurs="0" maxOccurs="unbounded"/>
    <elementRef key="notesStmt"
   <elementRef key="sourceDesc"
    minOccurs="0" maxOccurs="unbounded"/>
   <elementRef key="fileDesc"/>
   <elementRef key="profileDesc"/>
Schema Declaration
element biblFull
    | ( tei_fileDesc, tei_profileDesc )

Appendix A.1.23 <biblScope>

<biblScope> (scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [ Scopes and Ranges in Bibliographic Citations]
Module core
unit identifies the unit of information conveyed by the element, e.g. columns, pages, volume, entry.
Derived from att.citing
Status Optional
Datatype teidata.enumerated
Legal values are:
(Series number) Series number for a serial publication that has more than one series.
(Volume number) Number or title of a volume in a serial publication.
(Issue number) Number or title of an issue (component of a volume) in a serial publication.
(Special issue designation) Title of a special issue such as a Christmas issue.
(Page or page-range) The page or pages on which an item appears. Use the @from and @to attributes to record the pages for processing purposes, but also include a textual rendering of the page-range for ease of reading.
Member of
Contained by
May contain

When a single page is being cited, use the from and to attributes with an identical value. When no clear endpoint is provided, the from attribute may be used without to; for example a citation such as ‘p. 3ff’ might be encoded <biblScope from="3">p. 3ff</biblScope>.

It is now considered good practice to supply this element as a sibling (rather than a child) of <imprint>, since it supplies information which does not constitute part of the imprint.

<biblScope>pp 12–34</biblScope> <biblScope unit="pagefrom="12to="34"/> <biblScope unit="volume">II</biblScope> <biblScope unit="page">12</biblScope>
<sch:rule context="tei:biblScope[@unit='page']"> <sch:assert test="@from and @to"> ERROR: The @from and @to attributes must both be included when using biblScope[@unit='page']. </sch:assert> </sch:rule> <sch:rule context="tei:biblScope[@unit='page']"> <sch:assert test="matches(., '\*?[\divxlcmab]+\*?(–\*?[\divxlcmab]+\*?)?')"> ERROR: The page-range does not appear to conform to our -f rules (digits or roman numerals separated by an en-dash). </sch:assert> </sch:rule> <sch:rule context="tei:biblScope[@unit='page']"> <sch:assert test="matches(@from, '^((\*?\d+([ab])?\*?)|([ivxlcm]+))$') and matches(@to, '^(\*?(\d+([ab])?\*?)|([ivxlcm]+))$')"> ERROR: The @from and @to attributes must conform to a pattern consisting of digits or roman numerals. </sch:assert> </sch:rule>
<sch:rule context="tei:biblScope[@unit=('series', 'volume', 'issue')]"> <sch:assert test="normalize-space(.) ne ''"> ERROR: Series, volume and issue biblScopes must have text content. </sch:assert> </sch:rule>
Content model