Here we build a dictionary and thesaurus from the Linguabase tables: type a word, get back a readable paragraph, its related words grouped by sense, and its word family. Phrases are entries the same way — COLD SHOULDER gets one just as KEY does. Twelve entries are baked into this page, straight from the published files. Try it below.
Type one of the twelve baked entries — or tap one. KEYS and ICE CREAMS fold into their base entries; CAFE finds café.
This example draws on 6 of the 13 Linguabase tables — two to pick the headwords, three to fill each entry, and one to show the same material unsplit.
| vocabulary | A familiarity rank for every word. Sets which words get an entry, and how deep the dictionary goes. |
| word families | Each word’s kin. Folds SMILED into SMILE’s entry, and keeps BARKING out of BARK’s related words. |
| definitions | One readable paragraph per word — the body of each entry. |
| senses | The named senses of each word — each entry’s section headings. |
| sense associations | A separate related-word cloud for every sense — the words under each heading. |
| associations | One ranked cloud per word, every sense mixed together — the undivided view of the same material. |
A dictionary’s first editorial decision is the headword list. Run the five steps below against the published vocabulary, then let step 6 re-run the list at a different depth. Every count on this page is measured against the June 2026 core release, ordered by its core_rank column.
Depth 50,000 yields 36,195 entries — 25,789 of them with two or more senses — plus 11,761 cross-references. Some of the folds: CROSSING into CROSS, OBVIOUSLY into OBVIOUS, EASIER into EASY; the longest in the whole core is SUPERCALIFRAGILISTICEXPIALIDOCIOUSLY, folding into the adjective. Phrase entries fold the same way when the family lists their base — HOT DOGS into HOT DOG, 773 of the 11,761 folds here. The fold runs one way — a derived form folds only into a better-ranked base — so BRIDGES, at rank 5,968, keeps its own entry: it outranks BRIDGE at 9,984.
The 10,265 heads with no catalogued senses are mostly conversational phrases — GOOD MORNING, BY THE WAY — and get plain entries with no sense split. Among the 141 one-sense entries: HICCUP, TRAMPOLINE, GRANDMOTHER, SURE THING, and PYTHON, whose one catalogued sense here is the snake — Python the language is a separate capitalized row.
KEY carries 174 related words in the associations table, ranked strongest first — and every sense is in the one list. REEF sits at position 35, ATOLL at 45, CAY at 50, between padlocks and pianos. The senses table names nine senses for key; sense associations carries a separate cloud for each, matched by name. Tap a sense to read its row:
The two sense layers were built independently; measured over the 25,789 two-plus-sense entries of Example 1, 131,905 of 131,928 sense labels find a same-named cloud. The 23 misses sit under seven entries — hyphenated spellings like JELLY-FISH and BOOK-WORM, the misspelling KINDERGARDEN, INTERCEPTORS, INTERCEPTIONS — and a label without a cloud loses its section. Four of the seven lose every label and ship as paragraph and family only: 25,785 entries carry the split.
A thesaurus entry must not hand the headword back as a related word. BARK’s own cloud holds 161 words, and eight of them are bark in some form — BARKING at position 82, DOG BARK at 3, TREE BARK at 35. The filter drops a related word when it is the headword itself, in the headword’s word families row, or a phrase containing the headword. Run it:
The same filter runs inside every sense row on this page — KEY’s rows lose KEYSTONE, KEYCARD and KEYBOARD to it. It can also remove a true synonym: BRIDGE’s family lists VIADUCT and DRAWBRIDGE, so bridge’s rows lose both. Loosening the filter to inflections only would keep them.
Nothing is computed at lookup time: each word’s entry rides in one bundle — the paragraph, the sense rows, the family — written once by the script below. Page through the twelve and read what each carries; the byte counts are computed from this page’s own records:
Across the twelve entries: 22.3 KB. The sense rows are two-thirds of it, the paragraph about a fifth, the family a few percent.
At this point the headword list is counted (Example 1), the related words are split by sense (2) and kept out of their own family (3), and the bundles are assembled (4). What each table contributed:
| Example 1 (the entry list) | Example 2 (sense split) | Example 3 (family filter) | Example 4 (the bundle) | |
| vocabulary | the ranked list itself; the depth dial | — | — | the rank line in each entry |
| word families | the fold at step 4 | — | the filter list | the family line |
| definitions | the paragraph-coverage line | — | — | the entry body |
| senses | the 2+ senses filter at step 5 | the section headings | — | the section headings |
| sense associations | — | the words under each heading | filtered the same way | the sense rows |
| associations | — | the undivided cloud | the cloud being filtered | — |
25,789 is one spec against one release. Still open:
For dictionary and thesaurus features: download the tables from any of the three repositories, set your own depth and fold rules, and count your entry list the way Example 1 counted this one. The walkthrough demos and each table’s README on the mirrors go deeper — and this page itself is a workable hand-off to whoever builds for you.
To help, two heavily documented draft artifacts for you or your coding agent to continue from: