More on Working With TEI and MEI

While many members of the team worked on rendering The Beggar’s Opera into TEI and MEI and the associated challenges, including Becca Fülöp, Anne Harlow, Jack Krick, Steve Newman, and Alex Wermer-Colan, the member who took the lead has been Fred Rowland.  As we looked toward the launch of the 1.0 version, Steve asked him to reflect on the challenges he faced.  Our hope is that his responses will be useful to those seeking to do this work.

As you think about the work we’ve done over the past couple of years, what do you think the major challenges were?  The biggest one, I imagine you’d agree, has been learning how to integrate the MEI and TEI and the construction of the ODD.  But anything else you think should be highlighted? 

The challenges I have faced can be broken down into the technical and conceptual. Having begun this project as a novice, with some very slight experience with XML, the first challenge was learning to use two essential tools, the Oxygen XML Editor for writing and editing TEI and the TEI website for studying, interpreting, and understanding the vast array of TEI elements and attributes. It was a little like walking into five-star kitchen looking for a light snack. The tools offered far too much for my meager skill level and knowledge base. There were of course tutorials and explainers that I referred to on the web, but I kept going back to these two key resources. 

The basic idea of TEI is simple: to use descriptive tags to structure the myriad elements of the play so that machines could read and process them. Conceptually, I understood the general notion that the resultant structured data could be processed to render The Beggar’s Opera to the web or to perform database operations. I also understood the value of this to scholars and to Steve Newman’s more expansive project goals. But my conceptual understanding was vague at best. How any of these operations would be implemented remained a mystery.  

Returning to the technical, TEI, like all XML languages, needs to be well-formed and validated. This seemed straightforward. Oxygen provided little red and green rectangles to indicate well-formedness and validation. I looked for tags on the TEI website and inserted them into my TEI draft in Oxygen and hoped they would validate. The concept of validation made sense to me, but it took me years before I understood anything about the schemas that I was validating against. Like so many other parts of this project, there were just too many moving parts to keep track of. Seemingly essential information just slipped through my grasp. 

Once we had sufficiently tagged The Beggar’s Opera, I began thinking about rendering it to the web. This part made the most sense to me. Let’s see what this thing looks like! Working first with TEI Boilerplate and then with CeTEIcean, both coding libraries for rendering TEI to the web, I eventually produced a nicely formatted version, based mainly on the first edition of the play. But this initial version lacked the musical scores which were essential to the goals of our project. Anne Harlow the (now retired) music librarian had encoded the scores of The Beggar’s Opera third edition in Sibelius, a music encoding software. This was one more challenge as none of us on the team had a clear understanding of how to move from the Sibelius files to a music format we could render onto the web. After months of effort and an online course on Javascript, I was able accomplish this. 

At this point, I figured I had finished phase one of my part of the project. Unfortunately, there were some finer points I had not understood. In rendering the play to the web I had made numerous adjustments to the TEI, mainly as a result of my relative inexperience with TEI, CeTEIcean, Javascript, and CSS. I had to go back to purge the TEI of excessive tags which were used solely for formatting on the rendered web page. And Steve Newman and I needed to create a customized schema, in our case an ODD (“One Document Does It All”), which we would use to validate the merged TEI/MEI version of the play. Though we had talked about this for years, I really had no understanding of it. Once we had created an ODD for our play, I then learned that I needed an ODD for the ODD.  

So, I return to reflect on the technical and conceptual challenges that have informed this project. On the technical side, I have spent hours learning the basics of encoding text in TEI and writing simple code in Javascript, CSS, and XLS. I have spent just as many hours wrestling with seemingly simple but intractable problems, an errant comma here, a bracket there, a missing quote who knows where. On the conceptual side, the stumbling block has been that it is hard to understand how the parts fit together in advance of completion. This inevitably led to numerous technical wrong turns and dead ends before producing an error-free product.