Random Word Generator — data provenance, licences and checksums ==================================================== Seven data files ship with this app. Four are word lists derived from SCOWL and carry SCOWL's licence; one is SCOWL's licence itself; two are original to this app. Every claim below is checkable without trusting it, and the app's own test harness recomputes each SHA-256 from the shipped bytes rather than from this file. PART 1 — the word lists (SCOWL) ------------------------------- The four word lists are derived from SCOWL, the Spell Checker Oriented Word Lists compiled by Kevin Atkinson. The full licence text ships alongside this file, verbatim and unmodified, as LICENCE-SCOWL.txt, and is linked from the app's footer. https://random-word-generator.skillsafe.ai/data/LICENCE-SCOWL.txt Source ~~~~~~ Package SCOWL (Spell Checker Oriented Word Lists) Version 2020.12.07 Author Kevin Atkinson, and the contributors named in LICENCE-SCOWL.txt Home http://wordlist.aspell.net/ Retrieved https://downloads.sourceforge.net/wordlist/scowl-2020.12.07.tar.gz scowl-2020.12.07.tar.gz sha256 5587667caa20c4891390c2d42dbb4d5c4c3f41bee77af1457ece3ba23fb859cc LICENCE-SCOWL.txt is the "Copyright" file from the root of that archive, copied byte for byte. sha256 283326a422e29c510e2ba6805518c418ce3c35ed1fadc3eec83d2da4f6c5a055 Both digests were verified against a freshly downloaded archive while this app was being built, and every word in every shipped band was confirmed to appear in the upstream level files named below — see "Verifying this notice". Why the licence permits shipping these files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SCOWL's collective work carries a permissive notice — use, copy, modify, distribute and sell are granted without fee, on the condition that the copyright notice and the permission notice travel with the copies. LICENCE-SCOWL.txt is that notice, shipped as a served asset rather than only referenced, which is what the condition asks for. SCOWL is assembled from several upstream lists, each with its own status, and LICENCE-SCOWL.txt records all of them. Every source that feeds the levels used here is either public domain or permissive with a notice-retention condition that this file and LICENCE-SCOWL.txt satisfy: Public domain Moby Words II (MWords), released into the public domain by Grady Ward Brian Kelk's "UK English Wordlist With Frequency Classification" Alan Beale's 12Dicts package and Supplement, including 3esl, 2of4brif and 5desk The "Unofficial Jargon File Word Lists", derived from The Jargon File The 1990 US Census given-name and surname lists, US federal government work Permissive, notice retained here and in LICENCE-SCOWL.txt SCOWL itself, Copyright 2000-2018 Kevin Atkinson WordNet 1.6, Copyright 1997 Princeton University, used in building the inflection database that expands the 12Dicts entries VarCon, Copyright Kevin Atkinson and Benjamin Titze, used to derive the American and British spellings Ispell, Copyright 1993 Geoff Kuenning, from which the VarCon lists descend **Levels above 70 are deliberately excluded**, and this is a licensing decision rather than a quality one. SCOWL's level 80 is the first band to pull in the UK Advanced Cryptics Dictionary, whose licence requires that "the copyright notice must be prominently displayed and the text of this document must be included verbatim" — a separate document carrying a separate obligation. Level 80 is also where the ENABLE word list and the MWords places list enter, and level 95 adds the very large MWords dumps. Rather than take on a condition that is easy to satisfy incompletely, the word lists here stop at 70. Nothing shipped in this app derives from UKACD, from ENABLE, or from the level-80 and level-95 lists. What ships, and how it was produced ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Source files, all from scowl-2020.12.07/final/ : words-a.txt english-words.{10,20,35,40} + american-words.{10,20,35,40} words-b.txt english-words.{50,55,60} + american-words.{50,55,60} words-c.txt english-words.70 + american-words.70 names.txt english-proper-names.{10..70} + american-proper-names.{10..70} + english-upper.{10..70} + american-upper.{10..70} Transformations applied, in order. These are the only changes; no word was added, and no word was changed into a different word. 1. Decoded from ISO-8859-1, which is the encoding of SCOWL's final lists. 2. Accents folded to their base letters (NFKD, combining marks removed), so that an accented headword is comparable against the plain-ASCII strings this app generates. 3. Dropped any entry that is not purely A-Z after folding. That removes possessives ("AOL's"), hyphenated forms, entries with periods and any residual non-Latin character — none of which a generated coinage could ever collide with, since the generator emits nothing but A-Z. 4. Dropped single letters other than "a" and "i". 5. In the three word bands only: dropped sixteen entries that are not words — the plurals of letter names (cs, gs, ks, ls, ms, rs, ts), the unit symbols (kb, lm, ln, lx, mb, mf, ps, ss) and "oo" — and dropped entries carrying an interior capital, which in SCOWL marks a symbol rather than a word (kW, dB, kHz, pH). "OK" and its inflections are kept as the documented exception. 6. In the names band only: dropped entries shorter than three letters, which in SCOWL's capitalised lists are overwhelmingly chemical symbols (Ac, Np, Pt, Cs) rather than names. 7. Deduplicated case-insensitively, preferring a lowercase spelling where both exist, and across bands so that a word appears in exactly one file — the lowest band it occurs in. 8. Sorted, one word per line, LF line endings, UTF-8. These four files are byte-identical to the ones shipped by Anagram Lab, another app on this account, which is where the derivation above was first carried out. They are reused rather than re-derived, and the digests below are the check that they are the files this notice describes. words-a.txt 43,860 words 395,520 bytes sha256 51b0aa007c38c403b6967091e863cced7121215a97d697682f348e6b7f3e9b84 words-b.txt 33,365 words 338,744 bytes sha256 5491c7e738e915b70583c97e9adba4a3137c20a282779a807d2873e363fd448b words-c.txt 34,559 words 359,429 bytes sha256 f1da03bb7e09d2818a93da8bc38c89dbcf235eef0bc106857b4238448d3f4fa8 names.txt 14,404 words 119,776 bytes sha256 dbca53d522eaed2a9629bfeb3068b53ec4bc506e71d53b679fb9a6d1f3afc473 LICENCE-SCOWL.txt 11,758 bytes sha256 283326a422e29c510e2ba6805518c418ce3c35ed1fadc3eec83d2da4f6c5a055 Total 126,188 words 1,213,469 bytes Attribution ~~~~~~~~~~~ SCOWL is Kevin Atkinson's work and this word list is his list, cut down. Alan Beale's 12Dicts package and its supplements feed every band shipped here, as does Grady Ward's Moby Words II and Brian Kelk's frequency-classified list; all three were placed in the public domain by their authors, and are credited here because that is the right thing to do rather than because a licence compels it. No endorsement by any of the people or institutions named in LICENCE-SCOWL.txt is claimed or implied. PART 2 — the two filter lists (original to this app) ---------------------------------------------------- avoid-stems.txt and brand-stems.txt were written for this app. They are not derived from any third-party list, database or product, and no licence beyond this app's own attaches to them. Each file carries its own header explaining what it is for, what it deliberately does not cover, and the matching rule that governs it. avoid-stems.txt 163 stems 2,825 bytes sha256 6ee1e2eed4978b910ac45547da305d79d148c2cb56d19b10c94ef28aaec3c273 Offensive terms in English and several widely-spoken European languages. A generated coinage matching any of them is discarded and never displayed. Not exhaustive, and cannot be — it does not cover most of the world's languages. brand-stems.txt 157 stems 2,630 bytes sha256 e46ee063620982d8fe8d05824cfc3d9e15725aa3a7351db328594fa7a8d0c320 Names of well-known trademarks, every one of them owned by somebody else and reproduced solely so that generated coinages can avoid colliding with them. No affiliation, endorsement or sponsorship is claimed or implied, and nothing in this list is made available for use by this app or its users. This is not a trademark search: a real one covers millions of registrations across dozens of classes and jurisdictions, and no word list approximates it. Verifying this notice --------------------- Nothing here has to be taken on trust. 1. The archive. Download it at the URL given and confirm its SHA-256. The "Copyright" file inside should be byte-identical to LICENCE-SCOWL.txt. 2. The shipped files. `shasum -a 256 words-a.txt` and the rest should reproduce the digests above. The app's offline harness does exactly this on every run, computing the digests from the bytes on disk rather than reading them out of this file, so a data file that drifts from its notice fails the build. 3. The derivation. Every word in each shipped band should appear in the upstream level files named for that band, after applying steps 1 to 3 above. This was checked while the app was built: 126,188 shipped words, zero outside their own band, and zero outside SCOWL levels 10 to 70 altogether.