Structured Data· 3 min read

LanguageTool has rules for 35 languages. Indonesian is not one of them.

We only mined the available rule base without testing its actual factual accuracy against a real Indonesian corpus.

Measured from SUMMARY.md: peta keputusan rule LanguageTool and 2 more

35
Languages with a module
0
Indonesian modules
32.8%
Rules impossible to reuse
64.3%
Rules that can be adapted

Writing grammar rules from scratch is a multi-year job. So before starting, we asked the sensible question: what has everyone else already built, and how much of it can we borrow?

LanguageTool is the largest open-source grammar checker in existence. We mined its entire rule base. The answer turned out to be more complicated than we hoped.

Two thirds borrowable, one third impossible

From the repository we extracted 6,277 raw rules. Once inflectional variants are merged, 2,909 entries remain for analysis.

Of those 2,909:

  • 954 entries (32.8%) are unusable for Indonesian
  • 1,870 entries (64.3%) are adaptable

That 32.8% is not a quality judgement. The rules are fine, they simply govern categories that do not exist in Indonesian: the articles a/an/the, verb tense, subject-verb agreement, possessive apostrophes, British versus American spelling. There is nothing there to check, so there is nothing to borrow.

How we sorted them, and why one source was not enough

We classified each entry into one of two buckets: adaptable, or not. The basis was grammatical category, not word by word.

At first we mined only the XML files, because that is where LanguageTool rules live. The interim conclusion was strange: it looked as though LanguageTool had almost no language-independent rules at all.

We had been digging in the wrong place. The universal typography rules, the ones we needed most (double spaces, doubled punctuation, unbalanced brackets, repeated words, sentence-initial capitals) are written as Java classes in the core, not as XML. We had to mine a second source, 78 Java classes, before the numbers made sense.

A cheap but painful reminder: when a mining result feels strange, the thing that is usually wrong is where you are mining.

Our closest relative has 44 rules

LanguageTool ships modules for 35 languages: ar, ast, be, br, ca, crh, da, de, el, en, eo, es, fa, fr, ga, gl, is, it, ja, km, lt, ml, nl, pl, pt, ro, ru, sk, sl, sr, sv, ta, tl, uk, zh.

No id. No ms.

The closest typological relative with a module is Tagalog, a fellow Austronesian language, and that module contains 44 rules. The English module we mined contains thousands.

The world's fourth most spoken language has no rules at all in the largest open-source grammar checker.

There is one trap we nearly walked into. Some rules must be inverted, not copied. Decimal and thousands separators, date formats, and currency notation follow Indonesian conventions that are the reverse of English ones. Adopting them as-is would flag correct text as wrong, and that failure is worse than having no rule at all.

The bright side: of 2,831 English XML entries, only 14 are pure regex. The rest attach to English words and parts of speech. So the value of the XML to us is not its content but the shape of its mechanisms. Homophone pairs, compound words, pleonasms, capitalisation. Those patterns can be refilled with Indonesian data.

What this does not show

The absence of an Indonesian module says nothing about LanguageTool's quality, and is certainly not evidence that Indonesian is hard to check automatically. It reflects who has contributed to the project, and nothing more.

We also did not test LanguageTool's accuracy in any language. What we measured is the shape of its rule base: what is in there, not how well it works.

And the adaptable-versus-unusable split is our judgement, made once, with no second annotator. Someone applying slightly different criteria might land a few percentage points away. What will not move is the zero in the Indonesian module column.

Data & provenance

Limitations

The analysis covers one repository snapshot (July 2026), and LanguageTool changes continuously. The "adaptable" versus "unusable" split is our own judgement based on grammatical category, made once without a second annotator. We mined the rule base; we did not test its accuracy.

Revision history

Published
Last updated
never revised since publication