Skip to content
Monke

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 syntax and its Monke equivalent
AwkwordsMonke
Subpattern V with a/i/uTerminal 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 CVRoot rule with the pattern C.V
Text such as ka; spaces are ignoredQuoted text: 'ka'. A bare word is always a rule name.
Escaped text "...", with "" for a double quoteQuoted 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 timeOptional (...), 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 alternativeWeight *N at the end of the alternative, used only when weights are enabled.
Filter ^text on the fragment before itExclusion 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 it

V 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

Conlang tools and what each is for
ToolBest for
LexiferGenerating words from a phonology definition, with phoneme frequencies and clean-up rules.
GenA classic web word generator using categories and syllable types.
WrdzA word generator with a simpler interface; one of Monke's inspirations.
VulgarlangGenerating a whole language at once (grammar, dictionary, phonology) rather than words to your own rules.
LexurgyApplying sound changes to words you already have. It complements a generator: generate protoforms in Monke, then evolve them.