The Khipu Database Project began in the fall of 2002, with the goal of collecting all known information about khipu into one centralized repository. Having the data in digital form allows researchers to ask questions about khipu which up until now would have been very difficult, if not impossible, to answer. The Khipu Database Project was funded 2002-2004 by the National Science Foundation and Harvard University, and in 2004-2005 is funded by the National Science Foundation.
The KDB and its associated data entry application were designed and implemented specifically for the use of this project. The khipu data schema is modeled on the physical structure of khipu. The overall structure of a khipu is that of a branching network in which the number of branching levels is highly variable, but in which components at every level share certain characteristics. The data schema for the KDB embraces the following critical facts about khipu construction: the interlocking relationships between khipu components, the branching or tree-like structure of khipu, the similarity of certain components, and the multi-dimensionality of khipu variables.
In a relational database, each table may be linked to one or many different tables by defining correspondences between data fields in each table. These relationships can be complex, including restrictions on the possible data in one record given the data in another. Such a structure is ideal for describing a flexible object such as a khipu. Khipu components are specified in detail in their own records and linked into their proper places in the entire object through carefully designed relationships. In this way, the database builds a network or web of correspondences between khipu parts. This allows the database to mimic the physical structures of a khipu without loss of accuracy. It should be noted that the current design allows complete freedom in capturing khipu structure; the number of pendants that belong to a primary cord or knots that belong to a pendant are infinitely variable. Similarly, the database can accommodate any number of levels of subsidiaries.
Certain aspects of khipu share many characteristics. For example, pendant cords at any level (top cords, pendants, subsidiaries, etc) have variables of fiber, final twist, end treatment, length, and color. Similarly, all knots on a khipu have a position on a particular string, a type, directionality, and a numerical value. By creating tables that incorporate these common elements for cords or knots at all levels, we increase the efficiency of our data structure while still allowing it to be extensible. Finally, some variables may themselves have many dimensions; color is the most obvious example. One cord may be composed of several different colors, and may even change color along its length. The database effectively and accurately contains color information by allowing many different color records for one cord. As other variables become known and are recorded, the database can be easily extended to completely contain new information, without compromising existing data.