cueseg: topic chapters from a transcript, and a worked pipeline in the readme

This commit is contained in:
funkpower
2026-09-19 12:21:35 -04:00
parent c7d0767376
commit 17a03b0087
38 changed files with 10755 additions and 4 deletions
+1
View File
@@ -16,6 +16,7 @@ python = []
[dependencies]
chunkmd.workspace = true
cuekit.workspace = true
cueseg.workspace = true
mdscrub.workspace = true
pdftriage.workspace = true
corpus-core.workspace = true
+2 -2
View File
@@ -24,7 +24,7 @@ implementation that has moved on:
```sh
CATENA_PARITY_PYTHON=/path/to/venv/bin/python \
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src \
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src:/path/to/podcast-pipeline/src \
cargo test -p parity --features python
```
@@ -39,7 +39,7 @@ read the diff, and commit it with the reason:
```sh
CATENA_PARITY_PYTHON=/path/to/venv/bin/python \
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src \
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src:/path/to/podcast-pipeline/src \
cargo run -p parity --bin regen
```
+2 -1
View File
@@ -7,6 +7,7 @@ in this directory are the answers that Python gave, at one commit:
|---|---|
| `book-pipeline` | `7499e3257572968b437ecfdc79feccc91b96585b` |
| `podcast-download-systemd` | `ab20139cd0defb400a0dd9ed9034e03c1d1e356d` |
| `podcast-pipeline` | `4566302444a6aa3609bd0d6685323619bd33c72b` |
Regenerating against a different commit will move the goldens. That is the
point — the diff is the review. Record the new commit here in the same change.
@@ -16,7 +17,7 @@ a checkout lives is a fact about one machine and must not be compiled in:
```sh
CATENA_PARITY_PYTHON=/path/to/venv/bin/python
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src
CATENA_PARITY_PYTHONPATH=/path/to/book-pipeline/src:/path/to/podcast-pipeline/src
CATENA_PARITY_NODE=node # only if it is not already on PATH
```
+30
View File
@@ -0,0 +1,30 @@
{
"gappy": {
"tail": 8995,
"tight": 7196
},
"many-topics": {
"tail": 22520,
"tight": 18016
},
"one-cue": {
"tail": 5,
"tight": 4
},
"short": {
"tail": 750,
"tight": 600
},
"sparse-text": {
"tail": 4505,
"tight": 3604
},
"two-topics": {
"tail": 9000,
"tight": 7200
},
"uniform": {
"tail": 6750,
"tight": 5400
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
{"start": 0.0, "end": 4.0, "text": "the mill stood at the northern end"}
+150
View File
@@ -0,0 +1,150 @@
{"start": 0.0, "end": 4.0, "text": "the mill stood at the northern end of"}
{"start": 4.0, "end": 8.0, "text": "the valley where the fall of the river was"}
{"start": 8.0, "end": 12.0, "text": "steepest and the ice came latest its wheel was undershot"}
{"start": 12.0, "end": 16.0, "text": "which was wasteful and nobody replaced it for two hundred years"}
{"start": 16.0, "end": 20.0, "text": "because the cost fell on one household and the benefit was spread"}
{"start": 20.0, "end": 24.0, "text": "across four hundred families the mill stood at"}
{"start": 24.0, "end": 28.0, "text": "the northern end of the valley where the fall"}
{"start": 28.0, "end": 32.0, "text": "of the river was steepest and the ice came latest"}
{"start": 32.0, "end": 36.0, "text": "its wheel was undershot which was wasteful and nobody replaced it"}
{"start": 36.0, "end": 40.0, "text": "for two hundred years because the cost fell on one household and"}
{"start": 40.0, "end": 44.0, "text": "the benefit was spread across four hundred families"}
{"start": 44.0, "end": 48.0, "text": "the mill stood at the northern end of the"}
{"start": 48.0, "end": 52.0, "text": "valley where the fall of the river was steepest and"}
{"start": 52.0, "end": 56.0, "text": "the ice came latest its wheel was undershot which was wasteful"}
{"start": 56.0, "end": 60.0, "text": "and nobody replaced it for two hundred years because the cost fell"}
{"start": 60.0, "end": 64.0, "text": "on one household and the benefit was spread"}
{"start": 64.0, "end": 68.0, "text": "across four hundred families the mill stood at the"}
{"start": 68.0, "end": 72.0, "text": "northern end of the valley where the fall of the"}
{"start": 72.0, "end": 76.0, "text": "river was steepest and the ice came latest its wheel was"}
{"start": 76.0, "end": 80.0, "text": "undershot which was wasteful and nobody replaced it for two hundred years"}
{"start": 80.0, "end": 84.0, "text": "because the cost fell on one household and"}
{"start": 84.0, "end": 88.0, "text": "the benefit was spread across four hundred families the"}
{"start": 88.0, "end": 92.0, "text": "mill stood at the northern end of the valley where"}
{"start": 92.0, "end": 96.0, "text": "the fall of the river was steepest and the ice came"}
{"start": 96.0, "end": 100.0, "text": "latest its wheel was undershot which was wasteful and nobody replaced it"}
{"start": 100.0, "end": 104.0, "text": "for two hundred years because the cost fell"}
{"start": 104.0, "end": 108.0, "text": "on one household and the benefit was spread across"}
{"start": 108.0, "end": 112.0, "text": "four hundred families the mill stood at the northern end"}
{"start": 112.0, "end": 116.0, "text": "of the valley where the fall of the river was steepest"}
{"start": 116.0, "end": 120.0, "text": "and the ice came latest its wheel was undershot which was wasteful"}
{"start": 120.0, "end": 124.0, "text": "and nobody replaced it for two hundred years"}
{"start": 124.0, "end": 128.0, "text": "because the cost fell on one household and the"}
{"start": 128.0, "end": 132.0, "text": "benefit was spread across four hundred families the mill stood"}
{"start": 132.0, "end": 136.0, "text": "at the northern end of the valley where the fall of"}
{"start": 136.0, "end": 140.0, "text": "the river was steepest and the ice came latest its wheel was"}
{"start": 140.0, "end": 144.0, "text": "undershot which was wasteful and nobody replaced it"}
{"start": 144.0, "end": 148.0, "text": "for two hundred years because the cost fell on"}
{"start": 148.0, "end": 152.0, "text": "one household and the benefit was spread across four hundred"}
{"start": 152.0, "end": 156.0, "text": "families the mill stood at the northern end of the valley"}
{"start": 156.0, "end": 160.0, "text": "where the fall of the river was steepest and the ice came"}
{"start": 160.0, "end": 164.0, "text": "latest its wheel was undershot which was wasteful"}
{"start": 164.0, "end": 168.0, "text": "and nobody replaced it for two hundred years because"}
{"start": 168.0, "end": 172.0, "text": "the cost fell on one household and the benefit was"}
{"start": 172.0, "end": 176.0, "text": "spread across four hundred families the mill stood at the northern"}
{"start": 176.0, "end": 180.0, "text": "end of the valley where the fall of the river was steepest"}
{"start": 180.0, "end": 184.0, "text": "and the ice came latest its wheel was"}
{"start": 184.0, "end": 188.0, "text": "undershot which was wasteful and nobody replaced it for"}
{"start": 188.0, "end": 192.0, "text": "two hundred years because the cost fell on one household"}
{"start": 192.0, "end": 196.0, "text": "and the benefit was spread across four hundred families the mill"}
{"start": 196.0, "end": 200.0, "text": "stood at the northern end of the valley where the fall of"}
{"start": 200.0, "end": 204.0, "text": "the river was steepest and the ice came"}
{"start": 204.0, "end": 208.0, "text": "latest its wheel was undershot which was wasteful and"}
{"start": 208.0, "end": 212.0, "text": "nobody replaced it for two hundred years because the cost"}
{"start": 212.0, "end": 216.0, "text": "fell on one household and the benefit was spread across four"}
{"start": 216.0, "end": 220.0, "text": "hundred families the mill stood at the northern end of the valley"}
{"start": 220.0, "end": 224.0, "text": "where the fall of the river was steepest"}
{"start": 224.0, "end": 228.0, "text": "and the ice came latest its wheel was undershot"}
{"start": 228.0, "end": 232.0, "text": "which was wasteful and nobody replaced it for two hundred"}
{"start": 232.0, "end": 236.0, "text": "years because the cost fell on one household and the benefit"}
{"start": 236.0, "end": 240.0, "text": "was spread across four hundred families the mill stood at the northern"}
{"start": 240.0, "end": 244.0, "text": "end of the valley where the fall of"}
{"start": 244.0, "end": 248.0, "text": "the river was steepest and the ice came latest"}
{"start": 248.0, "end": 252.0, "text": "its wheel was undershot which was wasteful and nobody replaced"}
{"start": 252.0, "end": 256.0, "text": "it for two hundred years because the cost fell on one"}
{"start": 256.0, "end": 260.0, "text": "household and the benefit was spread across four hundred families the mill"}
{"start": 260.0, "end": 264.0, "text": "stood at the northern end of the valley"}
{"start": 264.0, "end": 268.0, "text": "where the fall of the river was steepest and"}
{"start": 268.0, "end": 272.0, "text": "the ice came latest its wheel was undershot which was"}
{"start": 272.0, "end": 276.0, "text": "wasteful and nobody replaced it for two hundred years because the"}
{"start": 276.0, "end": 280.0, "text": "cost fell on one household and the benefit was spread across four"}
{"start": 280.0, "end": 284.0, "text": "hundred families the mill stood at the northern"}
{"start": 284.0, "end": 288.0, "text": "end of the valley where the fall of the"}
{"start": 288.0, "end": 292.0, "text": "river was steepest and the ice came latest its wheel"}
{"start": 292.0, "end": 296.0, "text": "was undershot which was wasteful and nobody replaced it for two"}
{"start": 296.0, "end": 300.0, "text": "hundred years because the cost fell on one household and the benefit"}
{"start": 300.0, "end": 304.0, "text": "was spread across four hundred families the mill"}
{"start": 304.0, "end": 308.0, "text": "stood at the northern end of the valley where"}
{"start": 308.0, "end": 312.0, "text": "the fall of the river was steepest and the ice"}
{"start": 312.0, "end": 316.0, "text": "came latest its wheel was undershot which was wasteful and nobody"}
{"start": 316.0, "end": 320.0, "text": "replaced it for two hundred years because the cost fell on one"}
{"start": 320.0, "end": 324.0, "text": "household and the benefit was spread across four"}
{"start": 324.0, "end": 328.0, "text": "hundred families the mill stood at the northern end"}
{"start": 328.0, "end": 332.0, "text": "of the valley where the fall of the river was"}
{"start": 332.0, "end": 336.0, "text": "steepest and the ice came latest its wheel was undershot which"}
{"start": 336.0, "end": 340.0, "text": "was wasteful and nobody replaced it for two hundred years because the"}
{"start": 340.0, "end": 344.0, "text": "cost fell on one household and the benefit"}
{"start": 344.0, "end": 348.0, "text": "was spread across four hundred families the mill stood"}
{"start": 348.0, "end": 352.0, "text": "at the northern end of the valley where the fall"}
{"start": 352.0, "end": 356.0, "text": "of the river was steepest and the ice came latest its"}
{"start": 356.0, "end": 360.0, "text": "wheel was undershot which was wasteful and nobody replaced it for two"}
{"start": 360.0, "end": 364.0, "text": "hundred years because the cost fell on one"}
{"start": 364.0, "end": 368.0, "text": "household and the benefit was spread across four hundred"}
{"start": 368.0, "end": 372.0, "text": "families the mill stood at the northern end of the"}
{"start": 372.0, "end": 376.0, "text": "valley where the fall of the river was steepest and the"}
{"start": 376.0, "end": 380.0, "text": "ice came latest its wheel was undershot which was wasteful and nobody"}
{"start": 380.0, "end": 384.0, "text": "replaced it for two hundred years because the"}
{"start": 384.0, "end": 388.0, "text": "cost fell on one household and the benefit was"}
{"start": 388.0, "end": 392.0, "text": "spread across four hundred families the mill stood at the"}
{"start": 392.0, "end": 396.0, "text": "northern end of the valley where the fall of the river"}
{"start": 396.0, "end": 400.0, "text": "was steepest and the ice came latest its wheel was undershot which"}
{"start": 400.0, "end": 404.0, "text": "was wasteful and nobody replaced it for two"}
{"start": 404.0, "end": 408.0, "text": "hundred years because the cost fell on one household"}
{"start": 408.0, "end": 412.0, "text": "and the benefit was spread across four hundred families the"}
{"start": 412.0, "end": 416.0, "text": "mill stood at the northern end of the valley where the"}
{"start": 416.0, "end": 420.0, "text": "fall of the river was steepest and the ice came latest its"}
{"start": 420.0, "end": 424.0, "text": "wheel was undershot which was wasteful and nobody"}
{"start": 424.0, "end": 428.0, "text": "replaced it for two hundred years because the cost"}
{"start": 428.0, "end": 432.0, "text": "fell on one household and the benefit was spread across"}
{"start": 432.0, "end": 436.0, "text": "four hundred families the mill stood at the northern end of"}
{"start": 436.0, "end": 440.0, "text": "the valley where the fall of the river was steepest and the"}
{"start": 440.0, "end": 444.0, "text": "ice came latest its wheel was undershot which"}
{"start": 444.0, "end": 448.0, "text": "was wasteful and nobody replaced it for two hundred"}
{"start": 448.0, "end": 452.0, "text": "years because the cost fell on one household and the"}
{"start": 452.0, "end": 456.0, "text": "benefit was spread across four hundred families the mill stood at"}
{"start": 456.0, "end": 460.0, "text": "the northern end of the valley where the fall of the river"}
{"start": 460.0, "end": 464.0, "text": "was steepest and the ice came latest its"}
{"start": 464.0, "end": 468.0, "text": "wheel was undershot which was wasteful and nobody replaced"}
{"start": 468.0, "end": 472.0, "text": "it for two hundred years because the cost fell on"}
{"start": 472.0, "end": 476.0, "text": "one household and the benefit was spread across four hundred families"}
{"start": 476.0, "end": 480.0, "text": "the mill stood at the northern end of the valley where the"}
{"start": 480.0, "end": 484.0, "text": "fall of the river was steepest and the"}
{"start": 484.0, "end": 488.0, "text": "ice came latest its wheel was undershot which was"}
{"start": 488.0, "end": 492.0, "text": "wasteful and nobody replaced it for two hundred years because"}
{"start": 492.0, "end": 496.0, "text": "the cost fell on one household and the benefit was spread"}
{"start": 496.0, "end": 500.0, "text": "across four hundred families the mill stood at the northern end of"}
{"start": 500.0, "end": 504.0, "text": "the valley where the fall of the river"}
{"start": 504.0, "end": 508.0, "text": "was steepest and the ice came latest its wheel"}
{"start": 508.0, "end": 512.0, "text": "was undershot which was wasteful and nobody replaced it for"}
{"start": 512.0, "end": 516.0, "text": "two hundred years because the cost fell on one household and"}
{"start": 516.0, "end": 520.0, "text": "the benefit was spread across four hundred families the mill stood at"}
{"start": 520.0, "end": 524.0, "text": "the northern end of the valley where the"}
{"start": 524.0, "end": 528.0, "text": "fall of the river was steepest and the ice"}
{"start": 528.0, "end": 532.0, "text": "came latest its wheel was undershot which was wasteful and"}
{"start": 532.0, "end": 536.0, "text": "nobody replaced it for two hundred years because the cost fell"}
{"start": 536.0, "end": 540.0, "text": "on one household and the benefit was spread across four hundred families"}
{"start": 540.0, "end": 544.0, "text": "the mill stood at the northern end of"}
{"start": 544.0, "end": 548.0, "text": "the valley where the fall of the river was"}
{"start": 548.0, "end": 552.0, "text": "steepest and the ice came latest its wheel was undershot"}
{"start": 552.0, "end": 556.0, "text": "which was wasteful and nobody replaced it for two hundred years"}
{"start": 556.0, "end": 560.0, "text": "because the cost fell on one household and the benefit was spread"}
{"start": 560.0, "end": 564.0, "text": "across four hundred families the mill stood at"}
{"start": 564.0, "end": 568.0, "text": "the northern end of the valley where the fall"}
{"start": 568.0, "end": 572.0, "text": "of the river was steepest and the ice came latest"}
{"start": 572.0, "end": 576.0, "text": "its wheel was undershot which was wasteful and nobody replaced it"}
{"start": 576.0, "end": 580.0, "text": "for two hundred years because the cost fell on one household and"}
{"start": 580.0, "end": 584.0, "text": "the benefit was spread across four hundred families"}
{"start": 584.0, "end": 588.0, "text": "the mill stood at the northern end of the"}
{"start": 588.0, "end": 592.0, "text": "valley where the fall of the river was steepest and"}
{"start": 592.0, "end": 596.0, "text": "the ice came latest its wheel was undershot which was wasteful"}
{"start": 596.0, "end": 600.0, "text": "and nobody replaced it for two hundred years because the cost fell"}
+4
View File
@@ -0,0 +1,4 @@
{"start": 0.0, "end": 4.0, "text": " "}
{"start": 4.0, "end": 8.0, "text": "the mill stood"}
{"start": 8.0, "end": 12.0, "text": ""}
{"start": 3600.0, "end": 3604.0, "text": "parliament dissolved itself again"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+8
View File
@@ -0,0 +1,8 @@
{"start": 0.0, "end": 1194.0, "title": "The Valley Where The Fall Of The River", "excerpt": "the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and"}
{"start": 1194.0, "end": 2388.0, "title": "Undershot Which Was Wasteful And Nobody Replaced It", "excerpt": "undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit"}
{"start": 2388.0, "end": 3209.3333333333335, "title": "Which Was Wasteful And Nobody Replaced It For", "excerpt": "which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious"}
{"start": 3209.3333333333335, "end": 4030.666666666667, "title": "Hear The Motion And The Clerks Recorded Nothing", "excerpt": "hear the motion and the clerks recorded nothing of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused"}
{"start": 4030.666666666667, "end": 4852.0, "title": "The Motion And The Clerks Recorded Nothing At", "excerpt": "the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved"}
{"start": 4852.0, "end": 5887.75, "title": "Of Wheat Trebled Before The First Ship Arrived", "excerpt": "of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports"}
{"start": 5887.75, "end": 6923.5, "title": "Bailiff Recorded Every Bushel And The Tallies Survive", "excerpt": "bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the"}
{"start": 6923.5, "end": 7959.25, "title": "And The Tallies Survive In The Manor Rolls", "excerpt": "and the tallies survive in the manor rolls almost complete the harvest of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying manor rolls almost complete the harvest failed in three successive years and the price of wheat"}
+7
View File
@@ -0,0 +1,7 @@
{"start": 0.0, "end": 1194.0, "title": "The Valley Where The Fall Of The River", "excerpt": "the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and"}
{"start": 1194.0, "end": 2388.0, "title": "Undershot Which Was Wasteful And Nobody Replaced It", "excerpt": "undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit"}
{"start": 2388.0, "end": 3209.3333333333335, "title": "Which Was Wasteful And Nobody Replaced It For", "excerpt": "which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious"}
{"start": 3209.3333333333335, "end": 4030.666666666667, "title": "Hear The Motion And The Clerks Recorded Nothing", "excerpt": "hear the motion and the clerks recorded nothing of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused"}
{"start": 4030.666666666667, "end": 4852.0, "title": "The Motion And The Clerks Recorded Nothing At", "excerpt": "the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved"}
{"start": 4852.0, "end": 6024.0, "title": "Of Wheat Trebled Before The First Ship Arrived", "excerpt": "of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports"}
{"start": 6024.0, "end": 7196.0, "title": "The First Ship Arrived From The Baltic Ports", "excerpt": "the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the"}
@@ -0,0 +1,17 @@
{"start": 0.0, "end": 1102.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 1102.0, "end": 2204.0, "title": "Fall Of The River Was Steepest And The", "excerpt": "fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of"}
{"start": 2204.0, "end": 3344.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the"}
{"start": 3344.0, "end": 4484.0, "title": "And The Clerks Recorded Nothing At All Which", "excerpt": "and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and"}
{"start": 4484.0, "end": 5624.0, "title": "The Motion And The Clerks Recorded Nothing At", "excerpt": "the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying"}
{"start": 5624.0, "end": 6764.0, "title": "Tallies Survive In The Manor Rolls Almost Complete", "excerpt": "tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying"}
{"start": 6764.0, "end": 7866.0, "title": "In A Hand Nobody Has Yet Transcribed The", "excerpt": "in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed"}
{"start": 7866.0, "end": 8968.0, "title": "The Archdeacon Whose Court Kept Minutes In A", "excerpt": "the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of"}
{"start": 8968.0, "end": 10146.0, "title": "In A Compromise Neither Side Recorded The Abbey", "excerpt": "in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the"}
{"start": 10146.0, "end": 11324.0, "title": "The Justices Travelled A Circuit Of Eleven Counties", "excerpt": "the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor"}
{"start": 11324.0, "end": 12388.0, "title": "Which Silver The Exchequer Issued A Proclamation That", "excerpt": "which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 12388.0, "end": 13452.0, "title": "About Which Silver The Exchequer Issued A Proclamation", "excerpt": "about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 13452.0, "end": 14592.0, "title": "About Which Silver The Exchequer Issued A Proclamation", "excerpt": "about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 14592.0, "end": 15732.0, "title": "A Year And The Surveyor Of Highways Was", "excerpt": "a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and"}
{"start": 15732.0, "end": 16872.0, "title": "Nobody Wanted And Everyone In Turn Was Obliged", "excerpt": "nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town"}
{"start": 16872.0, "end": 18012.0, "title": "Town Closed Its Gates Against The Countryside Which", "excerpt": "town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside"}
{"start": 18012.0, "end": 19139.0, "title": "Closed Its Lanes Against The Town The Death", "excerpt": "closed its lanes against the town the death roll was kept"}
@@ -0,0 +1,16 @@
{"start": 0.0, "end": 1102.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 1102.0, "end": 2204.0, "title": "Fall Of The River Was Steepest And The", "excerpt": "fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of"}
{"start": 2204.0, "end": 3344.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the"}
{"start": 3344.0, "end": 4484.0, "title": "And The Clerks Recorded Nothing At All Which", "excerpt": "and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and"}
{"start": 4484.0, "end": 5624.0, "title": "The Motion And The Clerks Recorded Nothing At", "excerpt": "the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying"}
{"start": 5624.0, "end": 6764.0, "title": "Tallies Survive In The Manor Rolls Almost Complete", "excerpt": "tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying grain the bailiff recorded every bushel and the tallies survive in the manor rolls almost complete the harvest failed in three successive years and the price of wheat trebled before the first ship arrived from the baltic ports carrying"}
{"start": 6764.0, "end": 7866.0, "title": "In A Hand Nobody Has Yet Transcribed The", "excerpt": "in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed"}
{"start": 7866.0, "end": 8968.0, "title": "The Archdeacon Whose Court Kept Minutes In A", "excerpt": "the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of"}
{"start": 8968.0, "end": 10146.0, "title": "In A Compromise Neither Side Recorded The Abbey", "excerpt": "in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed it before the archdeacon whose court kept minutes in a hand nobody has yet transcribed the dispute ran for forty years and ended in a compromise neither side recorded the abbey claimed the tithe of every sheaf and the villagers disputed the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the"}
{"start": 10146.0, "end": 11324.0, "title": "The Justices Travelled A Circuit Of Eleven Counties", "excerpt": "the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor the justices travelled a circuit of eleven counties and their rolls are the earliest continuous record of judicial business anywhere in europe the assize met twice yearly and heard pleas of novel disseisin and mort dancestor"}
{"start": 11324.0, "end": 12388.0, "title": "Which Silver The Exchequer Issued A Proclamation That", "excerpt": "which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 12388.0, "end": 13452.0, "title": "About Which Silver The Exchequer Issued A Proclamation", "excerpt": "about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 13452.0, "end": 14592.0, "title": "About Which Silver The Exchequer Issued A Proclamation", "excerpt": "about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a proclamation that nobody outside london appears to have read or obeyed the coinage was debased twice within a decade and every contract written in silver became a quarrel about which silver the exchequer issued a"}
{"start": 14592.0, "end": 15732.0, "title": "A Year And The Surveyor Of Highways Was", "excerpt": "a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and"}
{"start": 15732.0, "end": 16874.0, "title": "Nobody Wanted And Everyone In Turn Was Obliged", "excerpt": "nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody wanted and everyone in turn was obliged to hold the road was maintained by the parish which meant by whoever could be compelled to work on it six days a year and the surveyor of highways was an office nobody the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town"}
{"start": 16874.0, "end": 18016.0, "title": "Town Closed Its Gates Against The Countryside Which", "excerpt": "town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside which had already closed its lanes against the town the death roll was kept by a clerk who died before he could total it the plague reached the port in autumn and the town closed its gates against the countryside"}
+1
View File
@@ -0,0 +1 @@
{"start": 0.0, "end": 5.0, "title": "The Mill Stood At The Northern End", "excerpt": "the mill stood at the northern end"}
@@ -0,0 +1 @@
{"start": 0.0, "end": 4.0, "title": "The Mill Stood At The Northern End", "excerpt": "the mill stood at the northern end"}
+1
View File
@@ -0,0 +1 @@
{"start": 0.0, "end": 750.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
+1
View File
@@ -0,0 +1 @@
{"start": 0.0, "end": 600.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
@@ -0,0 +1,2 @@
{"start": 0.0, "end": 901.0, "title": "The Mill Stood", "excerpt": "the mill stood"}
{"start": 2703.0, "end": 3604.0, "title": "Parliament Dissolved Itself Again", "excerpt": "parliament dissolved itself again"}
@@ -0,0 +1,2 @@
{"start": 0.0, "end": 901.0, "title": "The Mill Stood", "excerpt": "the mill stood"}
{"start": 2703.0, "end": 3604.0, "title": "Parliament Dissolved Itself Again", "excerpt": "parliament dissolved itself again"}
@@ -0,0 +1,7 @@
{"start": 0.0, "end": 1190.6666666666667, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 1190.6666666666667, "end": 2381.3333333333335, "title": "On One Household And The Benefit Was Spread", "excerpt": "on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one"}
{"start": 2381.3333333333335, "end": 3572.0, "title": "Stood At The Northern End Of The Valley", "excerpt": "stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at"}
{"start": 3572.0, "end": 4657.6, "title": "Steepest And The Ice Came Latest Its Wheel", "excerpt": "steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to"}
{"start": 4657.6, "end": 5743.2, "title": "Refused To Hear The Motion And The Clerks", "excerpt": "refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with"}
{"start": 5743.2, "end": 6828.8, "title": "Objections From Every Bench The Speaker Refused To", "excerpt": "objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded"}
{"start": 6828.8, "end": 7914.4, "title": "Journals Of Either House Parliament Dissolved Itself Again", "excerpt": "journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every"}
@@ -0,0 +1,7 @@
{"start": 0.0, "end": 1190.6666666666667, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 1190.6666666666667, "end": 2381.3333333333335, "title": "On One Household And The Benefit Was Spread", "excerpt": "on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one"}
{"start": 2381.3333333333335, "end": 3572.0, "title": "Stood At The Northern End Of The Valley", "excerpt": "stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at"}
{"start": 3572.0, "end": 4479.0, "title": "Steepest And The Ice Came Latest Its Wheel", "excerpt": "steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to"}
{"start": 4479.0, "end": 5386.0, "title": "It From The Journals Of Either House Parliament", "excerpt": "it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections"}
{"start": 5386.0, "end": 6293.0, "title": "At All Which Left The Committee With No", "excerpt": "at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from"}
{"start": 6293.0, "end": 7200.0, "title": "House Parliament Dissolved Itself Again Amid Furious Objections", "excerpt": "house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker refused to hear the motion and the clerks recorded nothing at all which left the committee with no record of the vote and no way to reconstruct it from the journals of either house parliament dissolved itself again amid furious objections from every bench the speaker"}
+6
View File
@@ -0,0 +1,6 @@
{"start": 0.0, "end": 1079.2, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 1079.2, "end": 2158.4, "title": "Fall Of The River Was Steepest And The", "excerpt": "fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of"}
{"start": 2158.4, "end": 3237.6, "title": "Was Undershot Which Was Wasteful And Nobody Replaced", "excerpt": "was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was"}
{"start": 3237.6, "end": 4316.8, "title": "The Cost Fell On One Household And The", "excerpt": "the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost"}
{"start": 4316.8, "end": 5396.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 5396.0, "end": 6073.0, "title": "On One Household And The Benefit Was Spread", "excerpt": "on one household and the benefit was spread across four hundred families"}
@@ -0,0 +1,6 @@
{"start": 0.0, "end": 900.0, "title": "The Mill Stood At The Northern End Of", "excerpt": "the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill"}
{"start": 900.0, "end": 1800.0, "title": "Hundred Years Because The Cost Fell On One", "excerpt": "hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred"}
{"start": 1800.0, "end": 2700.0, "title": "Benefit Was Spread Across Four Hundred Families The", "excerpt": "benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit"}
{"start": 2700.0, "end": 3600.0, "title": "The Valley Where The Fall Of The River", "excerpt": "the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the"}
{"start": 3600.0, "end": 4500.0, "title": "Steepest And The Ice Came Latest Its Wheel", "excerpt": "steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest"}
{"start": 4500.0, "end": 5400.0, "title": "And Nobody Replaced It For Two Hundred Years", "excerpt": "and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and nobody replaced it for two hundred years because the cost fell on one household and the benefit was spread across four hundred families the mill stood at the northern end of the valley where the fall of the river was steepest and the ice came latest its wheel was undershot which was wasteful and"}
+48
View File
@@ -0,0 +1,48 @@
"""Segment a transcript the way the Python pipeline does.
Reads a cue stream — one `{"start", "end", "text"}` object per line — and a
duration in seconds as the first argument, and writes one chapter per line.
CATENA_PARITY_PYTHONPATH=/path/to/podcast-pipeline/src \
python3 oracle/cueseg.py 7245 < cues.ndjson
"""
import json
import os
import sys
for path in os.environ.get("CATENA_PARITY_PYTHONPATH", "").split(os.pathsep):
if path:
sys.path.insert(0, path)
from podcast_pipeline.topic_segments import Cue, segment_transcript # noqa: E402
def main() -> int:
duration = float(sys.argv[1])
cues = []
for line in sys.stdin.buffer.read().decode("utf-8").split("\n"):
if not line.strip():
continue
cue = json.loads(line)
cues.append(Cue(cue["start"], cue["end"], cue["text"]))
out = sys.stdout
for seg in segment_transcript(cues, duration):
out.write(
json.dumps(
{
"start": seg.start_time,
"end": seg.end_time,
"title": seg.fallback_title,
"excerpt": seg.excerpt,
},
ensure_ascii=False,
)
+ "\n"
)
return 0
if __name__ == "__main__":
raise SystemExit(main())
+28 -1
View File
@@ -19,13 +19,14 @@ type Written = Result<Vec<String>, String>;
type Job = (&'static str, fn() -> Written);
fn main() -> ExitCode {
let jobs: [Job; 6] = [
let jobs: [Job; 7] = [
("tokens", tokens),
("unescape", unescape),
("chunkmd", chunkmd),
("mdscrub", mdscrub),
("pdftriage", pdftriage),
("cuenorm", cuenorm),
("cueseg", cueseg),
];
for (name, job) in jobs {
@@ -69,6 +70,32 @@ fn unescape() -> Written {
Ok(vec![path.display().to_string()])
}
fn cueseg() -> Written {
let dir = parity::golden("cueseg");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;
let table = parity::dir().join("cases/cueseg/durations.json");
let table = std::fs::read_to_string(&table).map_err(|e| e.to_string())?;
let durations: std::collections::BTreeMap<String, std::collections::BTreeMap<String, f64>> =
serde_json::from_str(&table).map_err(|e| e.to_string())?;
let mut written = Vec::new();
for case in parity::cases_with_extension("cueseg", "ndjson") {
let name = parity::case_name(&case);
let Some(spans) = durations.get(&name) else {
continue;
};
let cues = std::fs::read_to_string(&case).map_err(|e| e.to_string())?;
for (span, duration) in spans {
let chapters = parity::run_oracle_with("cueseg.py", &[format!("{duration}")], &cues)?;
let path = dir.join(format!("{name}.{span}.ndjson"));
std::fs::write(&path, chapters).map_err(|e| e.to_string())?;
written.push(path.display().to_string());
}
}
Ok(written)
}
fn cuenorm() -> Written {
let dir = parity::golden("cuenorm");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;
+122
View File
@@ -0,0 +1,122 @@
//! Chapter boundaries, titles and excerpts must match the Python exactly.
//!
//! The boundaries come out of float arithmetic over hashed word counts, so a
//! difference of one word in the tokeniser or one unit in the last place in a
//! cosine moves a chapter mark by a minute. Nothing about that is visible in
//! the output; it just puts the mark in the wrong place.
use std::collections::BTreeMap;
use cuekit::Cue;
use serde_json::Value;
/// A chapter, as the two sides can be compared.
type Chapter = (f64, f64, String, String);
fn chapters(text: &str) -> Vec<Chapter> {
text.lines()
.filter(|line| !line.trim().is_empty())
.map(|line| {
let chapter: Value = serde_json::from_str(line).expect("valid JSON");
(
chapter["start"].as_f64().expect("a start"),
chapter["end"].as_f64().expect("an end"),
chapter["title"].as_str().expect("a title").to_string(),
chapter["excerpt"].as_str().expect("an excerpt").to_string(),
)
})
.collect()
}
fn ours(cues: &[Cue], duration: f64) -> Vec<Chapter> {
cueseg::segment(cues, duration)
.into_iter()
.map(|chapter| (chapter.start, chapter.end, chapter.title, chapter.excerpt))
.collect()
}
fn cues_of(case: &std::path::Path) -> Vec<Cue> {
let text = std::fs::read_to_string(case).expect("a readable case");
text.lines()
.filter(|line| !line.trim().is_empty())
.map(|line| {
let cue: Value = serde_json::from_str(line).expect("valid JSON");
Cue::new(
cue["start"].as_f64().expect("a start"),
cue["end"].as_f64().expect("an end"),
cue["text"].as_str().expect("text"),
)
})
.collect()
}
/// The two durations each case is run at: the end of the transcript, and a
/// recording that carries on after it.
fn durations() -> BTreeMap<String, BTreeMap<String, f64>> {
let text = std::fs::read_to_string(parity::dir().join("cases/cueseg/durations.json"))
.expect("a readable duration table");
serde_json::from_str(&text).expect("valid JSON")
}
#[test]
fn every_transcript_segments_the_same_as_python() {
let durations = durations();
let cases = parity::cases_with_extension("cueseg", "ndjson");
assert!(!cases.is_empty(), "no cases found");
for case in cases {
let name = parity::case_name(&case);
let cues = cues_of(&case);
let spans = durations.get(&name).expect("a duration for every case");
for (span, duration) in spans {
let theirs = chapters(&parity::read_golden_text(&format!(
"cueseg/{name}.{span}.ndjson"
)));
let ours = ours(&cues, *duration);
for (at, (ours, theirs)) in ours.iter().zip(&theirs).enumerate() {
assert_eq!(
ours.0, theirs.0,
"{name} [{span}] chapter {at} starts elsewhere"
);
assert_eq!(
ours.1, theirs.1,
"{name} [{span}] chapter {at} ends elsewhere"
);
assert_eq!(
ours.2, theirs.2,
"{name} [{span}] chapter {at} is titled differently"
);
assert_eq!(
ours.3, theirs.3,
"{name} [{span}] chapter {at} excerpts differently"
);
}
assert_eq!(
ours.len(),
theirs.len(),
"{name} [{span}]: python found {} chapters, rust {}",
theirs.len(),
ours.len()
);
}
}
}
/// Catches a golden file drifting away from a Python that has moved on.
#[test]
#[cfg(feature = "python")]
fn the_golden_files_still_match_live_python() {
let durations = durations();
for case in parity::cases_with_extension("cueseg", "ndjson") {
let name = parity::case_name(&case);
let cues = std::fs::read_to_string(&case).expect("a readable case");
for (span, duration) in durations.get(&name).expect("a duration") {
let live = parity::run_oracle_with("cueseg.py", &[format!("{duration}")], &cues)
.expect("the oracle runs");
let golden = parity::read_golden_text(&format!("cueseg/{name}.{span}.ndjson"));
assert_eq!(live, golden, "golden file for {name} [{span}] is stale");
}
}
}