Going over the hilarious insults generated by ScrollSeek, he identifies the following insult patterns:
Pattern 1: [You] [compound expression] Pattern 2: Verb [You|noun] [adverb], [compound expression]. ( Predicate and subject, complete sentence. ) Pattern 3: [Why don't] [you] [imperative verb], [You] [compound expression] Pattern 4: [If I] [modal verb] [phrasal verb] [possessive pronoun] noun, [future simple verb] verb [You|possessive pronoun noun] [preposition] [possessive pronoun] noun [You] [compound expression]. ( Predicate and subject, complete sentence.)
we note that a compound expression
can be a:
noun
s (dickweed)noun
and a verb
(shiteater)adverb
and a verb
(cheap fuck)adjective
and a noun
(scumbag)
We use the term compound expression
since the term is used in a larger sense than compound nouns
, allowing expressions such as "cheap fuck" which consist of a verb and a noun as well as being separated. However, such compound expressions
belong to the language's insults and are commonly grouped in an idiom. Some examples include:
buttfuck fuckup fuckface dickweed fuckwad dipshit fucknut fat fuck scumbag scumball scumbucket cheeseball skeezball sleazefuck cornball cornhole dumbass dumbfuck dumbshit fuckface shitbrain shitface dickhead
These are usually created by permuting free morphemes with insults or grotesque terms, such as fucker
and shit
. Then again, how come that the association with animals or body-parts seem much more insulting than free individual morphemes?
In many ways, insults are an expression of style themselves governed by phonetic rules (rhyme and rhythm) as well as combining different universal elements of culture. For example, "shitting", "pissing", "fucking" or words that describe body parts which are predominantly subject to matters of morality can be easily transferred universally from one language to the other. The son of a bitch
idiom can also, apparently, be universally translated and still appear offensive - although, that applies to some cultures more than others.
Another good example of that would be by comparing the English assface
to the German arschgesicht
which in both cultures can be considered sufficiently insulting. Some idioms, although they translate perfectly from one language to the other and are a valid insult, may be more insulting in one culture than another. It is sensible to assume that different events or changes during the evolution of the two cultures have rendered some of these idioms more insulting or less insulting than other idioms. [Example]. Similarly, we could also venture to observe that cultures with a history of agrarian development tend to use animals in the idioms themselves - naturally, this would be due to the awareness gained by dealing with them on an universal scale.
Based on that, let us extend the list by assuming that many societies are predominantly agrarian and let us compose idioms consisting of an animal and "fucker":
pigfucker dogfucker goatfucker sheepfucker cowfucker duckfucker
which all seem insultingly valid. Let us try now the association between a characteristic or identifying body part and an animal:
pigface goatface cowface horseface fishface
which, again, seem to be generally derogatory. How about feet?
chickenfeet pigfeet cowfeet
And how about identifying behavioral human patterns such as duckwalk
. The same works for vegetables, think about it, you have heard those before.
The explanation that we give is that animals, plants and even concepts such as machines are deeply rooted within the knowledge base of many cultures. They all have distinct behavioral patterns as well as varying shapes that become grotesque and when associated with fairly standard human traits making humans appear abnormal. However, that is still not enough and the final icing on the cake is the universal morality revolving around these concepts. A cow is considered dumb, a pig is an universal symbol of gluttony, and a chicken walks in trivially identifiable patterns which hints to rudimentary motor skills. "chickenrobot", hey what do you know, you can insult selfless objects as well.
We would wager that hyperbolas in the creation of insults do not play that much of a role than the cultural meanings encoded in the free morphemes and cannot achieve the same level of insulting appearance.
Based on the etymology, we build the dictionary files.
chicken cow dog donkey duck goat goose horse pig sheep turkey fish rat monkey
face ass brain cunt
shit cum piss
arrogant obnoxious surly sarcastic ignorant guilible confused immature insipid stubborn spiteful insensitive prejudiced spoilt
go eat go drink go lick go suck
Using two dictionaries containing animals and body-parts, we can write the following generator:
using System; using System.IO; using System.Linq; using System.Collections; using System.Collections.Generic; public class compounds { public static void Main() { List<string> animals = ReadWords("animals.txt"); List<string> bodypartss = ReadWords("bodyparts.txt"); var rnd = new Random(); new List<int>(new int[20]).ForEach(e => System.Console.WriteLine(String.Format("{0}{1}", (string)animals[rnd.Next(animals.Count)], (string)bodypartss[rnd.Next(bodypartss.Count)])) ); } private static List<string> ReadWords(string file) { try { return File.ReadAllText(file).Trim().Split(new char[] {'\n'}).ToList(); } catch(Exception e) { Console.WriteLine("Could not read file: " + e.Message); } return null; } }
we get the following set of 20-pointwise associations output:
horseface donkeybutt fishass donkeybrain fishass horseass sheepass duckbrain fishass duckbutt goatface goosebutt cowbrain dogbrain fishbrain chickenass chickenface donkeyass cowbrain dogbrain
which do not seem too polite for starters.
As ScrollSeek did, we observe that we need to establish a few typical sentence dispositions which we can permute in order to generate any length of profanity. Thus, we will write a program that combines several smaller modules which generate typical swearing sentences.
We list the sentence dispositions here as a reference in order to build the modules:
Module Number | Description | Used Dictionaries | Generated Example |
---|---|---|---|
1 | Telling people to get lost. | Animals, Body-parts, Obscene, Character and Imperatives. | Go suck shit you spiteful cumrat! |
Go drink piss you confused cumturkey! | |||
Go eat shit you arrogant fishbrain! |
If every module is designed to create a complete sentence, then we can canonize the modules in order to generate chains of insults.
For example, an insult chain could be:
Chain = M1 M2 M4 M1 M5 M2
where M1
to M5
represent the self-standing modules.
M1 M1
is not valid because it would sound repetitive and redundant. For example, a chain insult such as "Go lick shit you obnoxious donkeyass! Go eat cum you spoilt sheepcunt! Go suck piss you guilible shitdonkey!" contains too many M1
modules which are imperative by nature and the succinct repetition makes the insult boring. It becomes obvious that given a number of modules, they must be disposed so that every module is as far away as possible from its own reoccurrence.M1 M2 M3 M1 M2 M3 M1 M2 M3
always maintains a distance of
Given a set of
elements and suppose that we draw elements from that set to generate a new set
with
-elements, what is the optimal order of elements so that the
-th element will be as far away as possible from the rest of
elements?
For example, taking a set of four elements , the best sequence is the one that has the smallest distance between two modules
:
O=4 2 3 1 2 3 4 1 2 3 4 1 . . . | | +-----+ 3
Or, a wrongly ordered sequence could have a distance of between two modules:
O=1 1 2 4 3 2 1 4 2 . . . | | +-+ 1
The distances are given by:
max = |S|+1 min = |S|-1 for |S| >= 1
Take a set with
elements so that:
* * = roundUp(|S|/2) S1 = 1 2 3 4 | | | +---+ C1 = 3 4 => 1 or 2 C2 = 2 3 4 => 1 => C = 1 or 2 Always pick farthest: S2 = 1 2 3 4 2 | | +-+ C = 3 or 1 S3 = 1 2 3 4 2 1 | | +-+ C = 3 or 4 S4 = 1 2 3 4 2 1 3 | | +-+ C = 2 or 4 S4 = 1 2 3 4 2 1 3 4 | | +-+ C = 1 or 2 seq seq +-----+ +-----+ | | | | S5 = 1 2 3 4 2 1 3 4 2 1 => seq repeats, have max=|S+1| thus C must be a random choice -> harmonic decreasing probability of being a sequence (coin toss).
Take a set with
elements so that:
* * = roundUp(|S|/2) S1 = 1 2 3 4 | | | +---+ C1 = 3 4 => 1 or 2 C2 = 2 3 4 => 1 => C = 1 or 2 Always pick closest: S2 = 1 2 3 4 2 | | +-+ C = 3 or 1 S3 = 1 2 3 4 2 3 | | +-+ C = 1 or 4 S4 = 1 2 3 4 2 3 4 | | +-+ C = 1 or 2 S4 = 1 2 3 4 2 1 3 2 | | +-+ C = 1 or 4 seq seq +---+ +---+ | | | | + + + + S5 = 1 2 3 4 2 3 4 2 3 4 2 3 4 2 ... 1? => seq repeats, max=inf and element lost. depending on the choice or farthest and closest, with a certain probability, (an amount of subsequent closest selections) an element may be lost. Probability?
Given a set of
elements:
…
…
using System; using System.IO; using System.Text; using System.Linq; using System.Collections; using System.Collections.Generic; public class compounds { public static void Main() { // Compounds List<string> animals = ReadWords("animals.txt"); List<string> bodyparts = ReadWords("bodyparts.txt"); List<string> obscene = ReadWords("obscene.txt"); // Verbs and Adjectives List<string> character = ReadWords("character.txt"); List<string> imperatives = ReadWords("imperatives.txt"); StringBuilder str = new StringBuilder(); str.Append((string)imperatives[rnd.Next(imperatives.Count)] + " " + (string)obscene[rnd.Next(obscene.Count)] + " "); str.Append("you " + (string)character[rnd.Next(character.Count)] + " "); switch(rnd.Next(3)) { case 0: str.Append(String.Format("{0}{1}", (string)animals[rnd.Next(animals.Count)], (string)bodyparts[rnd.Next(bodyparts.Count)])); break; case 1: str.Append(String.Format("{0}{1}", (string)bodyparts[rnd.Next(bodyparts.Count)], (string)obscene[rnd.Next(obscene.Count)])); break; case 2: str.Append(String.Format("{0}{1}", (string)obscene[rnd.Next(obscene.Count)], (string)animals[rnd.Next(animals.Count)])); break; default: System.Console.WriteLine("Module is broken."); System.Exit(1); break; } string line = str.ToString().Trim().ToUpper(); Console.WriteLine(line[0] + line.Substring(1, line.Length-1).ToLower() + "!"); } private static List<string> ReadWords(string file) { try { return File.ReadAllText(file).Trim().Split(new char[] {'\n'}).ToList(); } catch(Exception e) { Console.WriteLine("Could not read file: " + e.Message); } return null; } }
For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.