{"id":268,"date":"2020-02-19T11:48:32","date_gmt":"2020-02-19T18:48:32","guid":{"rendered":"https:\/\/briancroxall.net\/w20dh\/?page_id=268"},"modified":"2020-02-19T14:48:54","modified_gmt":"2020-02-19T21:48:54","slug":"encoding-peanuts-with-tei-cbml","status":"publish","type":"page","link":"https:\/\/briancroxall.net\/w20dh\/assignments\/encoding-peanuts-with-tei-cbml\/","title":{"rendered":"Encoding Peanuts with TEI\/CBML"},"content":{"rendered":"\n<h2>Rationale<\/h2>\n<p>As I&#8217;ve told you, my colleagues in <a href=\"https:\/\/odh.byu.edu\">ODH<\/a> have created a corpus of all the <em>Peanuts<\/em> comics by harvesting data from GoComics.com. The GoComics team has created transcripts of what happens in the comics, which is tremendously helpful. But&#8230;it turns out they&#8217;re not always exactly correct. Just take a look at <a href=\"https:\/\/www.gocomics.com\/peanuts\/1952\/01\/23\">Schulz&#8217;s comic for 23 January 1952<\/a> and GoComics&#8217;s corresponding <code>data transcript<\/code>:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/assets.amuniversal.com\/c51df360f868013014ce001dd8b71c47\" alt=\"Image of 23 January 1952 Peanuts strip\" \/><\/p>\n<blockquote>\n<p>Schroeder sits at the piano playing. Charlie Brown comes up to him and says, &#8220;Say, that&#8217;s sensational, Schroeder&#8230;what is it?&#8221; He looks to the reader confused as Schroeder replies, &#8220;Grasse Sonata fur das Hommer-Klavier&#8221; As Schroeder resumes his playing, Charlie Brown walks away. The latter says, &#8220;Sometimes I feel like I don&#8217;t belong around here!&#8221;<\/p>\n<\/blockquote>\n<p>So it&#8217;s close&#8230;but it&#8217;s maybe not close enough. There&#8217;s a lot of information that isn&#8217;t captured in this transcript: who the characters are, what music Schroeder is playing, the setting, what happens in which panel, or the McCloudian transitions across the gutters. And that&#8217;s just the first five things I thought to type!<\/p>\n<p>We can do better than this! Creating marked-up editions of Peanuts strips will provide us the chance to more accurately represent the strip, as well as enriching it in the specific ways that we care about: themes, gender roles, tagging person or place names, recording weather, and pretty much anything else you can imagine. Creating such editions is time-consuming and requires serious attention to detail. But the opportunities for research that we gain with this process makes it worth the investment. To <a href=\"http:\/\/www.digitalhumanities.org\/dhq\/vol\/6\/1\/000117\/000117.html\">paraphrase John A. Walsh<\/a>, encoding <em>Peanuts<\/em> will &#8220;facilitate both close and distant reading strategies&#8221;<\/p>\n<h2>Nitty Gritty<\/h2>\n<p>Each of us will markup one month of strips from each of the volumes we&#8217;re reading for class. That&#8217;s about 60 strips, when all is said and done. And then you&#8217;ll write a reflection on the project&#8230;because of course.<\/p>\n<p>Your marked-up strips will be due <strong>no later than Monday, 30 March by the beginning of class. Your reflection papers are due on Wednesday, 1 April by the beginning of class.<\/strong><\/p>\n<h3>Get Oxygen<\/h3>\n<p><a href=\"https:\/\/www.oxygenxml.com\/xml_editor\/download_oxygenxml_editor.html\">Download Oxygen XML Editor<\/a> and sign up for a free, 30-day trial. You will receive a license key via email and you will need to use it with your individual copy.<\/p>\n<h3>Create the strip file<\/h3>\n<p>In Oxygen, open the <a href=\"https:\/\/github.com\/briancroxall\/peanuts\/blob\/master\/peanuts-template.xml\">strip template<\/a> from our repo and copy all of its text (Ctrl\/Cmd-A, then Ctrl\/Cmd-C). Then open a new document in Oxygen and paste the template (Ctrl\/Cmd-V) into it. Do NOT start editing the template itself.<\/p>\n<p>Name the file as follows: peanuts-[four-digit year]-[two-digit month]-[two-digit day].xml. For example, the frst strip, which is from 2 October 1950 would have the following filename: <code>peanuts_1950_10_02.xml<\/code>.<\/p>\n<p>Save the file in the <code>encoded-strips<\/code> folder in your local copy of the GitHub repo.<\/p>\n<h3>Encode the strip<\/h3>\n<p>Encode the strip as follows. If you run into questions, be sure to refer to our &#8220;<a href=\"https:\/\/docs.google.com\/document\/d\/1-4u0SHY5PW16sfcEqL8mOYl-x2JB0piXowOOpLYGn7I\/edit?usp=sharing\">Peanuts Encoding Editorial Decisions<\/a>&#8221; document.<\/p>\n<h4>teiHeader<\/h4>\n<ul>\n<li>&lt;filedesc&gt;\n<ul>\n<li>&lt;titleStmt&gt;\n<ul>\n<li>&lt;title&gt;: Change the title to have the correct date in YYYY-MM-DD format<\/li>\n<li>&lt;respStmt&gt;&lt;persName&gt;: Change &#8220;Your Name&#8221; to\u2014surprise!\u2014your name<\/li>\n<\/ul>\n<\/li>\n<li>&lt;publicationStmt&gt;\n<ul>\n<li>&lt;idno&gt;: Set the date to the proper YYYY-MM-DD format. Please make sure you <em>don&#8217;t<\/em> put a space between Peanuts and the year.<\/li>\n<\/ul>\n<\/li>\n<li><code>&lt;sourceDesc&gt;<\/code>\n<ul>\n<li><code>&lt;title level='a'&gt;<\/code>: Change the date of the strip to the proper date in YYYY-MM-DD format.<\/li>\n<li><code>&lt;title&gt;<\/code>: Change the title of the book if you are working with a different volume.<\/li>\n<li><code>&lt;date&gt;<\/code>: Change the publication date if you are working with a different volume. The 1971-1972 volume was published in 2009.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><code>&lt;revisionDesc&gt;<\/code>\n<ul>\n<li><code>&lt;change&gt;<\/code>: for the value of <code>who<\/code>, use your r-name from the taxonomy. For the value of <code>when<\/code>, record the date you are doing the edits using YYYY-MM-DD format. Then replace the <code>?<\/code> with a description of what you did. Most of the time, &#8220;initial markup&#8221; will be a perfectly acceptable good description.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>facsimile<\/h4>\n<ul>\n<li><code>&lt;graphic&gt;<\/code> update the value of <code>url<\/code> to the proper date for your comic. Open the URL in a browser to make sure it resolves properly.<\/li>\n<\/ul>\n<h4>Body<\/h4>\n<h5>Metadata<\/h5>\n<ul>\n<li><code>&lt;head&gt;<\/code>: update the value of <code>when<\/code> to the proper YYYY-MM-DD format. Then change the date within the element to <code>(D)D [full month name] YYYY<\/code> format.<\/li>\n<li><code>&lt;div...xml:id&gt;: <\/code>Change the value of <code>xml:id<\/code> to match the <code>idno<\/code> value from the <code>&lt;publicationStmt&gt;<\/code> from the <code>teiHeader<\/code>.<\/li>\n<\/ul>\n<h5>Panels<\/h5>\n<p>The template has a default of 4 panels. If there are more or less panels, add or subtract <code>&lt;cbml:panel&gt;<\/code> elements.<\/p>\n<h6>Characters<\/h6>\n<ul>\n<li><code>&lt;cbml:panel&gt;<\/code>: For each panel, set the value of <code>characters<\/code> that appear in that panel to the shortcodes of character names from the <a href=\"https:\/\/github.com\/briancroxall\/peanuts-taxonomy\/blob\/master\/peanuts-taxonomy.xml\">taxonomy<\/a>. Separate multiple character names with a space, e.g. <code>\"#c-cb #c-lucy #c-violet\"<\/code>.<\/li>\n<\/ul>\n<h6>Speech and Sound<\/h6>\n<ul>\n<li><code>&lt;cbml:balloon&gt;<\/code>: Use this element to transcribe each speech. Change the value of the <code>type<\/code> attribute to <a href=\"https:\/\/docs.google.com\/document\/d\/1-4u0SHY5PW16sfcEqL8mOYl-x2JB0piXowOOpLYGn7I\/edit?usp=sharing\">another choice<\/a> if it&#8217;s not a normal speech bubble. Set the value of the <code>who<\/code> attribute to the appropriate character name from the <a href=\"https:\/\/github.com\/briancroxall\/peanuts-taxonomy\/blob\/master\/peanuts-taxonomy.xml\">taxonomy<\/a>.<\/li>\n<li>If there are multiple word balloons in a single panel, add additional <code>&lt;cbml:balloon&gt;<\/code> elements.<\/li>\n<li>If characters are referred by name or by nickname (e.g., &#8220;Chuck&#8221;) in a speech bubble, wrap the name in a <code>&lt;persName&gt;<\/code> element and use a <code>ref<\/code> attribute with the value set to the taxonomy reference; for example, <code>&lt;persName ref=\"#c-cb\"&gt;<\/code>.<\/li>\n<li>If characters are referred to in other ways than by a name (most often a pronoun), wrap the referencing word(s) in an <code>&lt;rs&gt;<\/code> element and use a <code>ref<\/code> attribute with the value set to the taxonomy reference; for example, <code>&lt;rs ref=\"#c-cb\"&gt;<\/code>.<\/li>\n<li>If real people are referred to by name (e.g., Beethoven), tag them using a <code>&lt;persName&gt;<\/code> element and use a <code>ref<\/code>\u00a0attribute with the value set to a URI from an authority file like <a href=\"https:\/\/viaf.org\/\">VIAF<\/a>. For example, <code>&lt;persName ref=\"https:\/\/viaf.org\/viaf\/32182557\/\"&gt;Beethoven&lt;\/persName&gt;<\/code>. You can often find such URIs at the bottom of a person&#8217;s <a href=\"https:\/\/en.wikipedia.org\/wiki\/Main_Page\">Wikipedia<\/a> entry.<\/li>\n<li>If real places are referred to by name (e.g., New York), tag them using a <code>&lt;placeName&gt;<\/code> element and use a <code>ref<\/code>\u00a0attribute with the value set to a URI from an authority file like <a href=\"https:\/\/www.geonames.org\/\">GeoNames<\/a>.<\/li>\n<li><code>&lt;sound&gt;<\/code>: Use this element to encode sounds that are not in a speech bubble. If there are sounds within a speech bubble (see <a href=\"https:\/\/www.gocomics.com\/peanuts\/1952\/05\/04\">this example<\/a>), put a <code>&lt;sound&gt;<\/code> element within the <code>&lt;cbml:balloon&gt;<\/code> element.<\/li>\n<\/ul>\n<h6>Transitions<\/h6>\n<ul>\n<li><code>&lt;cbml:panel&gt;<\/code>: For each panel except for the first, set the value of <code>ana<\/code> to the tr-name from the <a href=\"https:\/\/github.com\/briancroxall\/peanuts-taxonomy\/blob\/master\/peanuts-taxonomy.xml\">taxonomy<\/a>. Do your best to work according to McCloud&#8217;s definitions. If you are uncertain about a transition, bring it to class and we will discuss it together.<\/li>\n<\/ul>\n<h6>Notes<\/h6>\n<ul>\n<li><code>&lt;note&gt;<\/code>: Set the value of <code>resp<\/code> to your r-name from the <a href=\"https:\/\/github.com\/briancroxall\/peanuts-taxonomy\/blob\/master\/peanuts-taxonomy.xml\">taxonomy<\/a>. Within the element, write a brief description of what happens in the panel. See the <a href=\"https:\/\/github.com\/briancroxall\/peanuts\/blob\/master\/test\/peanuts_1950_10_02.xml\">1950<\/a> and <a href=\"https:\/\/github.com\/briancroxall\/peanuts\/blob\/master\/test\/peanuts_1982_02_13.xml\">1982<\/a> examples in the <code>test<\/code> folder within the repo for ideas.<\/li>\n<\/ul>\n<h6>Signature and Date<\/h6>\n<ul>\n<li>Look for Schulz&#8217;s signature and date and move the <code>&lt;docAuthor&gt;<\/code> and <code>&lt;docDate&gt;<\/code> elements to the proper panel.<\/li>\n<li><code>&lt;docAuthor&gt;<\/code>: If Schulz writes his name differently, update it. If he renders it in a different font or style, encode this with <code>&lt;hi rend=\"[description]\"&gt;<\/code>.<\/li>\n<li><code>&lt;docDate&gt;<\/code>: Record the date <em>as Schulz writes it<\/em> in this element.<\/li>\n<\/ul>\n<h6>Anything Else<\/h6>\n<p>We will collectively decide if there&#8217;s anything else we would like to tag in the strips and how we will do this.<\/p>\n<h3>Commit and push the strip<\/h3>\n<p>After you&#8217;ve finished your work on one or more strips, commit and push the changes you have made to the repo using the GitHub Desktop client. You might want to create a different commit for each strip as you work. Before you can push your changes, you might need to fetch origin to get changes that others have made.<\/p>\n<h3>Reflect on the Assignment<\/h3>\n<p>After you have completed your two months of strips, you will write a three-page reflection on the assignment. Some questions to consider in your reflection are:<\/p>\n<ul>\n<li>What did I learn about digital humanities from this assignment?<\/li>\n<li>What did I learn about <em>Peanuts<\/em> from this assignment?<\/li>\n<li>What did I learn about research from this assignment?<\/li>\n<li>What would I change about this assignment to make it more relevant, informative, enjoyable, challenging, or interesting?<\/li>\n<\/ul>\n<h2>Grading<\/h2>\n<p>This assignment is worth 125 points. I will randomly select five of the strips that you marked up. Each of these five strips will be worth up to 20 points distributed as follows:<\/p>\n<ul>\n<li>5 points: I will check the strip to see if it is well-formed (per XML standards) and if it validates (against the TEI schema). Basically, if it gets a green light in Oxygen, you will be good to go.<\/li>\n<li>3 points: I will check to see if your `<teiHeader>` contains all the required information.<\/li>\n<li>2 points: Using your URL from the <code>&lt;facsimile&gt;<\/code>, I will check the encoded strip&#8217;s text against the original text to make sure it is all correct.<\/li>\n<li>10 points: I will check the &lt;<code>text&gt;<\/code> to see if you have correctly tagged speech, sound, character, person, and place names, as well as anything else we determine as a class.<\/li>\n<\/ul>\n<p>The remaining 25 points for the assignment will be awarded for timeliness and in connection with the reflection paper.<\/p>\n<h2>Credits<\/h2>\n<p>I designed the <a href=\"https:\/\/briancroxall.net\/w18dh\/assignments\/tei-edition\/\">first version of this assignment in 2018<\/a> after discussions with <a href=\"https:\/\/library.brown.edu\/create\/cds\/people\/elli-mylonas\/\">Elli Mylonas<\/a>, TEI aficionado and colleague extraordinaire, and I made some important revisions <a href=\"https:\/\/briancroxall.net\/w19dh\/assignments\/tei-markup\/\">in 2019<\/a>. It&#8217;s been updated considerably this year for our work on <em>Peanuts<\/em>, drawing particularly on the work of <a href=\"https:\/\/info.sice.indiana.edu\/~jawalsh\/\">John A. Walsh<\/a> and his <a href=\"http:\/\/dcl.ils.indiana.edu\/cbml\/\">Comic Book Markup Language<\/a>. Working from <a href=\"http:\/\/www.digitalhumanities.org\/dhq\/vol\/6\/1\/000117\/000117.html\">Walsh&#8217;s article in <em>Digital Humanities Quarterly<\/em><\/a>, Elli created the basic strip template and she helped me refine it further.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rationale As I&#8217;ve told you, my colleagues in ODH have created a corpus of all the Peanuts comics by harvesting data from GoComics.com. The GoComics team has created transcripts of what happens in the comics, which is tremendously helpful. But&#8230;it turns out they&#8217;re not always exactly correct. Just take a look at Schulz&#8217;s comic for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":34,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-268","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/pages\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":13,"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/pages\/268\/revisions"}],"predecessor-version":[{"id":422,"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/pages\/268\/revisions\/422"}],"up":[{"embeddable":true,"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/pages\/34"}],"wp:attachment":[{"href":"https:\/\/briancroxall.net\/w20dh\/wp-json\/wp\/v2\/media?parent=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}