Translating Touch Data in Laud656

Talking about touching parchment, this week’s code blog is all about how to add touch data to our JSON descriptions of manuscripts right now, before parchment surface experimentation is perfected (watch this space, it might happen).

I’ve chosen to use Oxford, Bodleian Library MS Laud Misc. 656 for this particular endeavor because it has some really fascinating, really feature-rich, really bad parchment.  And, bad parchment is really the best, because you can see and touch so many features of it.  Unlike really high quality parchment, which has eradicated so many of its distinguishing features that it makes you forget–however momentarily–that it is skin, bad parchment carries reminders of what it was, where it came from, marks of class and production, and so much more.

So, this blog is about capturing that kind of awesome badness in code.  Now, the code to date has a few features that allow me to talk about this thing that fascinates me (the touch of parchment):


I’ve made sure to note what kind of writing support we are looking at, how many there are, and of course the type of script used to copy the text of the poem. ( In the event that different scripts or hands are used to copy different works, the script here always refers to that Piers Plowman is copied in. )

You’ll also note two other features in this data: both the support and the script get a quality rating.  Now this is just my ratingmaking it completely arbitrarythough it is systematic.  I do not claim to be an experienced paleographer or codicologist (though I have seen nearly all the Piers manuscripts, and about 30 or so others, bringing my notches up to around 80 different manuscripts), but I really wanted a way to try to encode this quality of both look and feel that seemed somehow elusive.

A dozen different manuscripts can have an “anglicana” hand with secretary features, and some can be beautiful, deliberate, and methodical applications of a skill while others can be hurried, uneven, slapdash, and altogether frantic-looking scripts.  How was one to code these differences? Well, I gave everything a 1-10 scale, since that seems to be something most of us are acquainted with.

A 5 on the scale represented an “average” quality of support or script.  Not the finest thing you’ve ever seen, nor the worst, but somewhere in the realm of what you might call “decent.”

1, of course, represented the lowest grade imaginable, while 10 was the best–the super-duper de-luxe, with views of the swimming pool and gilded crown molding. As you can imagine, most manuscripts got 5’s.

But in the case of Laud 656, a simple scale really just didn’t seem like enough to describe the fabulous stuff going on in this manuscript. So, I had to get creative.  Yup, creative coding was the solution.

I started with anything I already had good, code-ready information for–like things that were already numbers.


So I added in  measurements for the folios, making sure to designate the units of my measure as well (centimeters!).

Next, I add some elements that tend to be fairly standard parts of manuscript descriptions.


Here, I include an array (made with [ ], remember!) including two different data points on the binding–its date and make-up–as well as an indication that the folios are ruled, and how many lines of Piers there are on a page (on average).

But maybe I want to be more specificSo, I start adding in information that I gathered by examining the manuscript myself.


Now, none of these editions are (currently) machine-readable, because I had to invent this vocabulary to be adequate to the features I wanted to describe.  HOWEVER, this does use a fairly standard paleographic vocabulary, so I can reasonably say that other paleographers will understand it (remember, we use JSON because it’s both human and machine readable ). Also, I include the units in the “name” portion of the name/value pair, so that when I add a value, it’s a simple number that is machine-readable should anyone ever decide to define these common paleographical terms in an accessible online vocabulary (which they will, someday).

Speaking of someday, in ideal conditions in the future, we would also have a numeric way of classifying the shade and color of inks.  What we might be able to do is something that pedologists do to classify the colors of soil.  They use a simple printed card with standard colors on it, like swatches for paint.  Each color also has a numeric value, so if a soil is in between two values, its value can be approximated by located it between to colors’ values.


Classifying ink color and density can be something that is done by having two little cards, one with a “hue” scale for determining an ink’s relative brownness, blackness, redness, greenness, etc. and a “shade” scale for determining its darkness or lightness.  These numerical scores, then, can also be recorded and re-checked every so many years to account for the degradation of inks in manuscripts over the centuries.


Now, if we return to the parchment/support surface itself (something that by now you know I’m moderately obsessed with), we’ll have to do the same process again.  First, we’ll invent some terms:


This time, though, we can’t really use numeric data for things like “Hair-Flesh_Visibility” or “Support Texture,” so instead, we just have descriptive “values” to translate as much as possible into encoded data.  But it’s still somewhat lacking.  Even the “SupportQuality” element only tells us so much.  That little “1” is standing in for a lot of information from my notes that you, the code reader, don’t have:

These pages really seem cobbled together: lots of scraps, neck pieces, clearly some of the quires are not made by multiple folds but are a collection of small, scrap bifolia. There are lots and lots of holes, uneven edges, patches (or things that nobody bothered to patch).  All in all a rather poor manuscript, it had to be.


Just a simple “1” is really reductive, which is of course what encoding data is doing, reducing something enough to make it legible and comparable, but we are always going to sacrifice some bit of specificity in order to get an abstraction that allows us to make these computational comparisons.  (Remember our discussion of Latour and the circulating reference?)

So, to make this data available for wide-spread machine-reading and computation, we have to do this kind of reduction, but also hang onto and store (preferably somewhere online) the original data from which this numeric reduction is extracted. You never want to lose data, only to take slices out to read, compute, and compare.

So what other helpful reductions might we make regarding parchment (and/or support) quality?


Well, “Color,” “Opacity,” and “Hair-Flesh_Coloration,” might all be things for which we could use a similar kind of numericalized reference card. Indeed, if someone were interested in standardizing digital manuscript descriptionthis could be turned into a kit with a book that every Rare Books Library would have to have on their shelves! (Publishers take note!) Color and Opacity would be easy.  Hair-Flesh Coloration might take just making two different entries for “SupportColor”, like “SupportColorHair” and “SupportColorFlesh” when necessary.  Finally, “Hair-Flesh_Visibility” can be done with a similar visual comparison tool, this time with images giving examples of the different “grades” of Hair/Flesh visibility.

See. Simple.  Easy as Pie.  Or Pictures.

But what about that one other thing that I keep wanting to encode and/or quantify? What about TEXTURE?? 


Well, the short answer, for now, is still a descriptive vocabulary. As part of our standard “Manuscript Kit” now (in our ideal MS future) in every rare book library, we might also have a list of possible vocabulary words to describe some of the myriad textures of writing supports. Indeed, if we make it a good enough system, we might even be able to make some kinds of standard variations possible, like compounding in German (or Old English).  If the system is clear, and the rules for making the system legible are clear, and you don’t have quite the right word, just compound one and it will register.

If you still are really curious about quantifying textures, it’s ok.  I’m working on it.  Watch this space in the upcoming weeks.  If you’re going to be in Reykjavik for the New Chaucer Society congress next month, drop by my panel, there will be both visual aids and, erm, shall we say haptic aids.

Until then, though, we really have to think judiciously both about how we encode manuscript information for the now–for the immediate present when digital humanities and linked data are all the rage–and for the future of digital manuscript studies.  Digitization is only one way of transmitting data about a manuscript object via the intertrons–and it is a way that is strongly biased towards the VISUAL and the TEXTUAL

But there is more to know about manuscripts as MATERIAL OBJECTS than just what they look like (mise-en-page) or what texts they contain (as though they are nothing more than passive receptacles for human language).

When coding, then, it is imperative that we not reduce these complex objects to mere texts or even just textual objects. We have to find ways to include other object information that is sometimes harder to translate into letters and numbers that are easily encoded.

Here’s this weeks’ code for Laud 656 that attempts to take all these factors into account.

Laud656p1 Laud656p2 Laud656p3 Laud656p4 Laud656p5 Laud656p6 Laud656p7




“@context”: {


“name”: {“@id”:”foaf:name”},

“MSshortHand”: {“@id”:”foaf:nick”},


“dcterms”: “”,

“DateRange”: {“@id”: “dcterms:PeriodOfTime”},

“provenance”: {“@id”: “dcterms:provenance”},

“language”: {“@id”: “dcterms:language”},

“PhysicalObject”: ““,

“PublishedEdition(s)”: {“@id”: “dcterms:BibliographicResource”},


“TEI”: ““,

“msDesc”: {“@id”: “TEI:msDesc.html”},

“msIdentifier”: {“@id”: “TEI:msIdentifier.html”},

“repository”: {“@id”: “TEI:repository.html”},

“msContents”: {“@id”: “TEI:msContents.html”},

“work”: {“@id”: “TEI:msItem.html”},

“title”: {“@id”: “TEI:title”},

“author”: {“@id”: “TEI:author.html”},

“DialectRegion”: {“@id”: “TEI:region.html”},

“publisher”: {“@id”: “TEI:publisher.html”},



“date”: {“@id”: “xsd:date”},


“LALME”: “”,

“IMEVid”: “”,

“IMEPNo”: “UNLINKEDreference”,

“MEScribesid”: “”,

“MECompBib”: “”,

“MSSWMid”: “”

“PPEA”: “”




“@type”: “PhysicalObject”,

“MSshortHand”: “Laud656”,

“HoldingLocation”: “Oxford, UK”,

“repository”: “BodleianLibrary”,

“msIdentifier”: “Laud Misc. 656”,

“OnlineExhibition”: “”,

“Olim.”: null,

“LALME”: null,

“LALMEGrid”: null,


“MEScribesurl”: “”,

“MEScribesid”: {“@id”: “MEScribesid:399”},

“MSSOnline”: null,

“PPEA”: “Ec”,

“TEAMS”: null,

“IMEVNo”: 2460-1,

“IMEVid”: {“@id”: “IMEVid:BodLauMis656”},

“IMEVurl”: “”,

“MECompBib”: “”,

“MSSWMid”: null,

“MSSWMidID”: null,

“DateRange”: 1400,

“Provenance”: null,

“AcquisitionDate”: null,


“Century”: 15,

“Material”: “Leather over board”


“Material”: “Vellum”,

“SupportQuality”: 1,

“SupportColor”: “yellowing”,

“SupportOpacity”:”generally good, except on uneven edges”,

“Hair-Flesh_Visibility”: “hair sides highly visible”,

“Hair-Flesh_Coloration”: “hair sides darker and more yellow”,

“SupportTexture”: “rough”,

“FolioEdgeQuality”: 1,

“Folios”: 134,



“Ruling”: true,

“LinesPP”: 40

“Script”: “Anglicana”,

“ScriptQuality”: 3,

“ScriptFeatures”:[“secretary features”, “looping”],




“Scribe”: null,

“msContents”: [

{“No.”: a,

“Title”: “Eat drink sleep less”,

“IMEVNo”: 1172-1,

“Folios”: “iiv”


{“No.”: 1,

“Title”: “The Siege of Jerusalem”,

“IMEVNo”: 2651-1,

“Folios”: “1v-19v”


{“No.”: 2,

“Title”: “Piers Plowman”,

“IMEVNo”: 2460-1,

“Folios”: “19v-114v”


{“No.”: 2b,

“Title”: “He that in youth no virtue used…”,

“IMEVNo”: 1867-3,

“Folios”: “115r”


{“No.”: 3,

“Title”: “Sermon on Abraham”,

“IMEVNo”: null,

“Folios”: “117r-v”


{“No.”: 4,

“Title”: “Treatise on the Ten Commandments”,

“IMEVNo”: null,

“Folios”: “118r-124r”


{“No.”: 5,

“Title”: “Sentences from Scripture”,


“Folios”: “124v”



“NumberOfWorks”: 5,

“PositionOfPiers”: 2,

“PiersFolios”: 96,

“PiersPercentMS”: 76.9,

“PiersTextVariety”: “C”,

“LinesOfPiers”: 7350,

“DialectRegion”: {

“Locale”: “N. Oxon.”,

“geometry”: {





“MapRep”: {“type”:”Point”,”coordinates”:[-1.345604,51.884354]},

“Collation”: [“1-12”, “13-24”, “25-38”, “39-48”, “49-62”, “63-74”, “75-86”, “87-96”, “97-106”, “107-116”, “117-126”],

“PiersDecoration”:  [




“PassusMarkers”: [

{“(I)”: “fol. 19v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “Incipit Piers Plowman”,

“Line”: ““In a somer sesoun…”},

{“(W)”: “fol. 22v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “hic explicit passus prim9 incipit passus secundus”,

“Line”: “(W)hat ye motayn bymeneþ & þe mke dale”},

{“(A)”: “fol. 25r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit hic passus secudus incipit passus tercius”,

“Line”: “…?”},

{“(N)”: “fol. 28r-v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “hic explicit passus terci9 incipit passus quartus”,

“Line”: “?Now is mede þe mayde…?”},

{“(C/S)”: “fol. 34v-35r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus quart9 incipit qnt9 passus”,

“Line”: “C/Sesseth…”},

{“(Þ)”: “fol. 37v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus qnt9 incipit passus sextus”,

“Line”: “Þe kyng…”},

{“(W)”: “fol. 40r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus sext9 incipit passus septimus”,

“Line”: “???… “},

{“(I)”: “fol. 40r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio srbie?”,

“Line”: “I pruyde…”},

{“(C)”: “fol. 40v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio minde?”,

“Line”: “(E)nuye with heuy Herte asked aft schryfte”},

{“(Þ)”: “fol. 41r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio iro”,

“Line”: “(Þ)anne awakede wraþ kt twi whute eyen”},

{“(Þ)”: “fol. 42r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio lux~ie”,

“Line”: “(Þ)ane sade lechere also & to ony lady dad”},

{“(Þ)”: “fol. 42v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “Confessio amaracis?”,

“Line”: “(Þ)anne came couetis I ?? NoȜt hom insorecen ?”},

{“(N)”: “fol. 44r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio gnto”,

“Line”: “(N)ow bygyneþ gloton…”},

{“(Þ)”: “fol. 45v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “confessio accidie”,

“Line”: “(Þ)o came slewen al byslobered kt two stemed eyen”},

{“(Þ)”: “fol. 49v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus octau9 incipit passus non9”,

“Line”: “Þanne??…”},

{“(T)”: “fol. 54r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus non9 incipit passus decimus”,

“Line”: “Treuthe…?”},

{“(Þ)”: “fol. 58v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit visio willi de petro plowman incipit visio  ???? With de dobet”,

“Line”: “Þus robed…”},

{“(Þ)”: “fol. 62r-v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: ” explicit passus primus de dowel incipit passus seundus”,

“Line”: “(Þ)anne hadd wytt a wyf…”},

{“(A)”: “fol. 66r-v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus p9 de dowel incipit passus tercius ?bet”,

“Line”: “(A)las eye þe elde…”},

{“(A)”: “fol. 69v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “(A)las eye þe elde…”,

“Line”: “(A)at wel worþ…”},

{“(I)”: “fol. 72v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus quart9 de dowel incipit passus quintus”,

“Line”: “(I)ch am ymagynatyf…”},

{“(A)”: “fol. 75r-v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus quint9 de dobet incipit passus sextus”,

“Line”: “(A)nd ich awaked…”},

{“(A)”: “fol. 79v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus sext9 de dowel incipit passus septim9”,

“Line”: “(A)las þat richesse…”},

{“(Þ)”: “fol. 84r-v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus ultim9 de dowel incipit prim9 de dobet”,

“Line”: “(Þ) er is no suche ich sede…”},

{“(L)”: “fol. 88v”,


“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus prim9 de dobet incipit passus secundus”,

“Line”: “(L) eue liberi arbitrum…”},

{“(I)”: “fol. 92r”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus p9 de dobet incipit passus ter9”,

“Line”: “(I)ch am fe..”},

{“(F?)”: “fol. 96v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus tercius de dobet incipit passus quart9”,

“Line”: “(F?)ul wer & wetshod…”},

{“(Þ)”: “fol. 102v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus quart9 ultim9 de dobet incipit passus prim9 de dobest”,

“Line”: “(Þ)us ich awaked…”},

{“(A)”: “fol. 108v”,

“HeightInLines”: 4,

“Color”: null,

“Filigree”: null,

“Rubric”: “explicit passus primus  incipit passus secundus de dobest”,

“Line”: “(A)nd as I wende…”},

{“()”: “fol. 114v”,

“HeightInLines”: null,

“Color”: null,

“Filigree”: null,

“Rubric”:”explicit passus secundus de dobest incipit passus tercius…”,

“Line”: null}


“PublishedEdition(s)”: null




Please do collaborate!

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s