jjmccollum / teiphy

A Python package for converting TEI XML collations to NEXUS, BEAST 2.7 XML, and other formats
MIT License
11 stars 3 forks source link

Use letters for states greater than 9 in STEMMA outputs #88

Open jjmccollum opened 1 month ago

jjmccollum commented 1 month ago

In STEMMA outputs, multi-digit state codes (e.g., 00, 01, 12, 10, 11, 12, etc.) are reserved for cases when subvariants are horizontally encoded in the same variation unit. For this reason, variant readings converted from a TEI XML collation (which are assumed to be vertically encoded) that have indices greater than 9 should be represented with letters, starting from a. I believe the maximum number of states allowed by STEMMA is 24, so the set of allowable states should be 0-9 and a-n. Thus, instead of

@ B10K1V11U12-22
[ κατα.προθεσιν.του.τα.παντα.ενεργουντος | κατα.την.προθεσιν.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.παντα.ενεργουντος κατα.προθεσιν.του.θεου.του.τα.παντα.ενεργουντος κατα.την.προθεσιν.του.θεου.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.θεου.του.παντα.ενεργουντος κατα.την.προθεσιν.του.θεου.του.παντα.ενεργουντος κατα.προθεσιν.θεου.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.τα.παντα.ενεργουντος.θεου κατα.προθεσιν.του.θεου.του.τα.παντα.εν.πασιν.ενεργουντος κατα.προθεσιν.θεου.του.τα.παντα.εν.πασιν.ενεργουντος του.τα.παντα.ενεργουντος ]
    < 0 01 01C1 01C2a 01C2b 02 03 03C1 03C2 018 020 025 044 056 0142 0151 1 6 18 33 35 38 42 61 69 93 102 203 218 223 234 296 322 326 363 383 390 398 424 424C1 462 506 606 629 636 664 665 912 1069 1108 1115 1127 1240 1241 1245 1311 1398 1505 1509 1611 1617 1678 1718 1729 1739 1751 1837 1840 1851 1860 1863 1881 1886 1893 1896 1910 1913 1918 1939 1963 1987 1996 1999 2004 2005 2008 2012 2085 2138 2180 2243 2344 2352 2400 2464 2492 2495 2516 2544 2805 L156 L169 L587 L809 L1159 L1178 L1188 L2010 syrh syrhmg Chrysostom CyrilOfAlexandria Origen Theodoret
    | 1 1490 1721 1831 L2058 copbo
    | 2 177 337 1985 L1440
    | 3 06C2 0150 0319 81 88 104 181 256 263 365 442 459 467 915 1319 1573 1834 1836 1838 1908 1912 1959 1962 2127 2523
    | 4 06C3 copsa
    | 5 06C1 330 451
    | 6 06 010 012
    | 7 94 436 2011
    | 8 2576
    | 9 1175
    | 10 1877
    | 11 VL89 >

we should have

@ B10K1V11U12-22
[ κατα.προθεσιν.του.τα.παντα.ενεργουντος | κατα.την.προθεσιν.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.παντα.ενεργουντος κατα.προθεσιν.του.θεου.του.τα.παντα.ενεργουντος κατα.την.προθεσιν.του.θεου.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.θεου.του.παντα.ενεργουντος κατα.την.προθεσιν.του.θεου.του.παντα.ενεργουντος κατα.προθεσιν.θεου.του.τα.παντα.ενεργουντος κατα.προθεσιν.του.τα.παντα.ενεργουντος.θεου κατα.προθεσιν.του.θεου.του.τα.παντα.εν.πασιν.ενεργουντος κατα.προθεσιν.θεου.του.τα.παντα.εν.πασιν.ενεργουντος του.τα.παντα.ενεργουντος ]
    < 0 01 01C1 01C2a 01C2b 02 03 03C1 03C2 018 020 025 044 056 0142 0151 1 6 18 33 35 38 42 61 69 93 102 203 218 223 234 296 322 326 363 383 390 398 424 424C1 462 506 606 629 636 664 665 912 1069 1108 1115 1127 1240 1241 1245 1311 1398 1505 1509 1611 1617 1678 1718 1729 1739 1751 1837 1840 1851 1860 1863 1881 1886 1893 1896 1910 1913 1918 1939 1963 1987 1996 1999 2004 2005 2008 2012 2085 2138 2180 2243 2344 2352 2400 2464 2492 2495 2516 2544 2805 L156 L169 L587 L809 L1159 L1178 L1188 L2010 syrh syrhmg Chrysostom CyrilOfAlexandria Origen Theodoret
    | 1 1490 1721 1831 L2058 copbo
    | 2 177 337 1985 L1440
    | 3 06C2 0150 0319 81 88 104 181 256 263 365 442 459 467 915 1319 1573 1834 1836 1838 1908 1912 1959 1962 2127 2523
    | 4 06C3 copsa
    | 5 06C1 330 451
    | 6 06 010 012
    | 7 94 436 2011
    | 8 2576
    | 9 1175
    | a 1877
    | b VL89 >