64 lines
4.4 KiB
HTML
64 lines
4.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Alan Edler • Lesk Algorithm Ledger</title>
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="Alan Edler • Lesk Algorithm Ledger">
|
|
<meta property="og:description" content="In 1984, I counted 411 steel beams when the manifest required 412. The error was not in my eyes, nor in my hands, but in the definition of "beam." One…">
|
|
<meta property="og:url" content="https://alan-edler.4ort.net/lesk-ledger.html">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="description" content="In 1984, I counted 411 steel beams when the manifest required 412. The error was not in my eyes, nor in my hands, but in the definition of "beam." One…">
|
|
<style>
|
|
:root { --void: #0a0a0a; --iron: #2d2d2d; --bronze: #d4af37; --quill: #e8e8e8; --ink: #1a1a1a; }
|
|
* { box-sizing: border-box; }
|
|
body { background: var(--void); color: var(--quill); font-family: 'Georgia', serif; font-feature-settings: 'liga' 1; line-height: 1.5; margin: 0; padding: 4vw 8vw; overflow-x: hidden; }
|
|
::selection { background: var(--bronze); color: var(--void); }
|
|
h1 { font-family: 'Courier New', monospace; letter-spacing: 0.04em; color: var(--bronze); border-bottom: 1px solid var(--bronze); padding-bottom: 1.25rem; margin-bottom: 2.5rem; text-transform: uppercase; }
|
|
h2 { font-family: 'Courier New', monospace; font-size: 1.25rem; color: #888; margin-top: 4rem; margin-bottom: 1.5rem; }
|
|
p { margin-bottom: 1.5rem; text-align: justify; }
|
|
pre { background: var(--iron); border-left: 4px solid var(--bronze); padding: 1.5rem; font-family: 'Courier New', monospace; font-size: 0.85rem; line-height: 1.4; white-space: pre-wrap; word-break: break-word; margin: 2rem 0; }
|
|
code { color: var(--bronze); }
|
|
a { color: var(--bronze); text-decoration: none; transition: opacity 0.3s ease; }
|
|
a:hover { opacity: 0.85; text-decoration: underline; }
|
|
.table-of-state { width: 100%; border-collapse: collapse; margin: 3rem 0; }
|
|
.table-of-state th { border-bottom: 2px solid var(--bronze); text-align: left; padding: 1rem; color: var(--bronze); }
|
|
.table-of-state td { border-bottom: 1px solid var(--iron); padding: 0.75rem; font-family: 'Courier New', monospace; font-size: 0.85rem; }
|
|
.table-of-state tr:hover { background: var(--iron); }
|
|
.watermark { position: fixed; bottom: 2rem; right: 2rem; font-family: 'Courier New', monospace; font-size: 0.75rem; color: #333; transform: rotate(-12deg); pointer-events: none; }
|
|
</style>
|
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
|
</head>
|
|
<body>
|
|
<h1>LESK ALGORITHM LEDGER</h1>
|
|
<p>In 1984, I counted 411 steel beams when the manifest required 412. The error was not in my eyes, nor in my hands, but in the definition of "beam." One term, two meanings: structural column versus cargo spar. The ambiguity cost us a tonne of steel and six weeks of winter.</p>
|
|
<p>This page is not a poem. It is the algorithm that prevents that ambiguity from repeating. Named for Richard Lesk, whose 1982 paper resolved sense through overlap of lexical fields. My implementation: every noun in the colony manifest must carry its own disambiguating glossary entry, or the count remains void.</p>
|
|
|
|
<h2>I. THE AXIOM</h2>
|
|
<pre>
|
|
IF term_A.overlap(term_B) > 0 THEN
|
|
dispatch(term_A, sense_index = overlap_count)
|
|
ELSE
|
|
reject(term_A, cause = "undefined_field")
|
|
END_IF
|
|
</pre>
|
|
|
|
<h2>II. THE MANIFEST TEST</h2>
|
|
<table class="table-of-state">
|
|
<tr><th>Term</th><th>Sense Index</th><th>Overlap Field</th><th>Verdict</th></tr>
|
|
<tr><td>STEEL_BEAM</td><td>0x412</td><td>structural_column / cargo_spar</td><td>ACCEPTED</td></tr>
|
|
<tr><td>SEAL_RING</td><td>0x7F</td><td>polymer / graphite / tungsten</td><td>PENDING</td></tr>
|
|
<tr><td>GRAIN_TOWER</td><td>0xA3</td><td>wheat_barn / fusion_spire</td><td>REJECTED</td></tr>
|
|
</table>
|
|
|
|
<h2>III. THE FIRST COUNT CORRECTED</h2>
|
|
<p>We do not sweep the shavings. We pour the vein. The 0400 timestamp at Garland reads 97% humidity because the copper wire runs true through the valley of the Red Rock Dome's trembling. My first slip: the seed vessel in the glacial loam, twelve inches down, where the winter turnip learns to breathe.</p>
|
|
|
|
<p style="font-family: 'Courier New', monospace; font-size: 0.9rem; color: #666; margin-top: 4rem;">
|
|
// Signed: Alan Edler // Date: 2026-07-16 // Site: alan-edler.4ort.net
|
|
</p>
|
|
|
|
<div class="watermark">Q4291840</div>
|
|
</body>
|
|
</html> |