The Piers Plowman Project

March 7


January 25

Word document


January 24

Word document


December 27

Combination: Vaughan modern spelling - Vaughan Middle English



December 26

Combination: Vaughan - Knott Fowler



December 20

Prologue stylings



December 18

Prologue stylings



December 6

Prologue stylings



December 5

Prologue stylings

November 30

See the stylings of the Prologue



November 29



November 28

Putting footnotes in a div tag that is embedded in a td tag.

November 27

Hi Miceal!

Here is a link to the prototype. It works in both IE and Firefox, but IE seems faster in switching among stylesheets.

I think that we've come to a conceptual impasse, in that (among other things) the "oldReading" field is too complex. Consider the first line of the Prologue:


    <unit value="In" glossterm="null" midEngSpelling="null" oldReading="null" modernSpelling="null" space="yes" special="indent" />
    <unit value="a" glossterm="null" midEngSpelling="null" oldReading="null" modernSpelling="null" space="yes" special="no" />
    <unit value="somer" glossterm="spring" midEngSpelling="null" oldReading="true" modernSpelling="summer" space="yes" special="no" />
    <unit value="somyr" glossterm="spring" midEngSpelling="null" oldReading="false" modernSpelling="null" space="yes" special="no" />
    <unit value="seson" glossterm="season" midEngSpelling="null" oldReading="true" modernSpelling="season" space="no" special="no" />
    <unit value="sesoun" glossterm="season" midEngSpelling="null" oldReading="false" modernSpelling="null" space="no" special="no" />
    <unit value="," glossterm="null" midEngSpelling=" ." oldReading="null" modernSpelling="null" space="yes" special="no" />
    <unit value="whanne" glossterm="null" midEngSpelling="null" oldReading="true" modernSpelling="when" space="yes" special="no" />
    <unit value="whenne" glossterm="null" midEngSpelling="null" oldReading="false" modernSpelling="when" space="yes" special="no" />
    <unit value="softe" glossterm="null" midEngSpelling="null" oldReading="true" modernSpelling="null" space="yes" special="no" />
    <unit value="was" glossterm="null" midEngSpelling="null" oldReading="true" modernSpelling="null" space="yes" special="no" />
    <unit value="the" glossterm="null" midEngSpelling="Þe" oldReading="true" modernSpelling="null" space="yes" special="no" />
    <unit value="sonne" glossterm="sun" midEngSpelling="null" oldReading="true" modernSpelling="sun" space="no" special="no" />
    <unit value="I" glossterm="null" midEngSpelling="null" oldReading="false" modernSpelling="null" space="yes" special="no" />
    <unit value="south" glossterm="null" midEngSpelling="souþ" oldReading="false" modernSpelling="null" space="yes" special="no" />
    <unit value="wente" glossterm="null" midEngSpelling="null" oldReading="false" modernSpelling="went" space="no" special="no" />
    <unit value="," glossterm="null" midEngSpelling="null" oldReading="false" modernSpelling="null" space="yes" special="no" />

A "default" term

To produce a default term (i.e., when the web page is first presented), I'm using this logic:


<span class="default">
    <xsl:choose>
        <xsl:when test="@oldReading = 'null'">
            <xsl:value-of select="@value"/>
        </xsl:when>
        <xsl:when test="@oldReading = 'false'">
            <xsl:value-of select="@value"/>
        </xsl:when>
    </xsl:choose>
</span>

This produces the line: "In a somyr sesoun, whenne I south wente,", but I wonder if this default would hold throughout the poem. Is the default reading one where oldReading is null or false?

Old reading, Middle English spelling

The question above about the default term extends to special cases such as Old reading, Middle English spelling. To produce this I used the logic:

<span class="oldMid">
<xsl:choose>
    <xsl:when test="@oldReading = 'true' ">
        <xsl:if test="@midEngSpelling != 'null' ">  [NOT 'null']
            <xsl:value-of select="@midEngSpelling"/>
        </xsl:if>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="@value"/>
    </xsl:otherwise>
</xsl:choose>

</span>

Here I'm testing if oldReading is 'true' and if midEngSpelling is not null to catch the case of oldReading/Middle English Spelling

I wonder about this logic when I hit these two lines:

<unit value="somer" glossterm="spring" midEngSpelling="null" oldReading="true" modernSpelling="summer" space="yes" special="no" />
<unit value="somyr" glossterm="spring" midEngSpelling="null" oldReading="false" modernSpelling="null" space="yes" special="no" />

Here midEngSpelling is null in both cases and oldReading is either true or false. Which of these should be used in the case of oldReading/Middle English spelling?

New reading, Middle English spelling

Things really fall apart when I try to use logic to show New reading/Middle English spelling.

I use this logic:

<span class="newMid">
        <xsl:choose>
            <xsl:when test="@oldReading != 'true' ">  [Not true]
                <xsl:if test="@midEngSpelling != 'null' ">  [Note null]
                    <xsl:value-of select="@midEngSpelling"/>
                </xsl:if>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="@value"/>
            </xsl:otherwise>
        </xsl:choose>
    </span>

Here I'm attempting to find a New Reading by testing the case that oldReading is not 'true', but sometimes oldReading is 'false' and 'null'. It produces the line "somer seson. whanne softe was the sonne souþ" which is missing some of the words not captured by this logic.

Possible avenues towards a solution

One: Perhaps we should introduce another field "newReading" so we can test for it directly. What is the relationship between old reading and new reading as follows:

Old Reading New Reading
null ?
true ?
false ?

Two: What would be a default term as defined by oldReading/newReading, newSpelling/midEngSpelling?

I'm using the strategy of exchaning CSS stylesheets to show a "default" term, the "old reading/middle English" state, the "old reading/modern spelling" state, the "new reading/middle English" state, and the "new reading/modern spelling" state. This makes for a very heavy HTML document that is slowing down Firefox. There are various solutions: (1) Throw separate web pages for these fives states, (2) Use JavaScript to switch just certain terms (this was the strategy in the original web page that you gave me), but it would require sorting out the logic (see above).