In some areas of computer science, “oracle” is used as a term for a magic box that delivers solutions to undecidable problems. Or, sometimes more generally for any machine that generates answers by a process you don’t understand. One of the roles I play with respect to the Battle For Wesnoth fantasy game is as an oracle that generates plausible fantasy names on demand.
Here’s a (very lightly edited) transaction of this kind that I took part in a short while ago. There’s something going on behind it that is odder than will be immediately apparent.
[22:27] <espreon> Espreon: Would you please generate an authentic name for an elvish city?
[22:28] <esr> Sure. Where is it? Are there names of nearby places? What kind of city is it?
[22:29] <espreon> It is in an off-map area of the Northern Forest (probably a part of the Lintainir Forest). Nearby names: Firecloud Peak… Noct… Dramalida
[22:29] <espreon> It was a capital city of that elvish civilization.
[22:30] <esr> Welcome to the city of Aranion
[22:30] <espreon> Thank you. :)
[22:30] <esr> It’s a gift :-)
[22:31] <esr> I actually don’t know how I do it.
[22:31] <espreon> May I also have a name for a mountain within that forest; it has an ancient crypt in which a great elvish ruler (I named him Tyurnio) rests?
[22:32] <esr> Do you want an Elvish name or a kenning in English?
[22:32] <espreon> Elvish please.
[22:32] <esr> Smallish mountain or large?
[22:32] <espreon> An English alternative would probably be needed too.
[22:33] <espreon> Smallâ€“medium…
[22:33] <esr> Mount Deranar, called in the tongue of men “Hero’s Rest”.
[22:34] <espreon> Meh, the ruler was a bit hasty and wrathful… but… meh…
[22:34] <esr> OK, thinking…
[22:35] <esr> Mount Thrakal, called in the tongue of men “Pridefang”
[22:36] <espreon> Excellent.
OK, now here’s what makes it odder than it looks. You’d think, reading this transcript, that I was running some kind of conscious algorithm and that my questions were directing me down a logic branch or setting parameters that I was aware of.
But no. Except for “Do you want an Elvish name or a kenning in English?” I actually had absolutely no idea why I asked the questions I asked. I listened to them coming out of my mouth as though I were a spectator. I also had no introspection at all about how the answers to my questions affected the generated names, nor did I actually know what I was going to generate until it sort of popped up in my attention from somewhere out of sight in my mind.
This is all the more bizarre because I’m pretty sure I know from first principles what my brain must be doing. There’s a stock technique for generating plausible sets of names that resemble a known corpus. You build a Markov-chain statistical model of how lexemes, or syllables, are coupled based on observed transition frequencies; then you just roll dice (word-based versions of this technique are often called travesty generators). Many years ago I was a developer on the classic dungeon-crawling game Nethack; it used this technique for generating names and probably still does.
It is almost certain that my brain is doing likewise, especially since I am observably capable of generating instantly and at will names that are recognizably Elvish, Dwarvish, or Orcish. This implies a strong likelihood that the reason I asked for nearby placenames was to get some handle on the local transition frequencies. But this is purely a deductive guess on my part; I can’t monitor the generator in my head at all!
Being an oracle in this way feels pretty weird when it’s happening. It’s almost disassociative.
A couple of other things are interesting to note. One is that Espreon instantly accepted my first name choice for the city. This is normal; I don’t think I’ve ever had a dev reject a name I generated because it sounded wrong for the language it was supposed to be in. So not only do I have a Markov chain in my head that generates names, it reliably generates names with phonotactics that others recognize as correct. This suggests that all post-Tolkien fantasy fans have learned very similar phonotactics that they’re able to apply for recognition, if not for generation.
Note how fast the generator works. I invented three names in 8 seconds, and a lot of the intervening latency was actually typing time. Usually it takes me at most a second or two to come up with something appropriate. Whatever I’m doing, it’s clearly not computationally expensive. I consider this weak supporting evidence that I’m running a Markov chain; it’s a fast, cheap algorithm.
I interpreted Espreon as rejecting “Hero’s Rest” because he felt that kenning didn’t have the atrnosphere he wanted. I’m guessing that “Pridefang” might be an echo of “Mount Fang”, Tolkien’s Westron name for Orthanc (the keep of Saruman), but that wasn’t in my consciousness at the time. I generated “Pridefang” first, then felt real pressure to come up with a different name to match the new kenning; it was like an actual sensation of tension or discomfort in my head, with considerable felt relief when I uttered “Thrakal”.
I think “Thrakal” might actually be a Dwarvish name; there’s a pattern in Wesnothian Human and Elvish languages of using Dwarvish borrowings or calques for names of mountains and mountain ranges, and this one matches Dwarvish phonotactics. (The elves, on the other hand, tend to toponymically own the rivers.)
I’m completely clueless about why the size of the mountain was relevant. I’d love to know, or even have a plausible guess, about how I used that information.