Monke as an Awkwords alternative
Coming from Awkwords? Monke reads Awkwords patterns and .awkw files, and maps subpatterns, brackets, optionals, weights and filters to rules and exclusions.
Awkwords is a pattern-based word generator that many conlangers learned word generation with. Its compact syntax (subpatterns named by capital letters, brackets, optionals, weights and filters) made it quick to sketch a phonology. Monke grew from the same idea, and keeps your Awkwords patterns usable.
Import an Awkwords pattern
Open the generator, choose Import, then Awkwords, and pick an .awkw file saved by Awkwords or paste a pattern. Subpatterns become rules, the main pattern becomes the root rule Word, and filters become exclusions. When something can't be translated exactly, the import says so in the output panel. The Reference lists every note the import can show.
Syntax side by side
| Awkwords | Monke |
|---|---|
Subpattern V with a/i/u | Terminal rule V with terminals a, i, u. A subpattern with brackets, letters or filters becomes a rule with patterns instead. Any name works, not only capital letters. |
Pattern CV | Root rule with the pattern C.V |
Text such as ka; spaces are ignored | Quoted text: 'ka'. A bare word is always a rule name. |
Escaped text "...", with "" for a double quote | Quoted text '...', with \' for a single quote and \\ for a backslash. |
Alternatives ka/ta | 'ka' / 'ta'. An empty alternative, as in [a/], is ''. |
Brackets [...] | Group [...] |
Optional (...), present half of the time | Optional (...), also half of the time. A choice inside needs a group: (['a' / 'b']) |
Weight *n, a whole number from 1 to 128, anywhere in its alternative | Weight *N at the end of the alternative, used only when weights are enabled. |
Filter ^text on the fragment before it | Exclusion on a rule that holds the fragment (see below). |
Example
This pattern from the Awkwords help, [VV]t[VV]^aa^ii^uu, keeps the second pair of vowels from repeating a vowel. In Monke the filtered fragment gets its own rule with exclusions:
Awkwords [VV]t[VV]^aa^ii^uu
Try itV becomes a terminal rule. The filtered [VV] becomes a Pair rule whose exclusions reject aa, ii and uu. Pair always makes two letters, so containing a banned pair means being equal to it.
Start rule Word
- RuleVterminal rule
Terminals 3
- a
- i
- u
- RulePairpattern rule
Patterns 1
- V.V
Exclusions 3
- 'aa'
- 'ii'
- 'uu'
- RuleWordpattern rule
Patterns 1
- V.V.'t'.Pair
What Monke adds
- Rule names of any length, not only one capital letter.
- Repetition with
{min:max}, and optionals with their own probability. - Rewrites with back-references, for sound changes and allophony.
- Exclusions that match patterns, with word boundaries
^and$. - Decimal weights, a seed for repeatable word lists, and Generate all to list every possible word.
- Share links that hold the whole grammar, and browser Back and Forward as undo and redo.
Other tools worth knowing
| Tool | Best for |
|---|---|
| Lexifer | Generating words from a phonology definition, with phoneme frequencies and clean-up rules. |
| Gen | A classic web word generator using categories and syllable types. |
| Wrdz | A word generator with a simpler interface; one of Monke's inspirations. |
| Vulgarlang | Generating a whole language at once (grammar, dictionary, phonology) rather than words to your own rules. |
| Lexurgy | Applying sound changes to words you already have. It complements a generator: generate protoforms in Monke, then evolve them. |