Module 4: Poetry

3. Rhyme

3.1. Rhyming words

The rhyming words of a line of verse can be encoded using the appropriate <rhyme> element:
<lg type="poem">
<lg type="stanza">
<l>
<rhyme>Poppadom</rhyme>
</l>
<l>
<rhyme>Oatmeal</rhyme>
</l>
<l>Bubble <rhyme>gum</rhyme></l>
<l>Cut of <rhyme>veal</rhyme></l>
</lg>
<lg type="stanza">
<l>Mince for <rhyme>pie</rhyme></l>
<l>Frozen <rhyme>peas</rhyme></l>
<l>Video for <rhyme>Guy</rhyme></l>
<l>Selection of <rhyme>teas</rhyme></l>
</lg>
<lg type="stanza">
<l>Paper towels/garbage <rhyme>bags</rhyme></l>
<l>Pasta sauce and <rhyme>Parmesan</rhyme></l>
<l>Pumpkin seed and olive <rhyme>oil</rhyme></l>
</lg>
<lg type="stanza">
<l>Cheesy crisps and favourite <rhyme>mags</rhyme></l>
<l>Kidney beans (1 large <rhyme>can</rhyme>)</l>
<l>Cling film and kitchen <rhyme>foil</rhyme></l>
</lg>
</lg>
<rhyme> can appear anywhere in the line. This way, not only end-of-line rhymes can be tagged but also internal rhyme, even inside prose(-like) paragraphs like in the following fragment:
<p>
<rhyme>This</rhyme>
<rhyme>course</rhyme>
on verse
<rhyme>is</rhyme>
<rhyme>terse</rhyme>
and provides a
<rhyme>fine</rhyme>
de<rhyme>sign</rhyme> for the study of poetry like
<rhyme>yours</rhyme>
and
<rhyme>mine</rhyme>
</p>

3.2. Rhyme patterns

Rhyme patterns can be documented with a @rhyme attribute which has a default notation in which distinct letters stand for rhyming lines. This attribute can be added to <lg> and/or to <l>, and also to any <div> element that is used for the encoding of poetry.
The rhyme scheme in the shopping list poem is "ababcdcdefgefg". This can be documented inside the @rhyme attribute of <lg type="poem">. The rhyme scheme of the separate stanzas can be encoded inside the @rhyme attribute of <lg type="stanza">, and even the rhyme scheme of the separate lines can technically be encoded inside the @rhyme attribute of the <l> element. The complexity of the use of all these options depends on the encoder. A maximally complex encoding could be the following:
<lg type="poem" rhyme="ababcdcdefgefg">
<lg type="stanza">
<l rhyme="a">
<rhyme>Poppadom</rhyme>
</l>
<l rhyme="b">
<rhyme>Oatmeal</rhyme>
</l>
<l rhyme="a">Bubble <rhyme>gum</rhyme></l>
<l rhyme="b">Cut of <rhyme>veal</rhyme></l>
</lg>
<lg type="stanza">
<l rhyme="c">Mince for <rhyme>pie</rhyme></l>
<l rhyme="d">Frozen <rhyme>peas</rhyme></l>
<l rhyme="c">Video for <rhyme>Guy</rhyme></l>
<l rhyme="d">Selection of <rhyme>teas</rhyme></l>
</lg>
<lg type="stanza">
<l rhyme="e">Paper towels/garbage <rhyme>bags</rhyme></l>
<l rhyme="f">Pasta sauce and <rhyme>Parmesan</rhyme></l>
<l rhyme="g">Pumpkin seed and olive <rhyme>oil</rhyme></l>
</lg>
<lg type="stanza">
<l rhyme="e">Cheesy crisps and favourite <rhyme>mags</rhyme></l>
<l rhyme="f">Kidney beans (1 large <rhyme>can</rhyme>)</l>
<l rhyme="g">Cling film and kitchen <rhyme>foil</rhyme></l>
</lg>
</lg>

3.3. Rhyming words and patterns

The correspondence between the rhyming pattern documented in the @rhyme attribute and the rhyming words encoded with the <rhyme> element can be specified in a @label attribute to the <rhyme> element. The value of this attribute is usually one of the letters of the rhyme pattern. Applied to the shopping list poem, this results in the following encoding:
<lg type="poem" rhyme="ababcdcdefgefg">
<lg type="stanza">
<l>
<rhyme label="a">Poppadom</rhyme>
</l>
<l>
<rhyme label="b">Oatmeal</rhyme>
</l>
<l>Bubble <rhyme label="a">gum</rhyme></l>
<l>Cut of <rhyme label="b">veal</rhyme></l>
</lg>
<lg type="stanza">
<l>Mince for <rhyme label="c">pie</rhyme></l>
<l>Frozen <rhyme label="d">peas</rhyme></l>
<l>Video for <rhyme label="c">Guy</rhyme></l>
<l>Selection of <rhyme label="d">teas</rhyme></l>
</lg>
<lg type="stanza">
<l>Paper towels/garbage <rhyme label="e">bags</rhyme></l>
<l>Pasta sauce and <rhyme label="f">Parmesan</rhyme></l>
<l>Pumpkin seed and olive <rhyme label="g">oil</rhyme></l>
</lg>
<lg type="stanza">
<l>Cheesy crisps and favourite <rhyme label="e">mags</rhyme></l>
<l>Kidney beans (1 large <rhyme label="f">can</rhyme>)</l>
<l>Cling film and kitchen <rhyme label="g">foil</rhyme></l>
</lg>
</lg>
All <rhyme> elements with the same value for their @label attribute are assumed to rhyme with each other within a given scope. That scope is defined by the nearest ancestor element for which the @rhyme attribute has been supplied.
In the following encoding of the same poem, the scope is defined by the <lg type="stanza"> element. This means that the rhyming words labelled a, b, or c are only assumed to rhyme inside the stanza and not across stanzas:
<lg type="poem">
<lg type="stanza" rhyme="abab">
<l>
<rhyme label="a">Poppadom</rhyme>
</l>
<l>
<rhyme label="b">Oatmeal</rhyme>
</l>
<l>Bubble <rhyme label="a">gum</rhyme></l>
<l>Cut of <rhyme label="b">veal</rhyme></l>
</lg>
<lg type="stanza" rhyme="abab">
<l>Mince for <rhyme label="a">pie</rhyme></l>
<l>Frozen <rhyme label="b">peas</rhyme></l>
<l>Video for <rhyme label="a">Guy</rhyme></l>
<l>Selection of <rhyme label="b">teas</rhyme></l>
</lg>
<lg type="stanza" rhyme="abc">
<l>Paper towels/garbage <rhyme label="a">bags</rhyme></l>
<l>Pasta sauce and <rhyme label="b">Parmesan</rhyme></l>
<l>Pumpkin seed and olive <rhyme label="c">oil</rhyme></l>
</lg>
<lg type="stanza" rhyme="abc">
<l>Cheesy crisps and favourite <rhyme label="a">mags</rhyme></l>
<l>Kidney beans (1 large <rhyme label="b">can</rhyme>)</l>
<l>Cling film and kitchen <rhyme label="c">foil</rhyme></l>
</lg>
</lg>

Summary

The occurrence of rhyming words and rhyming patterns and their correspondence can be encoded by a combination of tags and attribute values. Depending on the encoder's preferences, they can be applied to different structural levels of the text.