For matching, the text of each document is converted to lowercase,
stripped of all characters except letters, digits and spaces, and split
on whitespace. A run is a maximal sequence of at least eight consecutive
words appearing in the same order in both documents. Because matching is
exact after normalization, one changed word ends a run.
The Record of Study is extracted one PDF page at a time, so each run is
assigned to the page on which it appears. A printed page number appears
in the extracted text on 202 of the
219 pages and is removed before matching. If left in
place, it would be counted as a word and would break any run crossing a
page boundary.
The measured body is Chapters I to V, PDF pages 18 to 182,
42,578 words. Front matter, the reference
list and the appendices are outside both the numerator and the
denominator. Matches found outside the measured body are published in
exclusions.json and are
not included in any figure on this page. The section boundaries are
checked at run time against the document's own headings.
The method does not capture paraphrase, reordered language or synonym
substitution, so these figures do not represent all possible textual
similarity. They report only the exact overlap detected under the stated
criteria.
Extraction order also matters. Ripple Effects 2009 is printed in two
columns. Extracting it in page-layout order interleaves the columns and
reduces its longest detected run from 162 words to 44. It is therefore
extracted in reading order.
What is published, exactly
The script, configuration and complete results are published. The source
documents themselves are not republished. Eleven of the 14 measured sources are third-party copyrighted works, and three of
those lack a stable public copy. A reader who obtains the same files can
verify them against the SHA-256 hashes in the manifest and reproduce the
analysis.
- build.py
The script that produced every figure on this page, published as it
ran. One command regenerates the lot:
npm run long:build.
- sources.json
The exact source-list configuration: every document measured, its
citation, its provenance, and the reviewed decision on whether the
Record of Study names it.
- manifest.json
Every file the analysis read, with its SHA-256 hash, its normalized
word count, where it was retrieved from and on what date.
- density.json
The results: per-source runs, words and longest run, the named and
unnamed groupings, and the per-page distribution the map is drawn from.
- passages.json and
exclusions.json
Every counted passage and every measured-but-excluded passage, with its
page and its reason.
- The Record of Study
The document under examination, all 219 pages.
What has not been searched
The search does not cover books or sources accessible only through
ProQuest. A local corpus of pre-2012 ERIC documents was searched, along
with distinctive phrases from unmatched portions of the Record of Study
through public indexes.
Those searches cannot establish that no earlier source exists. A phrase
verified inside a held source PDF may return no public search result. An
unsuccessful phrase search therefore means only that no indexed match was
found, not that the language has no earlier source.