The Verification Venue · pointed at the alphabet

After Z Comes Å

Everyone learns one alphabetical order and calls it the alphabet. There is no single order. The same twenty names, shelved under Swedish rules, German telephone-directory rules, Welsh rules and raw byte order, come out four different ways, and the letter-by-letter versus word-by-word choice rearranges them again without touching a single rank. Every order on this page is recomputed in front of you from collation tables printed in the check panel.

Choose a rule set below, then drag any name on the shelf to where you think it belongs, or nudge it with the arrow buttons. The page either agrees with you or names the exact rule that overrules you: a Welsh digraph ranked as one letter, a German umlaut filed as its base vowel, a Swedish letter that waits behind z. Your move is scored, then the shelf springs back to the true order.

Rule set: Swedish

Try Welsh, then drag Lloyd above Loman. The page refuses, and names the letter that refuses with you: ll is one Welsh letter, and it ranks after l.

Filing discipline: letter by letter

Switch to word by word and watch Lind Anna and Linda Bertil trade places while every element keeps its exact rank.

These four tables are typed in full in the check panel below. They are conventions, not laws of nature, and other defensible tables exist for each language. ↓

← shelf position, first at topsort key cells →

Selected name shelves at

#15

of 20 names under Swedish rules, letter by letter

Its sort key (table weights)

[12, 26, 13, 18]

elements: m å n s

The shelf: drag a name, or nudge it with the arrows

    Drag a name, or nudge it with the arrows. The page will tell you which rule decides. (This is the page's one live region, so it speaks on every attempt.)

    All four rule sets work the same way, which is the quiet scandal here. Each name is cut into collating elements: single letters, or digraphs where a language says so. Each element gets an integer from that rule set's typed table. The name becomes a sequence of integers, its sort key, and shelving is nothing more than comparing those sequences element by element. Swedish types å, ä and ö as elements 27, 28 and 29, after z at 26. The German telephone-directory table has no umlauts to type: ä arrives already folded to a. The Welsh table types ch, dd, ff, ng, ll, ph, rh and th as elements in their own right, each just after its first component. Byte order types nothing at all: an element's weight is merely its code point number.

    (computed on load)

    So after z comes å is true in Stockholm, false in a Berlin phone book, and neither true nor false to a computer nobody has configured. The order was never in the letters. It is in a table somebody typed, and a different table gives a different true shelf.

    Filing discipline is a second, independent axis. Letter-by-letter filing ignores spaces. Word-by-word filing treats a space as sorting before any letter, so a whole first word must tie before the second word is consulted. Switch it above: the same names reorder, and not one element weight changes. A library, a phone book and a dictionary can hold these names in different orders while all three are correct.

    L = letter by letter, W = word by word. Each cell is that name's shelf position, 1 to 20, computed live. Span = highest minus lowest position across the eight columns. Click a name on the shelf to highlight its row.

    (computed on load)

    (computed on load)

    The check · every order recomputed in front of you

    Everything above is produced by the functions described here, from the tables printed below. The same tables exist twice: in a JSON block embedded in this page's source (search for aw-tables) and in research/after-z-comes-a-ring/engine.mjs. The verifier asserts the two copies are identical, then rebuilds every order by a second, independent method.

    The typed tables. Element weights are the positions shown; comparison is ordinary lexicographic comparison of weight sequences. (filled in on load)

    Swedish (sv)

    German telephone directory (de-phone)

    (filled in on load)

    Welsh (cy)

    (filled in on load)

    Byte order

    (filled in on load)

    Your current selection, substituted in:

    (computed on load)

    (recomputed on load)

    Run it yourself: node research/after-z-comes-a-ring/verify-after-z-comes-a-ring.mjs. It recounts and re-derives every order here by an independent string-key method, reproduces the hand-worked anchors, and supports --mutate.

    What's exactly true, what's idealised, and what's one convention among several

    Exactly true. Given the tables printed above, every order on this page follows by mechanical construction, and the total-order and distinctness claims are checked exhaustively over this twenty-name list every time the page loads. For the characters these names use, UTF-8 byte order, UTF-16 code-unit order and code-point order coincide, so calling the byte column byte order is exact here, not an approximation.

    Idealised. One table per locale, one primary weight per element, no secondary weights, no case or punctuation machinery; real standards carry all of that. The scanner uses maximal munch, which mis-splits loanwords: under the Welsh table a word like angstrom files as a, ng, because ng is swallowed as one letter. Names that fold to the same key (Weiß and weiss under the phone-book table) tie, and the page reports the tie rather than inventing a tie-break. The Welsh table has no k, q, v, x or z, so a name containing them is rejected loudly, not silently mangled. Whether j counts as a full Welsh letter was historically contested; this page includes it.

    Representative, not universal. The German convention pinned here is the telephone-directory treatment (umlauts filed as base vowels). The dictionary treatment, which expands ä to a followed by e, is equally defensible and would shuffle these shelves differently; the page pins one and names it as one. Under Welsh rules, å, ä and ö do not exist; the page strips them to a, a and o, a page convention for loan spellings, flagged here because no settled rule covers it. The same goes for the phone-book table's treatment of å as a. Spanish stopped treating ch and ll as separate letters in 1994, and Dutch ij as a single letter is historical practice; neither appears in these tables. The Unicode default collation table is a real, large, maintained artifact and this page deliberately does not approximate it; reconstructing it from memory would be fabrication. The twenty names are chosen to exercise every rule, not sampled from anything.