The CEOL Universe, version 1.0
Every row is a candidate string, never a verdict. A row records that a pinned source lists the string, that it was inherited from the English OpenList at a pinned revision, or both.
- Rows
- 10,020,150rows
- Version
- 1.0, built October 25, 2026
- Data license
- CC BY-SA 4.0
- On Hugging Face
ryanjosephkamp/ceol-universe, private until the release- DOI
- minted at the release
What this dataset is
The CEOL Universe is an inventory of candidate English strings, each with
its provenance: which pinned sources list it, how it entered the pool, and
its corpus features. It is a frame from which anyone can derive a word
list under a definition of their own. Its strings are the output of an
executable grammar (pipeline/ceol/grammar.py) that admits hyphenated
compounds, accented loanwords, contractions, apostrophe forms, ligature and
diaeresis spellings, and multiword terms. This version holds
10,020,150 rows, 1 per string.
The family of datasets has 3 kinds of member:
- The EOL (
ryanjosephkamp/english-openlist): an English word list under its own grammar and governance. The universe reads it at a pinned revision and never writes to it. Its public dataset is this dataset'seol-validconfig: the 344,713 rows of its list at that revision that this version ships. - The CEOL Universe (this dataset,
ryanjosephkamp/ceol-universe): the candidate inventory, versioned as its pins are. - Derived datasets, each built from a version of the universe under
its own rule, with its own name (
ceol-<rule>-<version>) and its own card.
The configs
The universe config is the public rows; the filter configs are subsets of it, and the features config is a separate table. Each is shipped as its own file.
| Config | What it holds | Rows |
|---|---|---|
universe |
every row | 10,020,150config.universe.rows |
features |
the single-token rows, with the feature columns | 9,725,285config.features.rows |
panel-listed |
rows a published word list lists | 1,384,833config.panel-listed.rows |
eol-valid |
the English OpenList at revision c1139698 | 344,713config.eol-valid.rows |
spaced |
multiword rows | 294,865config.spaced.rows |
exceptions |
rows with a hyphen, an accent, a diaeresis, an apostrophe, or a ligature | 209,883config.exceptions.rows |
sample |
the rows whose id begins with 00, for trying the dataset | 38,988config.sample.rows |
Load it
from datasets import load_dataset
rows = load_dataset(
"ryanjosephkamp/ceol-universe",
"universe",
revision="v1.0",
split="candidates",
)
print(rows.num_rows)
SELECT count(*)
FROM
'hf://datasets/ryanjosephkamp/ceol-universe@v1.0/data/universe.parquet';
The release's consumer test loads every config this way in a clean environment and checks what it gets. To load only the rows you need, compose a list and take its code.
In this section
-
Profile
Every dimension of every row, charted; click to filter them all.
-
Limitations
What to know before using it, stated first.
-
Columns
The data dictionary: every column, its type, and its nulls.
-
What is withheld
The lists, labels, rows, and feature columns this version leaves out, and why.
-
Sources and licenses
Where the strings come from, the licenses, and the credits.
-
Versions
The version, the pin it rests on, and the change log.
-
Cite and contact
How to cite it, how to ask for a change, and the canary.