Encode Speakers in Modern Texts

Introduction

You will want to read Encode Character Lists in Modern Texts and ensure that you have created a <listPerson> in your <teiHeader> before you attribute speeches to characters and add your speech prefixes.
LEMDO’s encoding protocols for speakers have four aims:
To enforce consistency in the speech prefixes of a modern text
To allow for changes in a character’s title over the course of the play (from Prince to King, for example)
To identify the speeches spoken by a single character in a play and make them processable (for cue scripts, for example)
To accommodate multiple speakers and unusual speech prefixes (such as All, Both, or Voices within
There are two aspects to encoding the speaker:
Identifying the character(s) who are speaking
Providing the speech prefix that will appear in your online and print edition
We attribute each speech to a character (or to characters) by adding the xml:ids of the character(s) to the speech. We nest a <speaker> element inside the <sp> element and provide one of the allowed speech prefixes for that character. Each speaker in a play is given a unique xml:id, recorded in the <listPerson> LEMDO encodes <speaker> so as to match the corresponding <person> encoded in the <listPerson> in the documentʼs header. Note that these rules devised apply only for primary texts (texts having <catRef> ʼs @target of value cat:ldtPrimary or any children thereof), and are not checked if the speaker is tagged inside a <quote> .

Basic Template for Identifying a Speaker

<sp who="#id">
  <speaker>Speech Prefix</speaker>
  <lg>
    <l>Line of spoken verse</l>
  </lg>
</sp>

Breakdown of Elements in the Template

The elements envolved in encoding a speaker are <person> and <reg> in the <teiHeader> of the document (see Encode Character Lists in Modern Texts), and <sp> and <speaker> in the <body> of the document.
<person> : This element in your <listPerson> allows you to name and identify each character in the play. To attribute a speech to one of these characters, you need to use the @xml:id on the <person> element for the character to whom you wish to attribute the speech.
<reg> : Each <reg> element in your <listPerson> gives one allowed speech prefix that will be used in the <speaker> element corresponding to this character. Given that some charactersʼ names might change, a single <person> may contain multiple <reg> s. You are responsible for deciding which allowed speech prefix to use at any given point.
<sp> : The <sp> element contains a single speech. You add the @who attribute to this <sp> element in order to indicate who is is speaking.
<speaker> : The <speaker> element contains the speech prefix. The content of this element (i.e., the speech prefix) must match one of the <reg> elements for the <person> to whom you have assigned this speech. The LEMDO schema will compare your <speaker> elements to the <reg> elements. Thus the schema ensures that you are consistent in the speech prefixes across your modern text.

Practice: Encode Speakers

<speaker> elements are children of <sp> elements. Every <sp> element should have an attribute @who that determines what the content of the child <speaker> should be.
If the speaker of the speech is listed in the <listPerson> , then the value of @who should reflect the @xml:id of the corresponding person, by adding a # to the value of the corresponding <person> ʼs @xml:id, as the value of @who. In this case, the speaker content has to match the corresponding <person> ’s <reg> value.

Special Case: Multiple Speakers

If the speech has more than one speaker, then the value of <sp> ’s @who would be a space separated list of the corresponding <person> @xml:ids, with a # sign before each. In this case, the speaker content does not necessarily have to match any of the corresponding <person> ’s <reg> values.

Special Case: Irregular Speakers

If the speech has irregular or exceptional speakers, such as All or Voices, within, the the value of the parent <sp> ʼs @who should be "spkr:other". In this case, the content of the <speaker> element is not checked against any of the <person> @xml:ids listed in the TEI header.

Basic Template

Here is an example of a <speaker> instance from Rhodon and Iris:
<sp who="#emdRho_M_Agnostus">
  <speaker>Agnostus</speaker>
  <lg>
    <l>What, hath <anchor xml:id="emdRho_M_anc_20"/>Hesperus<anchor xml:id="emdRho_M_anc_21"/> forgot to light heaven’s tapers up?</l>
    <l>Or be the chariot wheels of <anchor xml:id="emdRho_M_anc_24"/>Night<anchor xml:id="emdRho_M_anc_25"/> o’erloaden with the leaden weights of sleep,</l>
    <l>That she delays to throw her misty veil upon the face of things?</l>
  </lg>
</sp>
In this example, you notice that @who of the <sp> element refers to an id emdRho_M_Agnostus. In the character list of this document, you can find the following person entry:
<person xml:id="emdRho_M_Agnostus">
  <persName>
    <reg>Agnostus</reg>
    <name>Agnostus, an impostor</name>
  </persName>
</person>
The <speaker> content (Agnostus) exactly matches that of the corresponding <person> ʼs <reg> .
Hereʼs an example of a case where you might have more than one speaker in a speech:
<sp who="#emdRho_M_Rhodon #emdRho_M_Iris #emdRho_M_Panace #emdRho_M_Eglantine #emdRho_M_Acanthus #emdRho_M_Anthophotus #emdRho_M_Martagon #emdRho_M_Cynosbatus">
  <speaker>All <supplied>except Flora</supplied>
  </speaker>
  <lg>
    <l>We must obey, and will, O awful goddess.</l>
  </lg>
</sp>
The fact that @who contains more than one value (that are space separated), exempts its child <speaker> from the rule of matching a corresponding <reg> .
The third template is one where the value of @who is "spkr:other":
<sp who="spkr:other">
  <speaker>Voices Within</speaker>
  <lg>
    <l>A sail! A sail! A sail!</l>
  </lg>
</sp>
Here, the value "spkr:other" exempts the <speaker> content from matching a specific <person> ʼs <reg> ; Voices Within is not a chracter in this play, and therefore does not have a corresponding <person> entry in the headerʼs character list.

Prosopography

Isabella Seales

Isabella Seales is a fourth year undergraduate completing her Bachelor of Arts in English at the University of Victoria. She has a special interest in Renaissance and Metaphysical Literature. She is assisting Dr. Jenstad with the MoEML Mayoral Shows anthology as part of the Undergraduate Student Research Award program.

Janelle Jenstad

Janelle Jenstad is a Professor of English at the University of Victoria, Director of The Map of Early Modern London, and Director of Linked Early Modern Drama Online. With Jennifer Roberts-Smith and Mark Kaethler, she co-edited Shakespeare’s Language in Digital Media: Old Words, New Tools (Routledge). She has edited John Stow’s A Survey of London (1598 text) for MoEML and is currently editing The Merchant of Venice (with Stephen Wittek) and Heywood’s 2 If You Know Not Me You Know Nobody for DRE. Her articles have appeared in Digital Humanities Quarterly, Elizabethan Theatre, Early Modern Literary Studies, Shakespeare Bulletin, Renaissance and Reformation, and The Journal of Medieval and Early Modern Studies. She contributed chapters to Approaches to Teaching Othello (MLA); Teaching Early Modern Literature from the Archives (MLA); Institutional Culture in Early Modern England (Brill); Shakespeare, Language, and the Stage (Arden); Performing Maternity in Early Modern England (Ashgate); New Directions in the Geohumanities (Routledge); Early Modern Studies and the Digital Turn (Iter); Placing Names: Enriching and Integrating Gazetteers (Indiana); Making Things and Drawing Boundaries (Minnesota); Rethinking Shakespeare Source Study: Audiences, Authors, and Digital Technologies (Routledge); and Civic Performance: Pageantry and Entertainments in Early Modern London (Routledge). For more details, see janellejenstad.com.

Joey Takeda

Joey Takeda is LEMDO’s Consulting Programmer and Designer, a role he assumed in 2020 after three years as the Lead Developer on LEMDO.

Martin Holmes

Martin Holmes has worked as a developer in the UVicʼs Humanities Computing and Media Centre for over two decades, and has been involved with dozens of Digital Humanities projects. He has served on the TEI Technical Council and as Managing Editor of the Journal of the TEI. He took over from Joey Takeda as lead developer on LEMDO in 2020. He is a collaborator on the SSHRC Partnership Grant led by Janelle Jenstad.

Navarra Houldin

Project manager 2022–present. Textual remediator 2021–present. Navarra Houldin (they/them) completed their BA in History and Spanish at the University of Victoria in 2022. During their degree, they worked as a teaching assistant with the University of Victoriaʼs Department of Hispanic and Italian Studies. Their primary research was on gender and sexuality in early modern Europe and Latin America.

Tracey El Hajj

Junior Programmer 2019–2020. Research Associate 2020–2021. Tracey received her PhD from the Department of English at the University of Victoria in the field of Science and Technology Studies. Her research focuses on the algorhythmics of networked communications. She was a 2019–2020 President’s Fellow in Research-Enriched Teaching at UVic, where she taught an advanced course on Artificial Intelligence and Everyday Life. Tracey was also a member of the Map of Early Modern London team, between 2018 and 2021. Between 2020 and 2021, she was a fellow in residence at the Praxis Studio for Comparative Media Studies, where she investigated the relationships between artificial intelligence, creativity, health, and justice. As of July 2021, Tracey has moved into the alt-ac world for a term position, while also teaching in the English Department at the University of Victoria.

Orgography

LEMDO Team (LEMD1)

The LEMDO Team is based at the University of Victoria and normally comprises the project director, the lead developer, project manager, junior developers(s), remediators, encoders, and remediating editors.

Metadata