Alain Locke’s New Negro Anthology 

in TEI and MEI

A DEFCON Teaching Collaboration across Two Universities

Zack Dominick, Zack Schleger, Noah Stachera, Julian Giles

and Drs. Brinkman and Beshero-Bondar 


DEFCON and our collaboration

  • Digital Ethnic Futures Consortium Teaching Fellows and Mentors program
    • regular meetings
    • learn from each other / plan syllabi / assignments
    • As it was ending...
  • Each of us (profs) felt we were lacking something
    • Framingham State U (FSU): Harlem Renaissance Literature class
      • No chance to go in depth on text encoding / XSLT / web development
    • Penn State Behrend (PSB): Text Encoding class
      • Lots of code, but are the students getting enough humanities?
  • Try building a connection between our classes
  • Time sensitive scheduling of meetings / review of code
  • Real production schedule! 

Fall 2022 Collaboration Experiment


  • Learning from Locke's anthology
  • Structured forms (literary/code)
  • Ontologies (categories/classifications)
  • Re-mediations (web / music)
  • Real-time project management

Dialogue between FSU and PSB

TEI Coding Effort

Flowchart showing our Method

TEI Coding Effort (FSU start)

	<head>I Too</head>
		<l enjamb="n"><rs type="firstperson">I</rs>, too, sing
		<l enjamb="n">I am the <rs type="black">darker</rs> brother.</l>
		<l enjamb="y"><rs type="white">They</rs> send me to eat in the
		<l enjamb="n">When <rs type="white">company</rs> comes.</l>
		<l enjamb="n">But I laugh,</l>
		<l enjamb="n">And eat well,</l>
		<l enjamb="n">And grow strong.</l>
		<l enjamb="y">To-morrow</l>
		<l enjamb="y">I’ll sit at the table</l>
		<l enjamb="y">When <rs type="white">company</rs> comes</l>
		<l enjamb="y">Nobody ’ll dare</l>
		<l enjamb="n">Say to me,</l>
		<l enjamb="y">“Eat in the kitchen”</l>
		<l enjamb="n">Then.</l>

Harmonizing the TEI

  • Created validation requirements
    • TEI ODD: standardized @type and @subtype on <rs>
  • Helped in designing an interface:
    • basis for XSLT transformation to HTML
    • basis for CSS decisions on the site
    <attList org="group">
              <attDef ident="type" mode="replace" usage="req">
                <valList type="closed">
                  <valItem ident="theme"/>
              <attDef ident="subtype" mode="replace" usage="req">
				    <valItem ident="food"/>
    				<valItem ident="color"/>
    				<valItem ident="cane"/>
    				<valItem ident="black"/>
    				<valItem ident="white"/>
    				<valItem ident="race"/>
    				<valItem ident="child"/>
    				<valItem ident="body"/>

 MEI Experiment

 MEI Flowchart


  • Wide range of possibilities
  • Similar to other markup languages
    • Hierarchy of elements
    • Musical elements and attributes

 HTML Example

    <title>Sample HTML</title>
    <h1>Hello from Behrend!</h1>
    <p>We had fun working with Framingham State!</p>

MEI Example

<measure n="1">
    <staff n="1">
        <layer n="1">
            <rest dur="4"/>
            <rest dur="4"/>
            <rest dur="4"/>
                <note pname="f" oct="4" stem.dir="up" dur="4"/>
                <note pname="d" oct="5" stem.dir="up" dur="4"/>

 MEI Example

<measure n="1">
   <staff n="1">
      <layer n="1">
         <note pname="g" oct="4" dur="2" stem.dir="up"/>
         <note pname="b" oct="4" dur="2" stem.dir="down"/>
   <staff n="2">
      <layer n="1">
         <chord tie="i" dur="2">
            <note pname="g" oct="4" stem.dir="up"/>
            <note pname="d" oct="4" stem.dir="up"/>
         <chord dur="2">
            <note pname="b" oct="4" stem.dir="up"/>
            <note pname="g" oct="4" tie="t" stem.dir="up"/>
            <note pname="d" oct="4" tie="t" stem.dir="up"/>
   <staff n="3">
      <layer n="1">
            <note pname="b" oct="3" dur="1"/>
            <note pname="d" oct="3" dur="1"/>
            <note pname="g" oct="2" dur="1"/>

 MEI Conversion

MEI Conversion

MEI ODD validation


<define name="mei_att.harm.log.attribute.chordref">
         <attribute name="chordref">
            <a:documentation xmlns:a="">Contains a reference to a chordDef element elsewhere in the document.</a:documentation>
            <ref name="mei_data.URI"/>
   <pattern xmlns=""
      <sch:rule xmlns:xi=""
              <sch:assert role="warning" test="not(normalize-space(.) eq '')">@chordref attribute
                should have content.</sch:assert>
              <sch:assert role="warning"
                     test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:chordDef/@xml:id">The value in @chordref should correspond to the @xml:id attribute of a chordDef
   <define name="mei_model.chordTableLike">
         <ref name="mei_chordTable"/>

MEI Challenges

Web Development




Website Homepage

Website MEI

Website Poems

Color decisions were a challenge

Website Poems

Website Poems

Detailed Annotations

FSU Student Reactions

Overall I think this was a pretty cool project from the Penn State team and helped add another dimension to our text and offers up some extra analysis that might not have been possible without this collaboration.

The project came out wonderfully and looks really great. I think that this is a great way to display the poems of the New Negro and highlight the key factors of those poems that we had worked with.

I like the addition of adding not only sheet music to the music section, but also being able to listen to the music right there on the website.

Locke Anthology in TEI and MEI

By Elisa Beshero-Bondar

Locke Anthology in TEI and MEI

  • 272