The house that Jack built
JavaScript (ES6), 356 bytes
Procedural approach.

_=&gt;`house th5 Jack built.
|malt6lay in|r565e|c56kill2dog6worri2cow with0crumpled h16toss2maiden3forl16milk2man3t5tered4 t16kiss2judge3shaven4 sh16marri2rooster6crowed in0m16woke|farmer sowing his c16kept|horse40hound40h16belonged to`.replace(/\d/g,n=&gt;` the ,orn,ed|, all , and,at,
That `.split`,`[n]).split`|`.map(s=&gt;`This is`+(p=' the '+s+p),p='').join`
`

Try it online!

Simple compression, 429 bytes
Using RegPack.

_=&gt;[...'IKLMNOPQRSUVWXYZ[]^_0qxz{}~'].reduce((s,c)=&gt;(l=s.split(c)).join(l.pop()),`TNis_ZOlt }{rQ z^}{cQ Sz^ }KM}]M}xI[I~Z0ZYZLrseULundU{hWbelongV toY~{judgeRshavenU shWmarriV[MP}PZ{ the z
ThQ xOidenRforlWmilkV]qworriV{cQS 0{rooster XcrowV in{mWwoke~_Luse XJack built.^QeOlt]{cow with{crumplV hWtossVK[OnRtQterVU tWkissVxZ

TNisY{farmer sowing NcWkept0XthQ WornzVedU andSzkillV{rQR all QatPzlay in_O{maNhis Mzqz^L{hoK{dog IXqX^}`)

Try it online!