Shakespeare : Sonnets In XML
A long long time ago I found Shakespeare in XML, by Jon Bosak, and I’ve quite literally carried it around with me ever since. If you’re not a programming geek you may not know the value of XML, so let me try to explain. XML is like a database inside a file – it is self describing of what’s in it. So instead of this:
Act 1, Scene 1
SCENE I. Elsinore. A platform before the castle.
FRANCISCO at his post. Enter to him BERNARDO
BERNARDO
Who's there?
You get something more like this:
<Act>
<Title>Act 1</Title>
<Scene>
<Title>Scene 1</Title>
<Stagedir>Elsinore. A platform before the castle … </Stagedir>
<Speech>
<Speaker>
<Name>Bernardo</Name>
</Speaker>
<Line>Who’s there?</Line>
</Speech>
…
Get the idea? So if you’re a code geek you look at that and start seeing the logic you can apply, like “In Act #3 how many lines are there in all of the speeches spoken by Hamlet?” and it’s quite literally one or two lines of code.
Anyway, I never found the Sonnets in XML. There’s one or two out there as examples of how to do XML, but I never found the whole set of 154, and I wanted it.
It’s very basic, but it does what I need. If others find it useful and make enhancements I’d appreciate hearing about it.
Enjoy!
4 comments:
Thanks Duane! Needed this for syntactic analysis.
Many thanks for this.
Just to be pedantic, I've spotted what seem to be a few minor errors.
(I'm comparing with the Project text.)
Sonnet 22
Presume not on th;heart when mine is slain,
-> Presume not on thy heart when mine is slain,
Sonnet 29
From sullen earth, sings hymns at heaven's gate,;
-> From sullen earth, sings hymns at heaven's gate;
Sonnet 44
I must attend, time's leisure with my moan;
-> I must attend time's leisure with my moan;
Sonnet 51
In winged speed no motion shall I know,
-> In winged speed n:motion shall I know,
Sonnet 74
Too base of thee to be remembered,.
-> Too base of thee to be remembered.
Sonnet 149
But, love, hate on, for now I know thy mind,;
-> But, love, hate on, for now I know thy mind;
Sonnet 152
To swear against the truth so foul a lie.!
-> To swear against the truth so foul a lie!
Cheers
Sam
Thanks, Sam -- I will update the file with your corrections shortly.
Cheers Duane.
For what it's worth, I've also ported ;) the sonnets to JSON.
Details in this blog post.
Using the JSON (with apologies for shameless self promotion) I've built an 'instant' sonnet search app.
Sam
Post a Comment