Malayalam morphology analyser – status update

For the last several months, I am actively working on the Malayalam morphology analyser project. In case you are not familiar with the project, my introduction blog post is a good start. I was always skeptical about the approach and the whole project as such looked very ambitious. But, now  I am almost confident that the approach is viable. I am making good progress in the project, so this is some updates on that.

Analyser coverage statistics

Recently I added a large corpora to frequently monitor the percentage of words the analyser can parse.  The corpora was selected from two large chapters of ഐതിഹ്യമാല, some news reports, an art related essay, my own technical blog posts to have some diversity in the vocabulary.

Total words
15808
Analysed words10532
Coverage66.62%
Time taken
0.443 seconds

This is a very encouraging. Achieving a 66% for such a morphologically rich language Malayalam is no small task. From my reading, Turkish and Finnish, languages with same complexity of morphology achieved about 90% coverage. It may be more difficult to increase the coverage for me compared to achieving this much so far. So I am planning some frequency analysis on words that are not parsed by analyser, and find some patterns to improve.

The performance aspect is also notable. Once the automata is loaded to memory, the analysis or generation is super fast. You can see that ~16000 words were analyzed under half of a second.

Tests

From the very beginning the project was test driven. I now has 740 test cases for various word forms

The transducer

The compiled transducer now is 6.2 MB.  The transducer is written in SFST-PL and compile using SFST. It used to be compiled using hfst, but hfst is now severely broken for SFST-PL compilation, so I switched to SFST. But the compiled transducer is read using hfst python binding.

Fst type
SFST
arc typeSFST
Number of states
200562
Number or arcs
732268
Number of final states
130

The Lexicon

The POS tagged lexicon I prepared is from various sources like wiktionary, wikipedia(based on categories), CLDR. While developing I had to improve the lexicon several times since none of the above sources are accurate. The wiktionary also introduced a large amount of archaic or sanskrit terms to the lexicon. As of today, following table illustrates the lexicon status

Nouns
64763
Person names
505
Place names
2031
Postpositions
85
Pronouns
33
Quantifiers
57
Abbreviations
27
Adjectives
18
Adverbs
14
Affirmatives
6
Conjunctions
75
Demonstratives
9
English borrowed nouns
657
Interjections
36
Language names(nouns)
639
Affirmations and negations
8
Verbs
3844

As you can see, the lexicon is not that big. Especially it is very limited for proper nouns like names, places. I think the verb lexicon is much better. I need to find a way to expand this further.

POS Tagging

There is no agreement or standard on the POS tagging schema to be used for Malayalam. But I refused to set this is as a blocker for the project. I defined my own POS tagging schema and worked on the analyser. The general disagreement is about naming, which is very trivial to fix using a tag name mapper. The other issue is classification of features, which I found that there no elaborate schema that can cover Malayalam.

I started referring http://universaldependencies.org/ and provided links to the pages in it from the web interface.  But UD is also missing several tags that Malayalam require. So far I have defined 85 tags

Challenges

The main challenge I am facing is not technical, it is linguistic. I am often challenged by my limited understanding of Malayalam grammar. Especially about the grammatical classifications, I find it very difficult to come up with an agreement after reading several grammar books. These books were written in a span of 100 years and I miss a common thread in the approach for Malayalam grammar analysis. Sometimes a logical classification is not the purpose of the author too. Thankfully, I am getting some help from Malayalam professors whenever I am stuck.

The other challenge is I hardly got any contributor to the project except some bug reporting. There is a big entry barrier to this kind of projects. The SFST-PL is not something everybody familiar with. I need to write some simple examples for others to practice and join.

I found that some practical applications on top of the morphology analyser is attracting more people. For example, the number spellout application I wrote caught the attention of many people. I am excited to present the upcoming spellchecker that I was working recently. I will write about the theory of that soon.

How to customize Malayalam fonts in Linux

Now a days GNU/Linux distributions like Ubuntu, Debian, Fedora etc comes with pre-configured fonts for Malayalam. For Sans-serif family, it is Meera and  for serif, it is Rachana. If you like to change these fonts, there is no easy way to do with configuration tools in Gnome or KDE. They provide a general font selector for the whole desktop, but not for a given language.

The advantage of setting these preference at system level is, you don’t need to choose this fonts at application level then. For example, you don’t need to set them for firefox, chrome etc. All will follow the system preferences. We will use fontconfig for this

First, create a file named ~/.config/fontconfig/conf.d/50-my-malayalam.conf. If the folders for this file does not exist, just create them. To this file, add the following content.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Malayalam (ml) -->
<match target="font">
        <test name="lang" compare="contains">
                <string>ml</string>
        </test>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Manjari</family>
                </prefer>
        </alias>
</match>

<match target="font">
        <test name="lang" compare="contains">
                <string>ml</string>
        </test>
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Rachana</family>
                </prefer>
        </alias>
</match>

<!-- Malayalam (ml) ends -->

</fontconfig>

Save the file and you are done. You can check if the default font for Malayalam changed or not using the following command

$ LANG=ml_IN fc-match

It should list Manjari. The above code we added to the file is not complicated. You can see that we are setting the sans-serif font preference for ml(Malayalam) language as Manjari. Also serif font preference as Rachana. You are free to change the fonts to whatever you prefer.

Note that you may want to close and open your applications to get this preference applied.

You may choose one of the fonts available at smc.org.in/fonts, download and install and use the above configuration with it.

യുവാക്കളുടെ തൊഴിലഭിമാനവും തൊഴിൽ സൊസൈറ്റികളും

നമ്മുടെ നാട്ടിലെ യുവാക്കൾ നേരിടുന്ന ഒരു പ്രതിസന്ധിയെപ്പറ്റിയും അതിന് പരിഹാരമായേക്കാവുന്ന  ഒരാശയത്തെപ്പറ്റിയും എഴുതിയ ഒരു കുറിപ്പാണിതു്.

നമ്മുടെ നാട്ടിൽ സവിശേഷ നൈപുണികൾ ആവശ്യമുള്ള പലതരത്തിലുള്ള കൂലിപ്പണികൾ,  ഡ്രൈവിങ്ങ്, കൃഷിപ്പണികൾ, പെയിന്റിങ്ങ്, കെട്ടിടനിർമാണം, മെക്കാനിക് തുടങ്ങിയ ജോലികളിൽ ഏർപ്പെടുന്ന യുവാക്കൾ ധാരാളമുണ്ട്. ഇവരെല്ലാം മിക്കപ്പൊഴും അസംഘടിത മേഖലയിലാണുതാനും. സർക്കാർ, സ്വകാര്യ ജോലി നേടാത്തതോ നേടാനാവശ്യമായ വിദ്യാഭ്യാസമില്ലാത്തവരോ ആയ യുവാക്കളായ പുരുഷന്മാരാണ് ഇവയിലധികവും. പക്ഷേ യുവതികൾ വിദ്യാഭ്യാസം പരമാവധി വിവാഹം വരെ തുടർന്ന് പിന്നീട് കുടുംബജീവിതത്തിൽ എത്തിച്ചേരുകയാണ്. ഇരുപതിനും മുപ്പത്തഞ്ചിനും ഇടക്ക് പ്രായമുള്ള ഇവർ പുതിയൊരു വെല്ലുവിളി നേരിടുന്നുണ്ട്. അതിനെപ്പറ്റി വിശദമായ ഒരു പഠനറിപ്പോർട്ട് ഈയിടെ സമകാലിക മലയാളം വാരിക പ്രസിദ്ധീകരിച്ചിരുന്നു(നിത്യഹരിത വരൻമാർ-രേഖാചന്ദ്ര, സമകാലിക മലയാളം ജൂലൈ 16). മലബാർ മേഖലയിൽ വ്യാപകമായി ഈ തരത്തിലുള്ള യുവാക്കൾ അവിവാഹിതരായിത്തുടരുന്നു എന്നതാണ് പഠനം.

ഇതിന്റെ കാരണം, സാംസ്കാരികമായി മേൽപ്പറഞ്ഞ ജോലിക്കാരോടുള്ള യുവതികളുടെ കുടുംബങ്ങളുടെ താത്പര്യക്കുറവാണ്. സർക്കാർ, സ്വകാര്യകമ്പനി ജോലിയില്ലാത്തവർക്ക് യുവതികളെ വിവാഹം കഴിച്ചുകൊടുക്കാൻ ആരും തയ്യാറാവുന്നില്ല. കുടക് കല്യാണം തുടങ്ങിയ പുതിയ പ്രതിഭാസങ്ങളുടെ വിവരങ്ങൾ ആ ലേഖനത്തിലുണ്ട്. ജാതി, ജാതകം തുടങ്ങിയവ പണ്ടത്തേക്കാളേറെ വഴിമുടക്കിയായി നിൽക്കുന്നുമുണ്ട്. പ്രണയവിവാഹങ്ങൾക്ക് ഗ്രാമപ്രദേശങ്ങളിൽ മിക്കവാറും സദാചാരപ്പോലീസുകാർ ഇടകൊടുക്കാറുമില്ല. യുവാക്കൾ ഇത്തരം പണികൾക്ക് പോയി സ്വന്തം വീട്ടിലെ യുവതികൾക്ക് കുറേകൂടി വിദ്യാഭ്യാസം കൊടുക്കാൻ ശ്രമിക്കാറുണ്ടെങ്കിലും ആ യുവതികൾ പിന്നീട് മെച്ചപ്പെട്ട ജോലിയുള്ള യുവാക്കളെ മാത്രം ശ്രമിക്കുന്നതുകൊണ്ട്, അവർ വീണ്ടും പ്രതിസന്ധിയിലാവുന്നു.<

കായികാദ്ധ്വാനത്തോടുള്ള വിമുഖത വളർന്നുവരാൻ മേൽപ്പറഞ്ഞ പ്രശ്നം കാരണമാകുന്നുണ്ട്. സോഷ്യൽ സ്റ്റാറ്റസ് എന്ന ഈഗോ പതിയെ മേൽപ്പറഞ്ഞ സുപ്രധാന ജോലികളിലേക്ക് ആളെകിട്ടാനില്ലാത്ത പ്രശ്നത്തിലേക്കും എത്തിക്കുന്നുണ്ട്. സമൂഹത്തിലെ  പൊതുവെയുള്ള വിദ്യാഭ്യാസനിലവാരം കൂടിവരുന്തോറും ഈ ഈഗോ വല്ലാതെ വർദ്ധിക്കുകയും ചെയ്യും. പതിയെപ്പതിയെ അനാരോഗ്യകരമായ ഒരു സാമൂഹികവ്യവസ്ഥ ഇതിൽനിന്നും ഉടലെടുക്കുമെന്ന് ഞാൻ ഭയക്കുന്നു. യുവതികൾ പ്രത്യേകിച്ചും കുടുംബങ്ങളിൽ നിന്നുള്ള സമ്മർദ്ദം കാരണം ജോലിസാധ്യതകളുടെ വളരെ ഇടുങ്ങിയ ഒരു സെലക്ഷൻ സ്പേസിലേക്ക് പോകുന്നുണ്ട്. അവർക്ക് മേൽപ്പറഞ്ഞ ജോലികളിലേക്ക് പോകാൻ നമ്മുടെ സാമൂഹികാവസ്ഥ സമ്മതിക്കാത്ത സ്ഥിതിയാണ് വരുന്നത്. ഇവിടെയാണ് അതിഥിത്തൊഴിലാളികൾ അവസരങ്ങൾ കണ്ടെത്തിയത്.

സാമൂഹികരംഗത്ത് മതേതര പൊതുവേദികൾ കുറഞ്ഞ നമ്മുടെ സമൂഹത്തിൽ ഈ യുവശക്തി രാഷ്ട്രീയപരമായി പ്രബുദ്ധരായിരിക്കുക എന്ന വെല്ലുവിളി കൂടുതലാവുന്നുമുണ്ട്. അരാഷ്ട്രീയത ഒരു ഡിഫോൾട്ട് ചോയ്സ് ആയി യുവാക്കൾക്കിടയിൽ വരാനുള്ള സാധ്യത എന്തുകൊണ്ടും പ്രതിരോധിച്ചേ മതിയാകൂ.

ഇതുവരെ ചുരുക്കിപ്പറഞ്ഞ പ്രശ്നങ്ങൾക്ക് മേൽപ്പറഞ്ഞ യുവാക്കൾക്കിടയിലേക്ക് ഒരു സാമൂഹികമുന്നേറ്റത്തിന്റെ ആവശ്യകതയുണ്ട്. ഉദ്ദേശങ്ങളിതാണ്:

  • കായികാദ്ധ്വാനമുള്ളതോ അല്ലാത്തതോ ആയ എല്ലാത്തരം അസംഘടിത ജോലികൾക്കും സാമൂഹികാംഗീകാരം വളർത്തിയെടുക്കുക. യുവാക്കളുടെ മാനവവിഭവശേഷി മിഥ്യാധാരണകളിലൂടെയും സാമൂഹികമായ കെട്ടുപാടുകളിലും തളയ്ക്കാതിരിക്കുക.
  • ഇത്തരം ജോലിക്കാരെ സംഘടിതമേഖലയിലേക്ക് കൊണ്ടുവന്ന് രാഷ്ട്രീയമായി പ്രബുദ്ധരാക്കുക. മതേതര ഇടങ്ങൾ സംഘടിപ്പിക്കുക.
  • തൊഴിൽ പരിശീലനങ്ങളും, ഉള്ള തൊഴിലുകളിൽ ആരോഗ്യകരമായ പരിഷ്കാരങ്ങൾക്ക് പ്രേരണയും പരിഷ്കാരങ്ങളും നൽകുക. തൊഴിലുകൾ ആകർഷണീയമാക്കുക.
  • കുടുംബശ്രീ കൊണ്ടുവന്ന സാമൂഹികചാലകശക്തി യുവാക്കളിലേക്ക് കൂടുതൽ വ്യാപിപ്പിക്കുക.

ഇതിലേക്ക് എനിക്ക് നിർദ്ദേശിക്കാനുള്ള ഒരു ആശയം “തൊഴിൽ സൊസൈറ്റികൾ” ആണ്. അതിനെപ്പറ്റിയുള്ള ഏകദേശധാരണ ഇങ്ങനെയാണ്.

  • തൊഴിലാളികളെ ആവശ്യമുള്ളവരും തൊഴിലാളികളും തമ്മിലുള്ള ഒരു മീറ്റിങ്ങ് പോയിങ്ങ് ആയി ഈ സൊസൈറ്റികൾ പ്രവർത്തിക്കുന്നു.
  • യുവാക്കൾ അവിടെ രജിസ്റ്റർ ചെയ്യുന്നു, അവരുടെ കഴിവുകളും.
  • ഇത്തരം സൊസൈറ്റികളിൽ രജിസ്റ്റർ ചെയ്തവർ യൂണിഫോമുള്ളവരും നെയിംടാഗും തൊഴിൽ സുരക്ഷാവസ്ത്രങ്ങൾ/ഉപകരണങ്ങളോടുകൂടിയവരാണ്(to overcome social stigma, this is
    important)
  • ആർക്കും ഈ സൈസൈറ്റികളിൽ ജോലിക്കാരെ തേടാം. നേരിട്ട് പോയി അന്വേഷിക്കണമെന്നില്ല. അല്പസ്വല്പം ടെക്നോളജിയുടെ സഹായത്തോടെ ഈ കണക്ഷനുകൾ പെട്ടെന്നുണ്ടാക്കാം. മൊത്തത്തിൽ അപ്പോയിന്റ്മെന്റ് സിസ്റ്റം ഒക്കെ വെച്ച് പഴയ ഫ്യൂഡൽ കാലഘട്ടത്തിലെ മുതലാളി-പണിക്കാർ റിലേഷനെ പൊളിച്ചെഴുതലാണ് ഉദ്ദേശം. അതുവഴി ഏത് ജോലിയുടെയും ഉയർച്ച താഴ്ചകളെ പൊളിക്കലും.
  • സൊസൈറ്റികൾക്ക് കൂലിനിരക്കുകൾ നിശ്ചയിക്കാം. തൊഴിൽ അവകാശങ്ങളെപ്പറ്റി ബോധമുള്ളവരായിരിക്കും.

ഈ ആശയം പാശ്ചാത്യനാടുകളിൽ മുതലാളിത്തവ്യവസ്ഥിതി നടപ്പിലാക്കിത്തുടങ്ങിയിട്ടുണ്ട്.Amazon Services ഉദാഹരണം.  Uber, Airbnb ഒക്കെപ്പോലെ അത്തരം “ഓൺലൈൻ ആപ്പുകൾ” ഉടൻ
നമ്മുടെ നാട്ടിലുമെത്തും. പക്ഷേ, തൊഴിൽദാതാവ്-തൊഴിലാളി ബന്ധത്തിൽനിന്നുള്ള ചൂഷണത്തിനപ്പുറം അവക്ക് ലക്ഷ്യങ്ങളുണ്ടാവില്ല. ആ സ്പേസിലേക്ക് സാമൂഹികരാഷ്ട്രീയ ലക്ഷ്യങ്ങളോടെ നേരത്തെത്തന്നെ കേരളജനത പ്രവേശിക്കണമെന്നാണാഗ്രഹം.

The many forms of ചിരി ☺️

This is an attempt to list down all forms of Malayalam word ചിരി(meaning: ☺️, smile, laugh). For those who are unfamiliar with Malayalam, the language is a highly inflectional Dravidian language. I am actively working on a morphology analyser(mlmorph) for the language as outlined in one of my previous blogpost.

I prepared this list as a test case for mlmorph project to evaluate the grammar rule coverage. So I thought of listing it here as well with brief comments.
1. ചിരി
ചിരി is a noun. So it can have all nominal inflections.

2. ചിരിയുടെ
3. ചിരിക്ക്
4. ചിരിയ്ക്ക്
5. ചിരിയെ
6. ചിരിയിലേയ്ക്ക്
7. ചിരികൊണ്ട്
8. ചിരിയെക്കൊണ്ട്
9. ചിരിയിൽ
10. ചിരിയോട്
11. ചിരിയേ

There is a plural form
12. ചിരികൾ

A number of agglutinations can happen at the end of the word using Affirmatives, negations, interrogatives etc. For example, ചിരിയുണ്ട്, ചിരിയില്ല, ചിരിയോ. But now I am ignoring all agglutinations and listing only the inflections.

ചിരിക്കുക is the verb form of ചിരി.
13.  ചിരിക്കുക

It can have the following tense forms
14. ചിരിച്ചു
15. ചിരിക്കുക
16. ചിരിക്കും

A concessive form for the word
17. ചിരിച്ചാലും

This verb has the following aspects
18. ചിരിക്കാറ്
19. ചിരിച്ചിരുന്നു
20. ചിരിച്ചിരിയ്ക്കുന്നു
21. ചിരിച്ചിരിക്കുന്നു
22. ചിരിച്ചിരിക്കും
23. ചിരിച്ചിട്ട്
24. ചിരിച്ചുകൊണ്ടിരുന്നു
25. ചിരിച്ചുകൊണ്ടേയിയിരുന്നു
26. ചിരിച്ചുകൊണ്ടേയിരിക്കുന്നു
27. ചിരിച്ചുകൊണ്ടിരിക്കുന്നു
28. ചിരിച്ചുകൊണ്ടിരിക്കും
29. ചിരിച്ചുകൊണ്ടേയിരിക്കും

There are number of mood forms for the verb ചിരിക്കുക
30. ചിരിക്കാവുന്നതേ
31. ചിരിച്ചേ
32. ചിരിക്കാതെ
33. ചിരിച്ചാൽ
34. ചിരിക്കണം
35. ചിരിക്കവേണം
36. ചിരിക്കേണം
37. ചിരിക്കേണ്ടതാണ്
38. ചിരിക്ക്
39. ചിരിക്കുവിൻ
40. ചിരിക്കൂ
41. ചിരിക്ക
42. ചിരിച്ചെനെ
43. ചിരിക്കുമേ
44. ചിരിക്കട്ടെ
45. ചിരിക്കട്ടേ
46. ചിരിക്കാം
47. ചിരിച്ചോ
48. ചിരിച്ചോളൂ
49. ചിരിച്ചാട്ടെ
50. ചിരിക്കാവുന്നതാണ്
51. ചിരിക്കണേ
52. ചിരിക്കേണമേ
53. ചിരിച്ചേക്കാം
54. ചിരിച്ചോളാം
55. ചിരിക്കാൻ
56. ചിരിച്ചല്ലോ
57. ചിരിച്ചുവല്ലോ

There are a few inflections with adverbial participles
58. ചിരിക്കാൻ
59. ചിരിച്ച്
60. ചിരിക്ക
61. ചിരിക്കിൽ
62. ചിരിക്കുകിൽ
63. ചിരിക്കയാൽ
64. ചിരിക്കുകയാൽ

The verb can act as an adverb clause. Examples
65. ചിരിച്ച
66. ചിരിക്കുന്ന
67. ചിരിച്ചത്
68. ചിരിച്ചതു്
69. ചിരിക്കുന്നത്

The above two forms act as nominal forms. Hence they have all nominal inflections too
70. ചിരിച്ചതിൽ
71. ചിരിക്കുന്നതിൽ
72. ചിരിക്കുന്നതിന്
73. ചിരിച്ചതിന്
74. ചിരിച്ചതിന്റെ
75. ചിരിക്കുന്നതിന്റെ
76. ചിരിച്ചതുകൊണ്ട്
77. ചിരിക്കുന്നതുകൊണ്ട്
78. ചിരിച്ചതിനോട്
79. ചിരിക്കുന്നതിനോട്
80. ചിരിക്കുന്നതിലേയ്ക്ക്

Now, a few voice forms for the verb ചിരിക്കുക
81. ചിരിക്കപ്പെടുക
82. ചിരിപ്പിക്കുക

These voice forms are again just verbs. So it can go through all the above inflections the verb ചിരിക്കുക has. Not writing it here, since it mostly a repeat of what is listed here. ചിരിക്കപ്പെടുക has all inflections of the verb പെടുക. You can see them listed in my test case file though

A noun can be derived from the verb ചിരിക്കുക too. That is
83. ചിരിക്കൽ

Since it is a noun, all nominal inflections apply.
84. ചിരിക്കലേ
85. ചിരിക്കലിനോട്
86. ചിരിക്കലിൽ
87. ചിരിക്കലിന്റെ
88. ചിരിക്കലിനെക്കൊണ്ട്
89. ചിരിക്കലിലേയ്ക്ക്
90. ചിരിക്കലിന്

My test file has 164 entries including the ones I skipped here. As per today, the morphology analyser can parse 74% of the items. You can check the test results here: https://paste.kde.org/pn5z0oh7g

A native Malayalam speaker may point out that the variation fo this word ചിരിയ്ക്കുക -with യ് before ക്കുക. My intention is to support that variation as well. Obviously that word also will have the above listed inflected forms.

Now that I wrote this list here, I think having a rough English translation of each items would be cool, but it is too tedious to me.

How to type Malayalam using Keyman 10 and Mozhi

This is a quick tutorial on installing Mozhi input method in Windows 10.

Mozhi is a transliteration based keyboard  for Malayalam. You can type malayaalam to get മലയാളം for example. We will use Keyman tool as the input tool. Keyman input tool is an opensource input mechanism now developed by SIL. It supports lot of languages and Mozhi malayalam is one of that.

Step 1: Download Keyman desktop with Mozhi Malayalam keyboard

Go to https://keyman.com/keyboards/mozhi_malayalam. There you will see the following options to download. Select the first one as shown below. Download the installer to your computer. It is a file about 20MB.

Keyman 10 Desktop download page.

Step 2: Installation

Double click the downloaded file to start installation. The installer will be like this:

Keyman 10 Desktop installer

Click on the Install Keyman Desktop button. You will see the below screen.

Keyman 10 Desktop welcome page.

 

Press the “Start keyman” button. The installation will start and keyboard will start.

Step 3: Choose Mozhi input method

You will see a small icon at the bottom of your screen, near time is displayed.

Click on that to choose Mozhi.

Keyboard selection

Once you chose Mozhi, you can type in Manglish anywhere and you will see malayalam. To learn typing click on the “Keyboard Usage” as shown above.

Step 4: Start typing in Malayalam

You can directly type Malayalam in any application without copy paste. Just like English, start typing. Make sure to use a good Malayalam font. You can get them from https://smc.org.in/fonts/

Using Mozhi in LibreOffice. Notice the font used is Manjari.What I typed is “ippOL enikk malayaalam ezhuthaanaRiyaam”

 

Kindle supports custom fonts

I am pleasantly surprised to see that Amazon Kindle now supports installing custom fonts. A big step towards supporting non-latin content in their devices. I can now read Malayalam ebooks in my kindle with my favorite fonts.

Content rendered in Manjari font. Note that I installed Bold, Regular, Thin variants so that Kindle can pick up the right one

This feature is introduced in Kindle 5.9.6.1 version released in June 2018. Once updated to that version, all you need is to connect the device using the USB cable to your computer. Copy your fonts to the fonts folder there. Remove the usb cable. You will see the fonts listed in font selector.

Kindle had added Malayalam rendering support back in 2016, but the default font provided was one of the worst Malayalam fonts. It had wrong glyphs for certain conjuncts and font had minimal glyphs.

I tried some of the SMC Malayalam fonts in the new version of Kindle. Screenshots given below

Custom fonts selection screen. These fonts were copied to the device
Select a font other than the default one
Content in Rachana.
Make sure to check the version. 5.9.6.1 is the latest version and it supports custom fonts

Talk on ‘Malayalam orthographic reforms’ at Grafematik 2018

Santhosh and I presented a paper on ‘Malayalam orthographic reforms: impact on language and popular culture’ at Graphematik conference held at IMT Atlantique, Brest, France. Our session was chaired by Dr. Christa Dürscheid.

The paper we presented is available here. The video of our presentation is available in youtube.

Grafematik is a conference, first of its kind, bringing together disciplines concerned with writing systems and their representation in written communication. There were lot of interesting talks on various scripts around the world, their digital representation, role of Unicode, typeface design and so on. All the talk videos are available in the conference website.

u and uː vowel signs of Malayalam

The reformed or simplified orthographic script style of Malayalam was introduced in 1971 by this government order. This is what is taught in schools. The text book content is also in reformed style. The prevailing academic situation does not facilitate the students to learn the exhaustive and rich orthographic set of Malayalam script. At the same time  they observe a lot of wall writings, graffiti, bill-boards and handwriting sticking to the exhaustive orthographic set.

The sign marks for the vowels ഉ and ഊ (u and ) have many diverse forms in the exhaustive orthographic set when joined with different consonants. But in the reformed style they are always detached from the base consonant with a unique form as ു and ൂ respectively for the vowel sounds u and . Everyone learns to read both of these orthographic variants either from the school or from everyday observations. But while writing the styles, they often gets mixed up as seen below.

u sign forms on wall writings
The green mark indicates the usage of reformed orthography to write പു (pu), blue indicates the usage of exhaustive set orthography to write ക്കു (kku). But the one in red is an unusual usage of exhaustive orthography to write ത്തു (ththu). Such usages are commonplace now, mainly due to the lack of academic training as I see it.

 

Redundant usage of vowel sign of u is indicated in circle

In this blog post I  try to consolidate the vowel signs of u and  referring to early script learning resources for Malayalam.

Vowel signs in Malayalam

There are 37 consonants and 15 vowels in Malayalam (additionally there are less popular consonant vowels like ൠ, ഌ and ൡ). Vowels have independent existence only at word beginnings. Otherwise they appear as consonant sound modifiers, in form of vowel signs. These signs often modify the glyph shape of consonants and this is a reason for the complex nature of Malayalam script. These marks can get distributed over the left and right of the base consonant. See the table below:

As seen in the table, the signs ു, ൂ, ൃ ([u] ,[uː], [rɨ] ) changes the shape of the base consonant grapheme. It was not until the 1971 orthographic reformation these signs got detached from the base grapheme. You can see the detached form as well in the rows 5,6 and 7 of the above table.

How does the vowel sign for ‘ു’ [u] and ‘ൂ’ [uː] affect the base consonant?

In the exhaustive script set of Malayalam there are in fact 8 ways in which ‘ു’ [u] and ‘ൂ’ [uː] sign marks change the shape of base consonant grapheme. These 8 forms (u- 4 forms and uː – 4 forms) are consolidated below.

‘ു’ [u] sign induces 4 types of shape variations to base consonant.

  • ക(ka) , ര(ra) gets modified by a shape we hereby call as hook. The same shape change applies to all conjuncts that ends with ക as in ങ്ക(n̄ka), ക്ക(kka), സ്ക(ska) and സ്ക്ക(skka). As the conjuncts that ends with ര(ra) assumes a special shape the hook shaped sign does not apply to them.
  • ഗ(ga), ഛ(ʧʰa), ജ(ʤa), ത(t̪a), ഭ(bʱa), ശ(ʃa), ഹ(ɦa) gets modified by a shape that resembles a tail that comes back to right after moving left. Those conjuncts which end with these consonants also assume the same tail shape when when ‘ു’ [u] vowel sign appear after them.
  • ണ(ɳa) and ന(na/n̪a) changes their shape with an inward closed loop. Those conjuncts which end with these consonants also assume the same loop shape when when ‘ു’ [u] vowel sign appear after them. For example ണ്ണ(ɳɳa), ന്ന(nna), ക്ന(kna) etc.
  • All other 24 consonants use the drop shape. As it is the most popular among all [u] signs, it is often mistakenly used instead of the other signs mentioned above. This case is indicated in the red circle in figure captioned u sign forms on wall writings.

‘ൂ’ [uː] sign induces 4 types of shape variations to base consonants.

  • ക(ka) , ര(ra), ഗ(ga), ഛ(ʧʰa), ജ(ʤa), ത(t̪a), ഭ(bʱa), ശ(ʃa), ഹ(ɦa) can have two alternate uː sign forms. First shape is hook and tail shape while the second one is hook and rounded tail.
    • Hook and rounded tail is more popular with the consonants ക(ka) , ര(ra) and ഭ(bʱa)
    • Hook and tail is more popular with the consonants ഗ(ga), ഛ(ʧʰa), ജ(ʤa), ത(t̪a), ശ(ʃa) and ഹ(ɦa)
  • The outward open loop shape is assumed by the ‘ൂ’ [uː] sign mark when associated with the consonants ണ(ɳa) and ന(na/n̪a)
  • All other 24 consonants use the double-drop shape. As it is the most popular among all [u] signs, it is often mistakenly used instead of the other signs mentioned above

Note: The sign shape names drop, double-drop, hook, hook and tail, hook and rounded tail, tail, closed loop and open loop are author’s own choice. Hence there is no citations to literature.

Early texts on Malayalam script and orthography

Modern textbooks do not detail the ‘ു’ [u] and ‘ൂ’ [uː] vowel sign forms. The earliest available reference to the script of Malayalam and its usage is the book from 1772, Alphabetum grandonico-malabaricum sive samscrudonicum.It was a text book meant to be used by western missionaries to Kerala to learn the Malayalam script and its language of description is Latin. Alphabetum describes various vowel sign forms but it does not give any indication on the hook and tail form. ക(ka) , ര(ra), ഗ(ga), ഛ(ʧʰa), ജ(ʤa), ത(t̪a), ഭ(bʱa), ശ(ʃa), ഹ(ɦa) etc. uses the hook and rounded tail form only. This being the first ever compilation of Malayalam script usage, that too by a non-native linguist, there are chances for unintended omissions about which I am not sure of.

The metal types used in this book were movable, and were the first of its kind to be used to print a Malayalam book. The same types were used to print the first ever complete book in Malayalam script Samkshepavedartham.

Excerpt from Alphabetum grandonico-malabaricum sive samscrudonicum describing the usage of ‘ു’ [u] and ‘ൂ’ [uː] signs
A still later work in this regard was done by Rev. George Mathan, almost a century later to Alphabetum. He introduces drop/double drop for ‘ു’ [u]/ ‘ൂ’ [uː] as the common sign form and all others shapes are indicated as exceptions. He clearly mentions about the two alternate forms of hook and tail as well as hook and rounded tail in his book on the Grammar of Malayalam.Grammar of Malayalam- George Mathan

Grammar of Malayalam- George Mathan

Contemporary usage of orthographic styles

The early attempts to describe the script of Malayalam with all its complexity is seen in these books in the initial days of printing era. Much later, in 1971 reformed script orthography was introduced to the language and culture aiming at overcoming the technological limitation of Malayalam typewriters. But the language users never abandoned the then existing style variants. Now we see around us a mix of all these styles.

Note: This is a translation of an earlier blog post written in Malayalam

Typoday 2018

Santhosh and I jointly presented a paper at Typoday 2018. The paper was titled ‘Spiral splines in typeface design: A case study of Manjari Malayalam typeface’. The full paper is available here. The presentation is available here.

Typoday is the annual conference where typographers and graphic designers from academia and industry come up with their ideas and showcase their work. Typoday 2018 was held at Convocation Hall, University of Mumbai.

 

Manjari 1.5 version released

A new version of Manjari typeface is available now. Version 1.5 is mainly a bug fix release.

In version 1.3, the build tooling of the project was changed from fontforge to fontmake. Two weeks back a few people reported that the font no longer works in MS Word and Wordpad. Font selector lists the font, but when selected, the content remains same. It works in all other applications without any issues. Because of that the bug went unnoticed.

Debugging the issue was not easy since font works everywhere else. I did a line by line diff of the ttx format(XML font format) of old and new version fonts.  Found that the OS/2 ulUnicodeRange, ulCodePageRange values were set to 0 in version 1.3.  Apparently these values are really checked by MS Word and Wordpad. If these are missing Wordpad and Word just rejects the font.  Correct values for these fields are set now.

New version 1.5 is available now. You can download the latest fonts from https://smc.org.in/fonts/#manjari