Tim Buckwalter's notation is a one-to-one transliteration of the graphemes
of the Arabic script using lower ASCII characters only. This system is very
popular in Natural Language Processing, however, there are limits to its
applicability due to numerous non-alphabetic characters involved.

The XML-friendly variant of the notation replaces codes >, &, < with
O, W, I, respectively. In this implementation, the decode function
considers both of these conventions and converts from them, while the
encode function produces the XML-friendly notation only.