Cord Twist (S/Z Ply/Spin)


1. Cord Twist (aka Ply/Spin) - Number of Z Cords

The number of Z-twisted cords in a khipu. Each cord has one of two ply/spin’s - affectionately known as S or Z twist depending on the diagonal’s direction in the string.

2. Summary Results:

Measure Result
Number of Khipus That Match 80 (12%)
Number of Significant Khipus 80 (12%)
Five most Significant Khipu JC010, UR193, KH0081, JC005, UR283
Image Quilt Click here

3. Summary Charts:

Code
import plotly
# Initialize plotly
plotly.offline.init_notebook_mode(connected = False);
Code
# Read in the Fieldmark and its associated dataframe and match dictionary
from fieldmark_khipu_summary import FieldmarkZCords
aFieldmark = FieldmarkZCords()
khipu_summary_df = aFieldmark.get_khipu_summary_df()

raw_match_dict = aFieldmark.raw_match_dict()
Code
# Plot Significant khipu
from plotly import express as px
import pandas as pd

import utils_khipu as ukhipu    
significant_khipus = aFieldmark.significant_khipus()
significant_values = [raw_match_dict[aKFG_Name] for aKFG_Name in significant_khipus]
significant_df =  pd.DataFrame(list(zip(significant_khipus, significant_values)), columns =['KFG_Name', 'Value'])
fig = px.bar(significant_df, x='KFG_Name', y='Value', labels={"KFG_Name": "KFG Name", "Value": "Number of Z Cords", },
             title=f"<b>{ukhipu.pct_kfg_khipus(len(significant_khipus))}</b> Significant Khipu for Number of Z Cords", width=944, height=450).update_layout(showlegend=True).show()

S-Cords vs Z-Cords

Code
fig = px.scatter(khipu_summary_df, x="num_s_cords", y="num_z_cords", log_x=True, log_y=True,
                 size="num_cords", color="num_cords", 
                 labels={"num_s_cords": "#S Cords (Log10)", "num_z_cords": "#Z Cords"},
                 hover_data=['kfg_name'], title="<b>S Cords (Log10) vs Z Cords (Log10)</b>",
                 width=944, height=944);
fig.update_layout(showlegend=True).show()

4. Exploratory Data Analysis

Mixed Twist Khipus

Urton in Sign of the Inka Khipu spends quite some time on mixed twist khipus. Just how often do mixed twist khipus occur?

Code
# How many khipus lack twist information
import qollqa_chuspa as qc        # A Khipu Qollca is a warehouse that holds khipu (and other databases)
khipu_dict, all_khipus = qc.fetch_khipus()

untwisted_khipus = []
twisted_khipus = []
num_untwisted_khipus = 0
for aKhipu in all_khipus:
    num_cords = aKhipu.num_all_cords(include_subsidiaries=True)
    num_S_cords = aKhipu.num_s_cords()
    num_Z_cords = aKhipu.num_z_cords()
    # If less then 10% of the cords are S or Z cords, then we consider it a khipu without twist information
    if (num_S_cords+num_Z_cords) < .1*num_cords:
        untwisted_khipus.append(aKhipu)
    else:
        twisted_khipus.append(aKhipu)


num_untwisted_khipus = len(untwisted_khipus)
num_twisted_khipus = len(twisted_khipus)


print(f"# of Khipus without Twist Information = {num_untwisted_khipus} out of {len(all_khipus)} = {ukhipu.pct_kfg_khipus(num_untwisted_khipus)}")
print(f"# of Khipus with Twist Information = {num_twisted_khipus} out of {len(all_khipus)} = {ukhipu.pct_kfg_khipus(num_twisted_khipus)}")

mixed_twist_khipus = []
for aKhipu in twisted_khipus:
    num_S_cords = aKhipu.num_s_cords()
    num_Z_cords = aKhipu.num_z_cords()
    # If less then 10% of the cords are S or Z cords, then we consider it a khipu without twist information
    if num_S_cords > 0 and num_Z_cords > 0:
        mixed_twist_khipus.append(aKhipu)

num_mixed_twist_khipus = len(mixed_twist_khipus)
print(f"# of Khipus with Mixed Twist Information = {len(mixed_twist_khipus)} out of {len(twisted_khipus)} = {ukhipu.pct_kfg_khipus(len(mixed_twist_khipus))}")
# of Khipus without Twist Information = 137 out of 654 = 20.9%  (137)
# of Khipus with Twist Information = 517 out of 654 = 79.1%  (517)
# of Khipus with Mixed Twist Information = 33 out of 517 = 5.0%  (33)

Just 5% of the khipus in the KFG Database have mixed twists!

Code
import utils_loom as uloom

print(f"{khipu_summary_df[khipu_summary_df.num_z_cords > 0].shape[0]} khipus exist with Z cords")
percent_str = uloom.percent_info(khipu_summary_df.num_z_cords.sum(), khipu_summary_df.num_cords.sum())
print(f"{khipu_summary_df.num_z_cords.sum()} Z cords exist - about {percent_str} of all cords")
79 khipus exist with Z cords
3398 Z cords exist - about 6% (3398 of 58235) of all cords
33 khipus have mixed twist construction

5. Conclusion

  • Mixed twist cords occur very rarely (5% of the khipus) and Z cords only occur on 6% of the cords in the KFG Database (remember that 79% of the khipus in the KFG Database record their S/Z twist)
  • Z cords associate with S Cords.
  • In the network graph presented in the fieldmarks preface, Z Cords and S cords occur somewhat close together, but it’s not a great match. Analysis of Z-cords in general is limited by the fact that 20% of KFG khipus are missing cord spin/ply information.

    There is some sort of reason/rationale for Z Cords… but, to paraphrase Buffalo Springfield, (For What It’s Worth 1967):

“there’s something happening here, what it is ain’t exactly clear.”