Tools and Methods

The ultimate aim of creating this website was to understand khipu - what the meant, what cords and knots signified, etc. The methodology comes from the 21st century data-science field. In this case statistical analysis of language, of patterns in the cords and knots, etc using modern computer-based statistical learning technologies.

Quechua vs. Spanish Orthography

If you’re coming to this site, and are not from Central or South America, the words “Colonialism” and “Decolonialism” may not mean much to you. Being of Indian heritage, I had some idea of what it meant to have your country oppressed for centuries by a foreign power. Peru has been culturally displaced by a foreign power for 500 years. Thoughts such as “Quechua is for losers - Modern people speak Spanish.” or “Only peasants are Quechua. City folks are Spanish.” surface in unexpected domains. These dismissals of a culture once as accomplished and proud as Ancient Rome, Greece or Egypt shock and distress me.

I love the Quechua language. It is one of the most elegant languages I have ever studied. It seems to have sprung from the mountains, beautiful, harmonious, and fully formed, instead of being bashed into a language full of exceptions and special cases. For me the language is worth cherishing simply because of it’s elegance.

Quechua is an intriguing language. I first discovered Quechua decades ago, early in my linguistics studies, when I discovered their “degree-of-belief particle”, which is used to indicate the veracity of a statement. The three degrees of belief are 1. I saw John yesterday. 2. Someone told me they saw John yesterday. and 3. I saw John in a dream yesterday. I have mad respect for a culture that values honesty so much that they make it part of their grammar. Of the many languages that I’ve had the pleasure of studying and speaking, Quechua has proved to be the most beautifully regular and predictable language. I am constantly amazed how compact and “orthogonal” the grammar is. Unlike some highly irregular languages, (English and Spanish for example), it’s been a genuine pleasure to learn.

Linguists use the word Orthography to describe the conventional “spelling system” of a language. In this study, when possible, I will use the orthography used in modern day Southern Cusco Quechua, the language of the indigenous Andean residents of northern Bolivia, and southern Peru, to whom the khipu culture belongs. Hence, the Quechua Inka instead of the more common spanish Inca. Spanish spellings of words such as quipu, or quipu-camayoq are common in south-American countries (for example the Museo Chileno in Chile above), but I will use Quechua words/orthography when I can.

Decades ago, while working in Nome Alaska, I studied the Inupiaq language used by the local King Islander Inuit. Quechua and Inupiaq share many grammatical similarities - an agglutinative grammar, a degree of belief particle, etc. I feel so grateful that both these cultures were able to save their languages. What a relief it is to not have lost an ancient language. What a joy it is to know Quechua - this lovely testimony of how language can convey honesty and respect between us.

Programming Language

This part of the project (phase 1) was heavy on database checking and rendering. A classic object-oriented database and rendering package needed to be built. The obvious choice was python.

The majority of the work lies in the python class library. There are two groups of files, the files that support the khipu objects such as cords, knots, etc., and the files that create the html output to view all the rendering.


The data-cleansing and analyses are done using the Jupyter notebook “literate programming” environment. While not my favorite environment for such a task, it integrates easily with python, and it did the job.

Rendering for a variety of Internet browsers required a painfully difficult conversion of SVG vector files (in textual XML like format) into Jpeg images. To do this well, with decent font support, required Adobe Illustrator which saves the files in high-quality format as Jpegs or Tiffs as needed. Why TIFFS? Because three of the khipus were so large that their images exceed Jpeg size bounds. Photoshop and the open-source image-processing utility ImageMagick take over from there to split up large TIFF images and convert the results to Jpegs. To orchestrate this process required a combination of OS calls, AppleScript and occasional old-fashioned by-hand tweaking. Your mileage may vary. The whole process of building the jpgs and html files from the data takes about 3 hours of computing on my fairly fast Mac Pro. Memory leaks in various apps, coupled with the size of data frequently crashed the Mac with 32 GB of RAM, midway through the conversion process.

I’ve tried to use the common Python libraries (numpy, pandas, scipy, etc.) to do the job of analysis and building the khipus.

Statistical Graphing

Whenever it made sense I used the Plotly package to create graphics. Python’s matplotlib, seaborn, etc. are so poor in quality and robustness that the only thing I used was seaborn histograms, and even that I used guardedly. I note for the record that one seaborn histogram which rendered incorrectly, based on my failure to fine-tune a particular setting (the number of bins), made me think I had a handle on how to decipher khipus based on cord twists. Only when I looked at the actual numeric data did I realize how misleading the graphic was. After that I made sure to pay attention to every setting in seaborn’s plots.

Page Layout

This site is built on the superb publishing software, Quarto. Hat’s off to the Quarto team.