The world's fourth most spoken language, zero rules
Writing grammar rules from scratch is years of work. So before starting, we asked the obvious question: what has already been done by others, and how much of it can be borrowed?
LanguageTool is the largest open-source grammar checker there is. It has modules for 35 languages: from Arabic and Dutch, to Japanese and Chinese.
The closest typological relative with a module is Tagalog, a fellow Austronesian language, and its module holds only 44 rules. The English module we mined holds thousands.
The world's fourth most spoken language has not a single rule in the largest open-source grammar checker there is.
That doesn't mean nothing can be borrowed at all
The absence of an Indonesian module isn't a statement about LanguageTool's quality, and it's certainly not proof that Indonesian is hard for machines to check. It reflects who has contributed to the project so far, nothing more.
We mined its entire rule base to see what could still be used, even though it wasn't built for our language.
A third of the rules are genuinely unusable, not because they're poor quality, but because they govern things that don't exist in Indonesian: the articles a/an/the, English verb tense, English subject-verb agreement. There's no Indonesian equivalent to check, so there's nothing to borrow.
The remaining two-thirds are adaptable, but that doesn't mean they can simply be copied. Some rules actually need to be inverted, not imitated. Decimal and thousands separators, date formats, currency notation: Indonesian convention runs opposite to English. Adopting them raw would flag already-correct text as wrong, a failure worse than having no rule at all.
We were mining in the wrong place for a while
A small story behind the numbers above: at first we only mined the XML files, since that's where most LanguageTool rules live. The interim conclusion felt strange, as if LanguageTool had almost no rules free of any particular language at all.
It turned out we were mining the wrong place. The universal typography rules we actually needed most, things like double spaces, doubled punctuation, unmatched brackets, and repeated words, are written as core program code, not as ordinary rule files. Once that second source was mined too, the numbers finally made sense.
A cheap but painful reminder: if a mining result feels strange, the thing most likely wrong is where you're mining, not the data.
The full method for how we sorted each rule, and all the raw data, are in the technical version of this article.
Behind this finding
The technical version has the raw numbers, the test setup, and everything that cannot be concluded from them.