joewiz
11/19/2016 - 10:33 PM

Reassemble lines from Folger Shakespeare digital texts

Reassemble lines from Folger Shakespeare digital texts

<lg>
    <l>Good Margaret, run thee to the parlor.</l>
    <l>There shalt thou find my cousin Beatrice</l>
    <l>Proposing with the Prince and Claudio.</l>
    <l>Whisper her ear and tell her I and Ursula</l>
    <l>Walk in the orchard, and our whole discourse</l>
    <l>Is all of her. Say that thou overheardst us,</l>
    <l>And bid her steal into the pleachèd bower</l>
    <l>Where honeysuckles ripened by the sun</l>
    <l>Forbid the sun to enter, like favorites,</l>
    <l>Made proud by princes, that advance their pride</l>
    <l>Against that power that bred it. There will she hide</l>
    <l>her</l>
    <l>To listen our propose. This is thy office.</l>
    <l>Bear thee well in it, and leave us alone.</l>
</lg>
xquery version "3.1";

(: Text from http://www.folgerdigitaltexts.org/download/xml/FolgerDigitalTexts_XML_Ado.zip. 
   See http://www.folgerdigitaltexts.org/download/.
:)

declare boundary-space preserve;

let $sp := 
    <sp xml:id="sp-1123" who="#Hero_Ado">
        <speaker xml:id="spk-1123">
            <w xml:id="w0189720">HERO</w>
        </speaker>
        <ab xml:id="ab-1123">
            <lb xml:id="lb-11224"/>
            <milestone unit="ftln" xml:id="ftln-1123" n="3.1.1" ana="#verse"
                corresp="#w0189730 #c0189740 #w0189750 #p0189760 #c0189770 #w0189780 #c0189790 #w0189800 #c0189810 #w0189820 #c0189830 #w0189840 #c0189850 #w0189860 #p0189870"/>
            <w xml:id="w0189730" n="3.1.1">Good</w>
            <c xml:id="c0189740" n="3.1.1"> </c>
            <w xml:id="w0189750" n="3.1.1">Margaret</w>
            <pc xml:id="p0189760" n="3.1.1">,</pc>
            <c xml:id="c0189770" n="3.1.1"> </c>
            <w xml:id="w0189780" n="3.1.1">run</w>
            <c xml:id="c0189790" n="3.1.1"> </c>
            <w xml:id="w0189800" n="3.1.1">thee</w>
            <c xml:id="c0189810" n="3.1.1"> </c>
            <w xml:id="w0189820" n="3.1.1">to</w>
            <c xml:id="c0189830" n="3.1.1"> </c>
            <w xml:id="w0189840" n="3.1.1">the</w>
            <c xml:id="c0189850" n="3.1.1"> </c>
            <w xml:id="w0189860" n="3.1.1">parlor</w>
            <pc xml:id="p0189870" n="3.1.1">.</pc>
            <lb xml:id="lb-11230"/>
            <milestone unit="ftln" xml:id="ftln-1124" n="3.1.2" ana="#verse"
                corresp="#w0189880 #c0189890 #w0189900 #c0189910 #w0189920 #c0189930 #w0189940 #c0189950 #w0189960 #c0189970 #w0189980 #c0189990 #w0190000"/>
            <w xml:id="w0189880" n="3.1.2">There</w>
            <c xml:id="c0189890" n="3.1.2"> </c>
            <w xml:id="w0189900" n="3.1.2">shalt</w>
            <c xml:id="c0189910" n="3.1.2"> </c>
            <w xml:id="w0189920" n="3.1.2">thou</w>
            <c xml:id="c0189930" n="3.1.2"> </c>
            <w xml:id="w0189940" n="3.1.2">find</w>
            <c xml:id="c0189950" n="3.1.2"> </c>
            <w xml:id="w0189960" n="3.1.2">my</w>
            <c xml:id="c0189970" n="3.1.2"> </c>
            <w xml:id="w0189980" n="3.1.2">cousin</w>
            <c xml:id="c0189990" n="3.1.2"> </c>
            <w xml:id="w0190000" n="3.1.2">Beatrice</w>
            <lb xml:id="lb-11240"/>
            <milestone unit="ftln" xml:id="ftln-1125" n="3.1.3" ana="#verse"
                corresp="#w0190010 #c0190020 #w0190030 #c0190040 #w0190050 #c0190060 #w0190070 #c0190080 #w0190090 #c0190100 #w0190110 #p0190120"/>
            <w xml:id="w0190010" n="3.1.3">Proposing</w>
            <c xml:id="c0190020" n="3.1.3"> </c>
            <w xml:id="w0190030" n="3.1.3">with</w>
            <c xml:id="c0190040" n="3.1.3"> </c>
            <w xml:id="w0190050" n="3.1.3">the</w>
            <c xml:id="c0190060" n="3.1.3"> </c>
            <w xml:id="w0190070" n="3.1.3">Prince</w>
            <c xml:id="c0190080" n="3.1.3"> </c>
            <w xml:id="w0190090" n="3.1.3">and</w>
            <c xml:id="c0190100" n="3.1.3"> </c>
            <w xml:id="w0190110" n="3.1.3">Claudio</w>
            <pc xml:id="p0190120" n="3.1.3">.</pc>
            <lb xml:id="lb-11250"/>
            <milestone unit="ftln" xml:id="ftln-1126" n="3.1.4" ana="#verse"
                corresp="#w0190130 #c0190140 #w0190150 #c0190160 #w0190170 #c0190180 #w0190190 #c0190200 #w0190210 #c0190220 #w0190230 #c0190240 #w0190250 #c0190260 #w0190270 #c0190280 #w0190290"/>
            <w xml:id="w0190130" n="3.1.4">Whisper</w>
            <c xml:id="c0190140" n="3.1.4"> </c>
            <w xml:id="w0190150" n="3.1.4">her</w>
            <c xml:id="c0190160" n="3.1.4"> </c>
            <w xml:id="w0190170" n="3.1.4">ear</w>
            <c xml:id="c0190180" n="3.1.4"> </c>
            <w xml:id="w0190190" n="3.1.4">and</w>
            <c xml:id="c0190200" n="3.1.4"> </c>
            <w xml:id="w0190210" n="3.1.4">tell</w>
            <c xml:id="c0190220" n="3.1.4"> </c>
            <w xml:id="w0190230" n="3.1.4">her</w>
            <c xml:id="c0190240" n="3.1.4"> </c>
            <w xml:id="w0190250" n="3.1.4">I</w>
            <c xml:id="c0190260" n="3.1.4"> </c>
            <w xml:id="w0190270" n="3.1.4">and</w>
            <c xml:id="c0190280" n="3.1.4"> </c>
            <w xml:id="w0190290" n="3.1.4">Ursula</w>
            <lb xml:id="lb-11260"/>
            <milestone unit="ftln" xml:id="ftln-1127" n="3.1.5" ana="#verse"
                corresp="#w0190300 #c0190310 #w0190320 #c0190330 #w0190340 #c0190350 #w0190360 #p0190370 #c0190380 #w0190390 #c0190400 #w0190410 #c0190420 #w0190430 #c0190440 #w0190450"/>
            <w xml:id="w0190300" n="3.1.5">Walk</w>
            <c xml:id="c0190310" n="3.1.5"> </c>
            <w xml:id="w0190320" n="3.1.5">in</w>
            <c xml:id="c0190330" n="3.1.5"> </c>
            <w xml:id="w0190340" n="3.1.5">the</w>
            <c xml:id="c0190350" n="3.1.5"> </c>
            <w xml:id="w0190360" n="3.1.5">orchard</w>
            <pc xml:id="p0190370" n="3.1.5">,</pc>
            <c xml:id="c0190380" n="3.1.5"> </c>
            <w xml:id="w0190390" n="3.1.5">and</w>
            <c xml:id="c0190400" n="3.1.5"> </c>
            <w xml:id="w0190410" n="3.1.5">our</w>
            <c xml:id="c0190420" n="3.1.5"> </c>
            <w xml:id="w0190430" n="3.1.5">whole</w>
            <c xml:id="c0190440" n="3.1.5"> </c>
            <w xml:id="w0190450" n="3.1.5">discourse</w>
            <lb xml:id="lb-11270"/>
            <milestone unit="ftln" xml:id="ftln-1128" n="3.1.6" ana="#verse"
                corresp="#w0190460 #c0190470 #w0190480 #c0190490 #w0190500 #c0190510 #w0190520 #p0190530 #c0190540 #w0190550 #c0190560 #w0190570 #c0190580 #w0190590 #c0190600 #w0190610 #c0190620 #w0190630 #p0190640"/>
            <w xml:id="w0190460" n="3.1.6">Is</w>
            <c xml:id="c0190470" n="3.1.6"> </c>
            <w xml:id="w0190480" n="3.1.6">all</w>
            <c xml:id="c0190490" n="3.1.6"> </c>
            <w xml:id="w0190500" n="3.1.6">of</w>
            <c xml:id="c0190510" n="3.1.6"> </c>
            <w xml:id="w0190520" n="3.1.6">her</w>
            <pc xml:id="p0190530" n="3.1.6">.</pc>
            <c xml:id="c0190540" n="3.1.6"> </c>
            <w xml:id="w0190550" n="3.1.6">Say</w>
            <c xml:id="c0190560" n="3.1.6"> </c>
            <w xml:id="w0190570" n="3.1.6">that</w>
            <c xml:id="c0190580" n="3.1.6"> </c>
            <w xml:id="w0190590" n="3.1.6">thou</w>
            <c xml:id="c0190600" n="3.1.6"> </c>
            <w xml:id="w0190610" n="3.1.6">overheardst</w>
            <c xml:id="c0190620" n="3.1.6"> </c>
            <w xml:id="w0190630" n="3.1.6">us</w>
            <pc xml:id="p0190640" n="3.1.6">,</pc>
            <lb xml:id="lb-11280"/>
            <milestone unit="ftln" xml:id="ftln-1129" n="3.1.7" ana="#verse"
                corresp="#w0190650 #c0190660 #w0190670 #c0190680 #w0190690 #c0190700 #w0190710 #c0190720 #w0190730 #c0190740 #w0190750 #c0190760 #w0190770 #c0190780 #w0190790"/>
            <w xml:id="w0190650" n="3.1.7">And</w>
            <c xml:id="c0190660" n="3.1.7"> </c>
            <w xml:id="w0190670" n="3.1.7">bid</w>
            <c xml:id="c0190680" n="3.1.7"> </c>
            <w xml:id="w0190690" n="3.1.7">her</w>
            <c xml:id="c0190700" n="3.1.7"> </c>
            <w xml:id="w0190710" n="3.1.7">steal</w>
            <c xml:id="c0190720" n="3.1.7"> </c>
            <w xml:id="w0190730" n="3.1.7">into</w>
            <c xml:id="c0190740" n="3.1.7"> </c>
            <w xml:id="w0190750" n="3.1.7">the</w>
            <c xml:id="c0190760" n="3.1.7"> </c>
            <w xml:id="w0190770" n="3.1.7">pleachèd</w>
            <c xml:id="c0190780" n="3.1.7"> </c>
            <w xml:id="w0190790" n="3.1.7">bower</w>
            <lb xml:id="lb-11290"/>
            <milestone unit="ftln" xml:id="ftln-1130" n="3.1.8" ana="#verse"
                corresp="#w0190800 #c0190810 #w0190820 #c0190830 #w0190840 #c0190850 #w0190860 #c0190870 #w0190880 #c0190890 #w0190900"/>
            <w xml:id="w0190800" n="3.1.8">Where</w>
            <c xml:id="c0190810" n="3.1.8"> </c>
            <w xml:id="w0190820" n="3.1.8">honeysuckles</w>
            <c xml:id="c0190830" n="3.1.8"> </c>
            <w xml:id="w0190840" n="3.1.8">ripened</w>
            <c xml:id="c0190850" n="3.1.8"> </c>
            <w xml:id="w0190860" n="3.1.8">by</w>
            <c xml:id="c0190870" n="3.1.8"> </c>
            <w xml:id="w0190880" n="3.1.8">the</w>
            <c xml:id="c0190890" n="3.1.8"> </c>
            <w xml:id="w0190900" n="3.1.8">sun</w>
            <lb xml:id="lb-11300"/>
            <milestone unit="ftln" xml:id="ftln-1131" n="3.1.9" ana="#verse"
                corresp="#w0190910 #c0190920 #w0190930 #c0190940 #w0190950 #c0190960 #w0190970 #c0190980 #w0190990 #p0191000 #c0191010 #w0191020 #c0191030 #w0191040 #p0191045"/>
            <w xml:id="w0190910" n="3.1.9">Forbid</w>
            <c xml:id="c0190920" n="3.1.9"> </c>
            <w xml:id="w0190930" n="3.1.9">the</w>
            <c xml:id="c0190940" n="3.1.9"> </c>
            <w xml:id="w0190950" n="3.1.9">sun</w>
            <c xml:id="c0190960" n="3.1.9"> </c>
            <w xml:id="w0190970" n="3.1.9">to</w>
            <c xml:id="c0190980" n="3.1.9"> </c>
            <w xml:id="w0190990" n="3.1.9">enter</w>
            <pc xml:id="p0191000" n="3.1.9">,</pc>
            <c xml:id="c0191010" n="3.1.9"> </c>
            <w xml:id="w0191020" n="3.1.9">like</w>
            <c xml:id="c0191030" n="3.1.9"> </c>
            <w xml:id="w0191040" n="3.1.9">favorites</w>
            <pc xml:id="p0191045" n="3.1.9">,</pc>
            <app from="#p0191045">
                <rdg wit="#print #adobe"/>
            </app>
            <lb xml:id="lb-11310"/>
            <milestone unit="ftln" xml:id="ftln-1132" n="3.1.10" ana="#verse"
                corresp="#w0191050 #c0191060 #w0191070 #c0191080 #w0191090 #c0191100 #w0191110 #p0191120 #c0191130 #w0191140 #c0191150 #w0191160 #c0191170 #w0191180 #c0191190 #w0191200"/>
            <w xml:id="w0191050" n="3.1.10">Made</w>
            <c xml:id="c0191060" n="3.1.10"> </c>
            <w xml:id="w0191070" n="3.1.10">proud</w>
            <c xml:id="c0191080" n="3.1.10"> </c>
            <w xml:id="w0191090" n="3.1.10">by</w>
            <c xml:id="c0191100" n="3.1.10"> </c>
            <w xml:id="w0191110" n="3.1.10">princes</w>
            <pc xml:id="p0191120" n="3.1.10">,</pc>
            <c xml:id="c0191130" n="3.1.10"> </c>
            <w xml:id="w0191140" n="3.1.10">that</w>
            <c xml:id="c0191150" n="3.1.10"> </c>
            <w xml:id="w0191160" n="3.1.10">advance</w>
            <c xml:id="c0191170" n="3.1.10"> </c>
            <w xml:id="w0191180" n="3.1.10">their</w>
            <c xml:id="c0191190" n="3.1.10"> </c>
            <w xml:id="w0191200" n="3.1.10">pride</w>
            <lb xml:id="lb-11320"/>
            <milestone unit="ftln" xml:id="ftln-1133" n="3.1.11" ana="#verse"
                corresp="#w0191210 #c0191220 #w0191230 #c0191240 #w0191250 #c0191260 #w0191270 #c0191280 #w0191290 #c0191300 #w0191310 #p0191320 #c0191330 #w0191340 #c0191350 #w0191360 #c0191370 #w0191380 #c0191390 #w0191400"/>
            <w xml:id="w0191210" n="3.1.11">Against</w>
            <c xml:id="c0191220" n="3.1.11"> </c>
            <w xml:id="w0191230" n="3.1.11">that</w>
            <c xml:id="c0191240" n="3.1.11"> </c>
            <w xml:id="w0191250" n="3.1.11">power</w>
            <c xml:id="c0191260" n="3.1.11"> </c>
            <w xml:id="w0191270" n="3.1.11">that</w>
            <c xml:id="c0191280" n="3.1.11"> </c>
            <w xml:id="w0191290" n="3.1.11">bred</w>
            <c xml:id="c0191300" n="3.1.11"> </c>
            <w xml:id="w0191310" n="3.1.11">it</w>
            <pc xml:id="p0191320" n="3.1.11">.</pc>
            <c xml:id="c0191330" n="3.1.11"> </c>
            <w xml:id="w0191340" n="3.1.11">There</w>
            <c xml:id="c0191350" n="3.1.11"> </c>
            <w xml:id="w0191360" n="3.1.11">will</w>
            <c xml:id="c0191370" n="3.1.11"> </c>
            <w xml:id="w0191380" n="3.1.11">she</w>
            <c xml:id="c0191390" n="3.1.11"> </c>
            <w xml:id="w0191400" n="3.1.11">hide</w>
            <lb xml:id="lb-11330"/>
            <milestone unit="ftln" xml:id="ftln-1134" n="3.1.12" ana="#verse" prev="#ftln-1133"
                rend="turnunder" corresp="#w0191410"/>
            <w xml:id="w0191410" n="3.1.12">her</w>
            <lb xml:id="lb-11340"/>
            <milestone unit="ftln" xml:id="ftln-1135" n="3.1.13" ana="#verse"
                corresp="#w0191420 #c0191430 #w0191440 #c0191450 #w0191460 #c0191470 #w0191480 #p0191490 #c0191500 #w0191510 #c0191520 #w0191530 #c0191540 #w0191550 #c0191560 #w0191570 #p0191580"/>
            <w xml:id="w0191420" n="3.1.13">To</w>
            <c xml:id="c0191430" n="3.1.13"> </c>
            <w xml:id="w0191440" n="3.1.13">listen</w>
            <c xml:id="c0191450" n="3.1.13"> </c>
            <w xml:id="w0191460" n="3.1.13">our</w>
            <c xml:id="c0191470" n="3.1.13"> </c>
            <w xml:id="w0191480" n="3.1.13">propose</w>
            <pc xml:id="p0191490" n="3.1.13">.</pc>
            <c xml:id="c0191500" n="3.1.13"> </c>
            <w xml:id="w0191510" n="3.1.13">This</w>
            <c xml:id="c0191520" n="3.1.13"> </c>
            <w xml:id="w0191530" n="3.1.13">is</w>
            <c xml:id="c0191540" n="3.1.13"> </c>
            <w xml:id="w0191550" n="3.1.13">thy</w>
            <c xml:id="c0191560" n="3.1.13"> </c>
            <w xml:id="w0191570" n="3.1.13">office</w>
            <pc xml:id="p0191580" n="3.1.13">.</pc>
            <lb xml:id="lb-11350"/>
            <milestone unit="ftln" xml:id="ftln-1136" n="3.1.14" ana="#verse"
                corresp="#w0191590 #c0191600 #w0191610 #c0191620 #w0191630 #c0191640 #w0191650 #c0191660 #w0191670 #p0191680 #c0191690 #w0191700 #c0191710 #w0191720 #c0191730 #w0191740 #c0191750 #w0191760 #p0191770"/>
            <w xml:id="w0191590" n="3.1.14">Bear</w>
            <c xml:id="c0191600" n="3.1.14"> </c>
            <w xml:id="w0191610" n="3.1.14">thee</w>
            <c xml:id="c0191620" n="3.1.14"> </c>
            <w xml:id="w0191630" n="3.1.14">well</w>
            <c xml:id="c0191640" n="3.1.14"> </c>
            <w xml:id="w0191650" n="3.1.14">in</w>
            <c xml:id="c0191660" n="3.1.14"> </c>
            <w xml:id="w0191670" n="3.1.14">it</w>
            <pc xml:id="p0191680" n="3.1.14">,</pc>
            <c xml:id="c0191690" n="3.1.14"> </c>
            <w xml:id="w0191700" n="3.1.14">and</w>
            <c xml:id="c0191710" n="3.1.14"> </c>
            <w xml:id="w0191720" n="3.1.14">leave</w>
            <c xml:id="c0191730" n="3.1.14"> </c>
            <w xml:id="w0191740" n="3.1.14">us</w>
            <c xml:id="c0191750" n="3.1.14"> </c>
            <w xml:id="w0191760" n="3.1.14">alone</w>
            <pc xml:id="p0191770" n="3.1.14">.</pc>
        </ab>
    </sp>
return
    <lg>{
        for $milestone in $sp//milestone
        let $word-ids := tokenize($milestone/@corresp, '\s+') ! substring-after(., '#')
        let $words := $sp//*[@xml:id = $word-ids]
        return
            <l>{string-join($words)}</l>
    }</lg>