Agent-based modeling in JavaScript in the browser or on the server. [v0.5.19]

Language Evolution

Starting with no common language, a group of agents learn to communicate with each other through a guessing game. Each turn, an agent points to a unique object in a group of three objects. A second agent guesses the ‘meaning’ behind the first agent’s act of pointing — a distinguishing feature, like “blue,” “circle,” or “1st” — and produces a word for that meaning. If it matches the word the first agent had in mind, the association between the word and the meaning are strengthened (however, in ambiguous contexts, it’s possible for the second agent to match the first agent’s word but for a different meaning). At the start, since the agents have no vocabulary, they generate new words and use them randomly, but over time, a shared language emerges that allows them to successfully communicate about the features of objects.
Despite the simplicity of this model, a number of complex linguistic phenomena emerge, including synonyms (multiple words with the same meaning), differing usage/’slang’ among sub-populations, and context-specificity (ex. a word that is associated with “blue square,” but not squares in general). This model is based on Luc Steels and Frédéric Kramer’s Bootstrapping Grounded Word Semantics (1999).