Overview Make a clue game Make a spelling game Make a categories game Make word golf Make a dictionary Antonyms

Build a dictionary & thesaurus

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.

DEMO
TRY IT: DICTIONARY LOOKUP

Type one of the twelve baked entries — or tap one. KEYS and ICE CREAMS fold into their base entries; CAFE finds café.

Problems

Relevant data sources from Linguabase

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.

Example 1: How many words get an entry?

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.

PROCESSING QUEUEDATA INSPECTOR
NEXT STEP
1

    

DATA INSPECTOR

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.

Example 2: Split the related words by sense

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:

RELATED WORDS · KEY

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.

Example 3: Keep the family out of the entry

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 FAMILY FILTER · BARK
161 related words

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.

Example 4: What one entry ships

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:

THE ENTRY BUNDLE
See data for entry: key

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.

Outputs

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)
vocabularythe ranked list itself; the depth dialthe rank line in each entry
word familiesthe fold at step 4the filter listthe family line
definitionsthe paragraph-coverage linethe entry body
sensesthe 2+ senses filter at step 5the section headingsthe section headings
sense associationsthe words under each headingfiltered the same waythe sense rows
associationsthe undivided cloudthe cloud being filtered

Other considerations

25,789 is one spec against one release. Still open:

Next steps

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: