Monday, September 14, 2020

In Development: KhipuAnalysis program

 I am currently working on a Java program to help with the analysis of khipu data from the Harvard Khipu Database Project


What is a khipu?

(Image from Harvard Khipu Database Project website. The "UR" stands for Gary Urton, whose team created and maintains the database.)

Khipus are knotted cords that were used in Peru, before the arrival of the Spanish conquistadores.  They recorded census data, tribute required and paid, histories, and other information. These records were carried from remote areas of the Inca Empire to the capital and read to the Inca (the emperor of the Inca Empire). They were also used by the Spanish during the Colonial period to communicate with native peoples. The Spaniards could not read them, but they were prepared and passed around by local leadership. There are about a thousand known to exist in museums and private collections. They are still used, in a more simple form, by pastoral communities in the Andes (sometimes referred to as "living khipu").

It is easy to see the numbers encoded in these strings, and their mathematical relationship to other cords in the same khipu. However, we can't read them; we don't know what the numbers represent. My program is meant to assist in looking for mathematical relationships between the cords, as a step towards being able to translate them.


Harvard's Khipu Database Project

Gary Urton and his team have amassed a great amount of data regarding the khipu. This data is shared with the world on their Harvard Khipu Database Project website. Here is a sample of what the data looks like:

Gary Urton and his team recorded data on every aspect of the khipu that they could possibly describe, including the length of the cords, values of the knots, colors, which direction the string was twisted, and many more points of data.

My KhipuAnalysis Program

In an effort to better understand and visualize this data, I converted the database to SQLite format (so I didn't need to host the database on a server in order to use it) and am currently developing a Java program to graphically represent the data in an easier form, and also to allow manipulation to look for mathematical relationships.
Here are some sample images for the khipu UR087 shown in the image and database sample above:
Values are shown in bold numbers, knots are represented as black lines over the cord (in real cords the knots are the same color as the cord)

When cords are made, they have a loop at the top (caused from twisting the fiber) and they are attached to the main line (the "primary cord") by feeding itself through that loop. You can attach it with the cord in front of or behind the primary cord, and this is represented by the terms "recto" and "verso." As this may affect the meaning of a cord, I've added a filter to show the relationship between recto/verso attachments (UR087 has all recto attachments, so I'm demonstrating the filter concept with a different khipu):

Here is what the mathematical analysis portion will look like in my program:


Before distribution, I need to work out bugs in the GUI and the mathematical analysis portion.