Situ Design Brief

General Idea

An autogenerator for toponymy (place-names) on the basis of (fantasy) inputs corresponding to sets of place-name elements. E.g., in English ‘Hampton’ consists of ‘ham’ and ‘-ton’, but ‘Southampton’ out of ‘south’, ‘ham’ and ‘ton’, and so forth. The idea is that there are lists of all the common elements of this type, and that the user can fill in what conlang words they want to correspond to such elements, and that the program subsequently autogenerates as many new toponyms as required.

Structure

  • A list of common place name elements. Ideally, these should be categorized/tagged/otherwise selectable according to geographical context, i.e. mountain-relevant ones, generic ones, coastal/island ones, etc. Keep in mind that there should also be room for proper names in this, as ‘Swansea’ is ‘Sven’s island’ etc.
  • A table corresponding to these where conlang elements can be filled in. Consider that in real life toponymy, there will be multiple words corresponding to the same geographical element, such as in English ‘-shaw’, ‘-weald/wold’ and ‘-frith’ all refer to a wood, ‘-don’, ‘-howe’, and ‘-hirst/hurst’ all refer to a hill, etc. (Moreover, in English as in some other languages toponymy has a lot of redundancy due to the use of an Anglo-Saxon, a Celtic, and a Norse word for the same geographical thing, etc.) So one should ideally be able to fill out multiple words per geographical referent.
  • Some kind of rule or set of rules, to be determined by the user, for the syntactic structure of how the toponymy is derived. In English, Dutch, German etc. the name is usually just a compound of the elements, so ‘Southfarmenclosedhomestead’ for Southampton. But in French (and via that, in some English places too: Chapel-en-le-Frith) this is not necessarily so: e.g. Noisy-le-Sec, Aix-la-Chapelle. So some kind of linguistic rule for how to construct the names from the table needs to be determinable.
  • Finally, ideally, some kind of effect that with a probability distribution will ‘smoothen’ names (if possible): both compressing them or just making small variations in the vowels, consonants, or simply the elements as such. It may be easiest to set a rule for permitted variations, so you could e.g. set that ‘-ton’ could also show up as ‘-tun’, ‘ham’ as ‘hamp-‘ before a consonant, or whatever, in addition to some kind of compression mechanism (?)