Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ABSegler
Forked from mbostock/.block
Last active January 16, 2020 08:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save ABSegler/eab586c08f3214bc304e to your computer and use it in GitHub Desktop.
Save ABSegler/eab586c08f3214bc304e to your computer and use it in GitHub Desktop.
Piers Plowman A MSS Stemma and Timeline

This is a static display of the A MSS stemma as outlined in A.V.C. Schmidt's Parallel Text Edition of the poem (Vol. 2 pt 1.). The main difference between this presentation and that which you find printed in Schmidt and elsewhere is that this diagram incorporates a temporal dimension to the outline of MS generation.

In addition to showing each generation of intermediate copies (represented by lowercase sigla), it also accounts for distinct periods of time and displays successive date ranges as empty nodes. The empty nodes are particularly important because they allow us to locate temporal distance between the earliest possible generation for a missing parent manuscript (represented by lowercase sigla) and the actual appearance of an extant manuscript in that family. If a node has no name or sigil attached to it, then it is simply a temporal placeholder for that MS family.

A represents the author's A-text; AØ is the proposed "coterie copy" that Schmidt discusses; Ax is the A archetype--the common ancestor for all existing A MSS

The following are M. Bostock's initial comments about the Reingold-Tilford arrangement:

The tree layout implements the Reingold-Tilford algorithm for efficient, tidy arrangement of layered nodes. The depth of nodes is computed by distance from the root, leading to a ragged appearance. Radial orientations are also supported. Implementation based on work by Jeff Heer and Jason Davies using Buchheim et al.'s linear-time variant of the Reingold-Tilford algorithm.

{
"name": "A",
"children": [
{"name": "AØ",
"children": [
{"name": "Ax",
"children": [
{"name": "*r*",
"children": [
{"name": "r1",
"children": [
{"name": "d",
"children": [
{"name": "t",
"children": [
{"name": "th2",
"children": [
{"name": "(AC) TCC R.3.14 c. 1400"
},
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "(AC) HARLEY 6041 ca. 1425"
}
]
}
]
}
]
},
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "(AC) CHADERTON 1420"
}
]
}
]
}
]
},
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Douce 323 1475-1500"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "u",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Rawl. 137 mid-15th C"
}
]
}
]
}
]
},
{"name": "Uni Coll Ox 45 1400-1425"
}
]
}
]
}
]
}
]
}
]
},
{"name": "r2",
"children": [
{"name": "v",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Vernon c.1400"
},
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Harley 875 ca. 1425-1475"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "j",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Ingilby mid-15th C"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "l",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Lincoln's Inn 1400-1425"
}
]
}
]
}
]
}
]
},
{"name": "k",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "(AC) DIGBY 145 1531"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "w",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "(AC) OLIM. DUKE OF W'S MS 1400-1425"
},
{"name": "(AC) NLW 733B 1400-1425"
}
]
}
]
}
]
}
]
},
{"name": "(z)",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "(ZAC) A VISIO ENDING + C ADDED 1439-1450"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "*m*",
"children": [
{"name": "e",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "TCD 213 1450-1500"
},
{"name": " ",
"children": [
{"name": "Ashmole 1475-1500"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{"name": "m",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "Soc. of Antiquaries 687 ca. 1425"
}
]
},
{"name": "(BA) HARLEY 3954 1400-1425"
}
]
}
]
}
]
}
]
}
]
},
{"name": "y",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": " ",
"children": [
{"name": "OR (AC) DUKE'S MS from here? 1400-1425"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.node circle {
fill: #fff;
stroke: steelblue;
stroke-width: 1.5px;
}
.node {
font: 10px sans-serif;
}
.link {
fill: none;
stroke: #ccc;
stroke-width: 1.5px;
}
</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = 960,
height = 2000;
var tree = d3.layout.tree()
.size([height, width - 160]);
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(40,0)");
d3.json("Astemma1.json", function(error, json) {
var nodes = tree.nodes(json),
links = tree.links(nodes);
var link = svg.selectAll("path.link")
.data(links)
.enter().append("path")
.attr("class", "link")
.attr("d", diagonal);
var node = svg.selectAll("g.node")
.data(nodes)
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; })
node.append("circle")
.attr("r", 4.5);
node.append("text")
.attr("dx", function(d) { return d.children ? -8 : 8; })
.attr("dy", 3)
.attr("text-anchor", function(d) { return d.children ? "end" : "start"; })
.text(function(d) { return d.name; });
});
d3.select(self.frameElement).style("height", height + "px");
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment