Class LanguageEvolution

java.lang.Object
org.episteme.social.linguistics.LanguageEvolution

public final class LanguageEvolution extends Object
Analytical engine for modeling language evolution, divergence, and glottochronology. It provides mathematical models for estimating divergence times based on cognate retention in Swadesh lists.
Since:
1.0
Version:
2.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • divergenceTimeMillennia

      public static Real divergenceTimeMillennia(double c, double r)
      Estimates the time since two languages diverged from a common ancestor using Swadesh list retention rates. Formula: t = log(c) / (2 * log(r))
      Parameters:
      c - fraction of shared cognates (0.0 to 1.0)
      r - retention rate per millennium (typically 0.81 to 0.86)
      Returns:
      time since divergence in millennia
    • calculateCognateFraction

      public static double calculateCognateFraction(List<String> list1, List<String> list2)
      Calculates the fraction of shared cognates between two lists of words representing the same concepts (Swadesh lists).
      Parameters:
      list1 - first word list
      list2 - second word list
      Returns:
      fraction (0.0 to 1.0)
    • isCognate

      public static boolean isCognate(String word1, String word2)
      Determines if two words are likely cognates using normalized Levenshtein distance.
      Parameters:
      word1 - first word
      word2 - second word
      Returns:
      true if similarity exceeds the cognate threshold (default 0.6)
    • semanticRetention

      public static Real semanticRetention(double kDrift, int years)
      Projects the probability of semantic retention over a given time period. Formula: S(t) = exp(-kt)
      Parameters:
      kDrift - semantic drift coefficient
      years - time span in years
      Returns:
      retention probability (0.0 to 1.0)