šŸ—ƒ How do you make charts and tables?

In my copious free time (hah!) I’ve been studying Pali, which is kind of a step-sibling to Sanskrit. Like Sanskrit and a lot of other Indo-European languages, it’s overflowing with inflection. Consquently, grammars have metric boatloads of tables: noun and pronominal declensions, verb conjugations, and so forth.

Being me, I have ended up trying to digitize some of the data, and it’s the tables that have really gotten me thinking. First of all, the tables are big:

This particular one encodes five features: noun class, gender, case, number, and frequency.

What’s interesting to me is to realize that this table is just one of an essentially limitless number of ways that one might go about presenting this information. In the pedagogical blog post below, the same information is presented in quite a different way:

For instance, here’s the table that presents the subset of forms that are have neuter gender and singular number:

(Pali is notorious for variation — yes, there are five possible inflections for singular ablatives in -u!)

Ultimately, a table represents all possible combinations of all possible values of a set of grammatical categories. The first non-gray cell in the first chart ā€œmeansā€ Nominative case, singular number, ā€œshort aā€ noun class, and masculine gender. The first cell in the second chart ā€œmeansā€ nominative case and ā€œshort aā€ noun class — but that’s it! The fact that what ā€œgoes intoā€ that cell is also neuter gender and singular number is a ā€œgivenā€ — you could imagine, for instance, another language that has neither gender nor number marking, and this table structure would be just as useful.

Aaaaand waht are you trying to say Pat

Well, tabulations like these serve particular purposes. The first table — a real beast to look at — is good for reference (e.g., ā€œcould this form that ends in -isma be an ablative neuter singular…?ā€). The second one is perhaps useful for a learner, for instance, if you’re trying to get a grip on any kinds of patterns within this subset of inflection — locatives seem to have an sm in there somewhere, instrumentals have an n, and so forth.

But I think because they’re a pain in the neck to construct, we tend to think of tables like this as ā€œpresentationā€ tools, not as ā€œresearchā€ tools. But it’s fair to say that the tables are arrangments of linguistic forms (suffixes, in this case). The tables are just helpful arrangements of those forms. You could make a flat table, of course, this kind of thing:

form stem case number gender frequency
1oanominativesingularmasculinenormal
2eanominativesingularmasculinenormal
3aṃanominativesingularneuternormal

(See the bottom of this post for all 840 glorious forms. Don’t leave home without it.) …I tried to include the whole table, but hit the post size limit for this forum! :muscle:

It seems to me that a table like this is actually the ā€œrightā€ way to edit data that will be tabulated. The tables should be generated from the flat table, right?

My questions to you:

  1. How do you handle this sort of thing?
  2. Do you think automation is worth the trouble? (I.e., maybe hand-editing a table is fine because that works for you as a canonical reference)

Then there’s a second kind of question. Suppose there were a ā€œtable builderā€ kind of tool. You feed it some flat data (from a .csv or a .json file, say), and then there is some sort of user interface to build tables from that data.

Would such a thing be useful? Can you imagine what it would look like?

2 Likes

Somewhat relevant, making declension tables for Pali was a huge project on Wiktionary: Module:pi-decl/noun - Wiktionary. It involved editors from like 5 languages just to get the variation in forms across scripts down!

(Less relevant, I disagree with the characterisation of Pali as ā€œa step-sibling to Sanskritā€. IMO it’s more of ā€œa child that keeps some of Sanskrit’s childhood quirksā€.)

1 Like

This is so interesting, thanks for sharing! I had no idea all that Pali stuff was on Wiktionary. Also somewhat relevant :slight_smile: :

Is this Lua?

decl['a'] = {
    m = {{'⌫o'}, {'⌫ā'}, {'ṃ'}, {'⌫e'},
         {'⌫ena'}, {'⌫ehi', '⌫ebhi'}, {'ssa', '⌫āya', 'tthaṃ'}, {'⌫ānaṃ'},
         {'smā', 'mhā', '⌫ā'}, {'⌫ehi', '⌫ebhi'}, {'ssa'}, {'⌫ānaṃ'},
         {'smiṃ', 'mhi', '⌫e'}, {'⌫esu'}, {''}, {'⌫ā'}},
    n = {{'ṃ'}, {'⌫āni'}, {'ṃ'}, {'⌫āni'},
         {'⌫ena'}, {'⌫ehi', '⌫ebhi'}, {'ssa', '⌫āya', 'tthaṃ'}, {'⌫ānaṃ'},
         {'smā', 'mhā', '⌫ā'}, {'⌫ehi', '⌫ebhi'}, {'ssa'}, {'⌫ānaṃ'},
         {'smiṃ', 'mhi', '⌫e'}, {'⌫esu'}, {''}, {'⌫āni'}},
}

I’m wondering what something like {'⌫o'} would mean; are those arrays of strings?

There are a lot of people (esp. from Southeast Asia) working on Pali on Wiktionary! Yes it’s Lua. ⌫ is for removing the last letter in the Latin-script form of the word that this paradigm is for (this is done in a function, not a built-in Lua thing by any means). So, for example, deva + ⌫o = devo.

1 Like