HowTo: Vedic curses
A curse is a word or phrase that's uttered with complete seriousness, with the intention to invoke a supernatural power that can cause harm or injury to someone or something.
Curses are born of human emotions and, therefore, are as old as humanity itself. The vedas, which are among the oldest text in a Indo-European language, contain interesting curses (in addition to the solemn hymns to gods, for which they're better known). Atharva Veda is, in fact, more a compendium of curses than of grateful hymns to gods. Here's an example curse from Atharva Veda.
Whoever shall curse us not cursing,
And whoever shall curse us cursing,
Like a tree smitten by a thunderbolt,
Let him dry up from the root.
- Atharva Veda, 7.59
This tutorial shows you how to curse like you were living in the vedic times.
Algorithm
All the path parameters in the Vedic Society API return a response in the same JSON structure.
{
"nagari": "string",
"word": "string",
"description": "string",
"category": "string"
}
First, you find words from those categories that have an element of evil or of suffering in them (for example, snake
, worm
, or poison
). And then, you string those words together to form sentences.
The following pseudocode uses the disease
and family
categories to create a curse.
where /categories/{category} == 'disease':
get word
get description
where /categories/{category} == 'family':
get word
get description
curse = 'May your ' + <family_word> + ' be blighted with ' + <disease_word> + '.
Example code in Python
-
Make a
GET
call for words in thedisease
category.headers = { 'accept': 'application/json', } url = "https://api-vs.herokuapp.com/vs/v2/categories/disease" response = requests.get(url, headers=headers) response_json = json.loads(json.dumps(response.json()))
-
Loop through the returned JSON, and append the values of the
word
anddescription
parameters to a dictionary.import json diseases = {} for entry in response_json: diseases.update({entry['word']:entry['description']})
-
Repeat the two previous steps to generate a similar dictionary for families.
- Make a
GET
call for words in thefamily
category. - Make a dictionary for the values of the
word
anddescription
parameters.
- Make a
-
Pick a random entry from both the dictionaries. You'll use these entries to compose a sentence.
import random disease, disease_meaning = random.choice(list(diseases.items())) family, family_meaning = random.choice(list(families.items()))
-
Compose the curse. Here's an example:
curse = 'May your ' + family + ' be blighted with ' + disease + '.'
Results
You should now be able to see a random curse like this:
May your didhishu be blighted with suram.
What to do next
Maybe make the curses multilingual? If you also pick the nagari
parameter when looping through the JSON data, you can generate curses like this:
May your बाल be blighted with अर्शस.
बाल = bal (boy)
अर्शस = arshas (haemorrhoids)
Or, maybe make the curses more colourful? You could compose entire verses by picking random entries from the following categories: snake
, worm
, insect
, weapon
, medicine
, poison
.
More HowTo-s
See Index.